require functor not monad constraint in tests