Lots of cool typing stuff. Also improved ability to do pre-, post- and infix functions. But there's a bug where substitutions don't get propagated (i.e. we have {a=>b, b=>c} where we should have {a=>c,b=>c}. Should be a simple fix though.