Changed functors, applicative and monad to take no type parameters