At 2003-08-03 14:09, Ben Rudiak-Gould wrote:

>This reduction is incorrect. Auto-lifted parameters on the RHS of an
>application get lifted out

I am interpreting this as "Auto-lifted parameters on the RHS of an 
application get lifted out before [EMAIL PROTECTED] 'beta'-reduction can be 
done". I think this is ambiguous:

((\a -> ((a,?x) [EMAIL PROTECTED] = 2})) ?x,?x) [EMAIL PROTECTED] = 1}
((\a -> ((a,[EMAIL PROTECTED] -> @x) [EMAIL PROTECTED] = 2})) ([EMAIL PROTECTED] -> 
@x),[EMAIL PROTECTED] -> @x) [EMAIL PROTECTED] = 1}

1.
(([EMAIL PROTECTED] -> @x,[EMAIL PROTECTED] -> @x) [EMAIL PROTECTED] = 2},[EMAIL 
PROTECTED] -> @x) [EMAIL PROTECTED] = 1}
(([EMAIL PROTECTED] -> (@x,@x)) [EMAIL PROTECTED] = 2},[EMAIL PROTECTED] -> @x) [EMAIL 
PROTECTED] = 1}
((2,2),[EMAIL PROTECTED] -> @x) [EMAIL PROTECTED] = 1}
([EMAIL PROTECTED] -> ((2,2),@x)) [EMAIL PROTECTED] = 1}
((2,2),1)

2.
([EMAIL PROTECTED] -> ((\a -> ((a,[EMAIL PROTECTED] -> @x) [EMAIL PROTECTED] = 2})) 
@x,@x)) [EMAIL PROTECTED] = 1}
((\a -> ((a,[EMAIL PROTECTED] -> @x) [EMAIL PROTECTED] = 2})) 1,1)
(((1,[EMAIL PROTECTED] -> @x) [EMAIL PROTECTED] = 2}),1)
((([EMAIL PROTECTED] -> (1,@x)) [EMAIL PROTECTED] = 2}),1)
((1,2),1)

A simpler query: what types can f have here? Which if any should the 
compiler infer?

  f a b = (a,b) [EMAIL PROTECTED] = 2}

And given that type, which of these are valid?

  f ?x ?x
  f ?x 1
  f 1 ?x
  f 1 1


-- 
Ashley Yakeley, Seattle WA

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to