I was messing around with Scala 2.8 for fun and trying to define a pimp which adds an \"as\" method to type constructors, allowing to convert from one functor to another (pl
To me this sounds like a simplicity against generality case: there could be a new type variable generated every time a block is created capturing some type constructor instantiated with existential type, but that would make error diagnostics more difficult to understand.
Also note that having a class turns the call into a fast INVOKEVIRTUAL, rather than invoking as() method by reflection.