The madness of implicit parameters: cured?

Ashley Yakeley ashley@semantic.org
Mon, 4 Aug 2003 18:55:07 -0700


At 2003-08-04 18:19, Ben Rudiak-Gould wrote:

>> ((\a -> ((a,\@x -> @x) {@x = 2})) (\@x -> @x),\@x -> @x) {@x = 1}
>                                     ^^^
>> ((\@x -> @x,\@x -> @x) {@x = 2},\@x -> @x) {@x = 1}
>
>This reduction is incorrect.

It's a simple beta-reduction, it must be correct.

b :: (?x :: Int) => Int
b = \@x -> @x

f :: ((?x :: Int) => Int) -> (Int,Int)
f = \a -> ((a,\@x -> @x) {@x = 2})

f b :: (Int,Int)
f b = ((b,\@x -> @x) {@x = 2})


-- 
Ashley Yakeley, Seattle WA