The type system is extremely subtle, and without a solid grasp of theoretical computer science most of the design choices will go over a typical programmer's head