My usual variant of this is to use class Foo' a
class Foo' a => Foo a instance Foo' a => Foo a and not export Foo' Sent from my iPhone On Aug 17, 2013, at 2:34 PM, Bas van Dijk <v.dijk....@gmail.com> wrote: > Hi Joachim, > > I used the following in the past: > > module M (PublicClass(..)) where > > class HiddenClass a > > class HiddenClass a => PublicClass a where > ... > > instance HiddenClass SomeType > > instance PublicClass SomeType where > ... > > Now users of M can't declare instances of PublicClass because they don't have > its superclass HiddenClass in scope. > > Regards, > > Bas > > On Aug 17, 2013 8:10 PM, "Joachim Breitner" <m...@joachim-breitner.de> wrote: >> Hi, >> >> for some reason I was under the impression that if I don’t export the >> methods of a class, then no user of my module can create instances. But >> I was wrong and in fact they can; the methods will just all be bound to >> "error ...". >> >> Is there really no way to create a class so that no-one else can create >> any instances? >> >> Greetings, >> Joachim >> >> -- >> Joachim “nomeata” Breitner >> m...@joachim-breitner.de • http://www.joachim-breitner.de/ >> Jabber: nome...@joachim-breitner.de • GPG-Key: 0x4743206C >> Debian Developer: nome...@debian.org >> >> >> _______________________________________________ >> Glasgow-haskell-users mailing list >> Glasgow-haskell-users@haskell.org >> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users@haskell.org > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users