
3 Mar
2007
3 Mar
'07
7:13 p.m.
On Sun, Mar 04, 2007 at 01:03:45AM +0100, Roberto Zunino wrote:
What is the effect of declaring a class in a module and not exporting it? Would that prevent to add more instances to that class other than those already defined in the module?
More in detail, consider this module: === module Peano (Z,S,C) where
data Z data S a
-- Not exported class Peano b where instance Peano Z where instance Peano a => Peano (S a) where
-- Exported class Peano a => C a where ===
Would that limit the instances of the class C to the Peano type naturals?
Correct. It would also work to omit C and just use a non-exported class directly, but your users will get mad that they can't write type signatures for their functions. Stefan