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