>> conv :: (a~b) => a -> b >> conv = id is there any particular reason that '~' is the symbol for type equality constraints? I would think '=' would be the obvious choice, (although perhaps it is already over-used, and is normally asymmetric in Haskell!)? Isaac