wrote initial either test without using monad
improved the error display and messaging in smpl
implemented either monad