Hi "amperes", Your message shows that ((->) a) is a monad. This is actually a very well known result, and you'll find references to it in many published papers: R a = ((->) a) is often described as the "reader" or "environment" monad. You seem to be proposing two things: - The definition of Monad ((->) a) should be included in the Haskell prelude. If so, that's an issue that you should bring up on the Haskell list. It's not a bug in Hugs. Unfortunately, Haskell 98 removed even the Functor instance for ((->) a), and the releases of Hugs 98 have followed suit. - The classes Functor and Monad should be merged into a single class. While every Monad is a Functor, you'd need to show that the reverse holds too before you could merge the classes. I'll leave further exploration of that as an "exercise to the reader". Hope this helps! Mark
