Switch from ExceptT to EitherT
Fix `definition`: do not use return, wrap in Checker