[m-dev.] hash consing
Simon Taylor
stayl at cs.mu.OZ.AU
Wed Aug 25 12:00:29 AEST 1999
> Resurrecting an old thread...
>
> On Thu, Aug 12, 1999 at 08:56:35PM +1000, Fergus Henderson wrote:
>
> > > Tabling seems like an implementation detail; why should it be part of
> > > the interface for a module?
> >
> > In Ada, this would belong in the "private" part of the module interface.
> > The reason it belongs in the interface for exported types is that
> > if you add or remove these declarations, then code using that type
> > must be recompiled.
>
> This is a good reason for an implementation decision, but not a very
> good reason for a language design decision. This is the latter sort
> of decision.
The other reason is that terms of hash-consed types must have inst `shared',
so adding or removing the declaration can affect the correctness of code
in modules which import the type declaration.
Simon.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list