Paul,
>> Did you mean to say that const is strict in its first param and
>> lazy in its second (since const _|_ y = _|_)? Also, can you explain
>> your notation, how does a -> {S} -> b ->{L} a indicate the
>> strictness? Why not just {S} a -> {L} b -> a?
>> I'm sorry for the confusion. Indeed, const, as the type was intended
> to reflect, const is strict in its first argument and lazy in its
> second.
Ah, sorry. Now I see where I really confused you. Someone pointed out
that I erroneously inserted an extra -> in the type. The type should
read
a ->{S} b ->{L} a
HTH,
Stefan