Ignoring the issue of whether the current Prelude would be improved using a more general class heirarchy, let me point out the real failing of Haskell here. The problem is not so much that the prelude doesn't work the way you want it to, but rather that there is no way to build your own prelude using the conventional names for things such as + or -. Quite a bit of the basic Haskell vocabulary is in PreludeCore, including the entire class structure of the Prelude and all associated class methods. Once in PreludeCore, these names cannot be redefined or hidden. There is no compelling reason for this - I think at the very least the 1.3 folks should eliminate PreludeCore in some way so that the system no longer reserves all of the numeric operators for it's own. At least this way we will not be forced into this `one Prelude fits all' situation. John Peterson Yale Haskell Project