[m-rev.] for review: constrained polymorphic insts

Fergus Henderson fjh at cs.mu.OZ.AU
Wed Mar 13 23:00:44 AEDT 2002


On 07-Mar-2002, David Overton <dmo at cs.mu.OZ.AU> wrote:
> +inst_matches_initial_4(ground(UniqA, _GII_A), bound(UniqB, ListB), MaybeType,
>  		Info0, Info) :-
>  	MaybeType = yes(Type),
>  		% We can only check this case properly if the type is known.
> -	GII_A \= constrained_inst_var(_),
> -		% Don't overly constrain the inst_var.

Hmm, why did that test get removed?
(The code is probably right, but please double-check it.)

> @@ -838,6 +884,16 @@
>  		% XXX how do we get the argument types for an abstract inst?
>  	inst_list_matches_final(ArgsA, ArgsB, MaybeTypes, Info0, Info).
>  inst_matches_final_3(not_reached, _, _, I, I).
> +inst_matches_final_3(constrained_inst_vars(InstVarA, InstA), InstB, MaybeType,
> +		Info0, Info) :-
> +	( InstB = constrained_inst_vars(InstVarB, InstB1) ->
> +		% Constrained_inst_vars match_final only if they are the same
> +		% variable.
> +		InstVarA = InstVarB,

s/InstVarA/InstVarsA/ and 
s/InstVarB/InstVarsB/

Shouldn't this code be checking whether the two sets have any members
in common (a non-empty intersection), rather than checking if they are
equal?

Apart from that, this change looks fine now.

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list