Why doesn't Haskell have type-level lambda abstractions?

Posted by Petr Pudlák on Programmers See other posts from Programmers or by Petr Pudlák
Published on 2012-12-01T08:55:31Z Indexed on 2012/12/01 11:21 UTC
Read the original article Hit count: 306

Are there some theoretical reasons for that (like that the type checking or type inference would become undecidable), or practical reasons (too difficult to implement properly)?

Currently, we can wrap things into newtype like

newtype Pair a = Pair (a, a)

and then have Pair :: * -> *

but we cannot do something like ?(a:*). (a,a).

(There are some languages that have them, for example, Scala does.)

© Programmers or respective owner

Related posts about haskell

Related posts about abstraction