mgu to be in WriterT
TIW type alias
Oops, getField needs parens on composites inside it
Exp uses parameterized recursion