Private classes
Edward A Kmett
ekmett at gmail.com
Sun Aug 18 03:25:49 CEST 2013
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.bas at 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" <mail at 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
>> mail at joachim-breitner.de • http://www.joachim-breitner.de/
>> Jabber: nomeata at joachim-breitner.de • GPG-Key: 0x4743206C
>> Debian Developer: nomeata at debian.org
>>
>>
>> _______________________________________________
>> Glasgow-haskell-users mailing list
>> Glasgow-haskell-users at haskell.org
>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20130817/10a1e054/attachment.htm>
More information about the Glasgow-haskell-users
mailing list