The non-type-changing map can be implemented as a type class - in my graphics lib Wumpus, I call it pointwise:
class Pointwise sh where type Pt sh :: * pointwise :: (Pt sh -> Pt sh) -> sh -> sh I think other people have posted it to the cafe under a different name, before I did: http://www.haskell.org/pipermail/haskell-cafe/2010-July/079784.html If I was doing Wumpus again though, I'd probably do with Pointwise. Best wishes Stephen _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe