Remove unification.
Change monad Error to Except
Use our for of replib.