split off some utilities
add some Haskell and gvim specific ignores
be more careful to distinguish between first-order and higher-order encoding.  Implement AST compiler (first order) to a GADT.