RecordType does not include Type
The TypeVars module isn't Internal
Update upper bounds on mtl/either. Replace use of Control.Monad.Error with Control.Monad.Except
hlint police
Infer Monad newtype. MonadInfer type-class.

 * Remove use of EitherT in favor of mtl's Control.Monad.Except