check :: (MonadState (Maybe e) m, MonadError e m) => m ()
check = get >>= maybe (return ()) ((put Nothing >>) . throwError)
check :: (MonadState (Maybe e) m, MonadError e m) => m ()
check = get >>= maybe (return ()) ((put Nothing >>) . throwError)
check = get >>= maybe (return ()) ((put Nothing >>) . throwError)