major revision of HaskWeakToStrong, put phi/psi on the error monad