Still working on pruning, unification and typechecker / immutable