chromatic |Perl 6| wrote:
That was always my goal for roles in the first place. I'll be a little sad if Perl 6 requires an explicit notation to behave correctly here -- that is, if the default check is for subtyping, not polymorphic equivalence.

-- c

Perhaps the default can be "like", not "isa", for cases where the actual type is being captured in a generic argument too.

F-bounds type propagation only works if the actual assigned type is tracked and further propagated through use of that symbol. Making it a one-time assignment (actual type noticed when binding, and then type noted as a generic) allows the full higher-order polymorphism to work without needing to radically change the way typing works in the first place--it's the same as declaring it of that type, which the type system can handle already.

That make more sense if you just read the higher order parts (pun intended; parts 18-20 or so) of "The Theory of Classification" (

I will meditate on the idea of what happens if higher-order polymorphism is the default for matching.


Reply via email to