Re: co/contra variance of roles/factories in theory.pod

2005-11-14 Thread TSa
HaloO, Larry Wall wrote: Another possibility is to take $? away from the compiler. All the compiler variables could go under $= instead, since pod is actually just one particular kind of compiler-time data, and there's really no particular mnemonic relationship between ? and the compiler. But

Re: co/contra variance of roles/factories in theory.pod

2005-11-04 Thread TSa
HaloO, Luke Palmer wrote: Well, it's possible that I'm abusing the terms, since I first heard the terms from you and inferred what they meant. I'm honoured. Thanks. Please don't get me wrong. I appreciate the document you wrote. I just want to help with peer reviewing it. However, there is

Re: co/contra variance of roles/factories in theory.pod

2005-11-04 Thread Larry Wall
On Fri, Nov 04, 2005 at 12:37:04PM +0100, TSa wrote: : The above also describes my perception of the $. twigil notation which : are variables bound through the invocant(s). My mental picture beeing : one where a method is instanciated as a not yet invoked sub after selecting : the target code body

co/contra variance of roles/factories in theory.pod

2005-11-03 Thread TSa
HaloO, I don't understand why theory.pod states that roles are covariant, unary theories and factories are contravariant. I would expect the opposite from the requirement that all functions in roles only take the topic type while function in factories only return the topic type. So if A : B, I

Re: co/contra variance of roles/factories in theory.pod

2005-11-03 Thread Luke Palmer
On 11/3/05, TSa [EMAIL PROTECTED] wrote: So if A : B, I would expect Role{B} : Role{A} and Factory{A} : Factory{B} on the following rational. Well, it's possible that I'm abusing the terms, since I first heard the terms from you and inferred what they meant. However, there is a problem in your

Re: co/contra variance of roles/factories in theory.pod

2005-11-03 Thread Luke Palmer
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}.