EitherWithFlatmap
MonadEither
empty
Monoid
equiv
TermExpr
explode
TheoremProver