Re: type-directed programming

From: Claus Reinke <>
Date: Fri, 15 Dec 2006 15:28:46 +0000

> Variables must have monomorphic types in Curry. Without this restriction
> you could define an unsafe cast function

okay, that is understandable. this problem is shared wherever polymorphic
types meet variables that are instantiated away from their definition site
(which therefore cannot be handled as a normal let-binding), so ML and
Haskell have similar issues and restrictions.

> In principle, it would be possible to assign a polymorphic type to
> a variable that is bound to undefined or to a constant like the empty
> list. However, in order to get this right in general, you have to
> perform a groundness analysis. I do not think that it is worth
> complicating the type checker in that way for the few places where
> polymorphic variable might be useful.

this might be naive, but wouldn't it be sufficient to limit variables, eg
"free" in Curry, to monomorphic types, and let type inference do the
rest? in other words "y free" would be monomorphic, "x = .." could
be polymorphic, but no analysis beyond type inference would be
needed to propagate the monomorphism of variables to terms
containing them?

I'm just trying to understand why this naive approach would fail, ie,
why a groundness analysis would be needed in general?


curry mailing list
Received on So Dez 17 2006 - 14:53:55 CET

This archive was generated by hypermail 2.3.0 : Mi Sep 30 2020 - 07:15:03 CEST