[Haskell-cafe] Type system speculation

Jason Dagit dagit at codersbase.com
Thu Dec 10 02:08:53 EST 2009

On Wed, Dec 9, 2009 at 7:47 PM, wren ng thornton <wren at freegeek.org> wrote:

> Andrew Coppin wrote:
>> What we're really trying to do here is attach additional information to a
>> value - information which exists only in the type checker's head, but has no
>> effect on runtime behaviour (other than determining whether we *get* to
>> runtime). As far as I can tell, Haskell does not provide any way to take an
>> existing type and attach additional information to it in such a way that
>> code which cares about the new information can make use of it, but existing
>> code which doesn't care continues to work. Any comments on this one?
> In defense of Haskell, that's not what the semantics of newtype are. The
> semantics of newtype declare that the, er, new type is unrelated to the old
> type--- despite however they may be represented at runtime. Thus, allowing
> functions to ignore the newtype wrapper would defeat the intentions of using
> newtypes in the first place. I actually find this to be one of the most
> powerful things in the type system of H98, and I miss having them in every
> other language where I'm forced to sacrifice performance or correctness.
What caught me about Andrew's idea is that it would allow for kind
polymorphism in a useful way.  Or at least, in a way that I tend to yearn
for it.

Do you have anyway to get kind polymorphism?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20091210/b98c7440/attachment.html

More information about the Haskell-Cafe mailing list