On Mon, Nov 5, 2012 at 4:29 PM, Adriaan Moors
<
adriaa...@typesafe.com> wrote:
>
>> While at this, `typeTag` does not accept type constructors, only proper
>> types, which seems confusing. Have type constructors become second-class
>> now?
>
> type constructors are still first class, but we don't have kind
> polymorphism:
> when you're expecting (abstracting over) a proper type, you will only get a
> proper type, and conversely for other kinds
>
> we can't abstract over kinds and thus typeTag has to pick a concrete one (it
> picked the kind of proper types), which means you can only pass it a proper
> type
I guess I'm thinking of typeTag1...typeTag10, while being annoyed at
the lack of type currying by default (as in Haskell).
Since you're codesigning Scala 3, it would be nice to support type
currying: at the value level that would have performance and/or
syntactic implications (Haskell has specific compile-time and runtime
support to make partial applications cheap enough), but at least the
performance problems don't carry over to the type-level (if the
concept of type parameter is there to stay, as it looks). What I don't
understand yet is if you can write/encode higher-kinded types in some
way in DOT, as I'd guess.
Cheers,
Paolo
--
Paolo G. Giarrusso - Ph.D. Student, Philipps-University Marburg
http://www.informatik.uni-marburg.de/~pgiarrusso/