On 11/3/05, Luke Palmer <[EMAIL PROTECTED]> wrote:
> If Foo2 were a role (that is, if it obeys the role relation above),
> then the only thing bar2() could do would be to take some side-effect
> action and then return the same object it was passed.  Here's a proof:
>
>     Given ^T $x where Foo{^T}.  Because of the role relation,
>     Foo{{$x}} (The singleton set {$x} does Foo).  Therefore
>     the signature of bar in this instance is
>     :({$x} --> {$x}).   Since $x was unrestricted, bar()
>     must be the identity on things that do Foo.

Excuse me, s:g/Foo/Foo2/; s:g/bar/bar2/.

Luke

Reply via email to