> On the whole it looks like you want type variables with kind #. > There are very good implementation reasons for not allowing this. > If you had type variables of kind # you could have polymorphic > functions over unboxed values. But since the values are unboxed > they don't have a uniform representation (e.g., a Double# is probably > twice the size of a Float#). So polymorphic functions over unboxed > values are not easy to implement. (You can imagine implementations > of them, but none of them are pleasent.)
That reminds me of something that I have wondered about for some time. Why is there such reluctance to instantiate polymorhic functions with the types with which they are used? (This isn't done automatically in complilers right?) I can imagine that it is akward to delay code generation until all uses of a function are known, and that in some cases there may be infinitely many instances needed. But apart from that, what are the reasons against this implementation technique? /Niklas _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell