[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