[mercury-users] Abstraction barrier

Michael Day mikeday at yeslogic.com
Tue May 13 17:23:10 AEST 2003


> One thing you might be able to do is give the `magic_data' argument a
> mode of `ui'.  This ensures that that argument will be a unique
> reference to the data after foo/3 exits.

Right, I just tried that. The limitations are not a problem, as it is a
foreign type, but I ran into a problem because one of the accessor
functions returns a component of the structure that must also stay unique,
and there is no way to enforce that.

The solution seems to be to change that accessor into a with_foo style
predicate that passes in the sub-component also with a ui mode.  
Incidentally, the issues with ui can often be worked around using di,uo
pairs, even when ui would be more appropriate, but that brings up a new
range of problems.

> If a string can go out of scope unexpectedly then you probably should
> make a copy of it on the Mercury heap.

Yes :)

Michael

-- 
YesLogic Prince prints XML!
http://yeslogic.com/prince

--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list