This unfortunate observabilty of an ordering (or hash value) that is needed only for efficient finite maps, is very annoying. I wish I knew a way round it. As it is we can pick a) expose Ord/Hash, but have unpredictable results b) not have Ord/Hash, but have inefficient maps
I was going to ask what was wrong with doing the tedious:
class FiniteMappable key where listToFM :: [(key,elt)] -> FiniteMap key elt addToFM :: FiniteMap key elt -> key -> elt -> FiniteMap key elt
...etc etc...
with the possibility of:
instance Ord key => FiniteMappable key where listToFM = listToFMoriginal
...etc etc...
where one would only export the fact that a particular type is FiniteMappable, not Ord.
But then I remembered that modules can't hide instance declarations, so that's no good. :-(
Is there some way to insert a newtype, so that just one instance becomes visible?
-- Ian Stark http://www.ed.ac.uk/~stark LFCS, School of Informatics, The University of Edinburgh, Scotland _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe