Unlifted data types

Simon Peyton Jones simonpj at microsoft.com
Tue Sep 8 07:40:51 UTC 2015

|  The problem 'Force' is trying to solve is the fact that Haskell
|  currently has many existing lifted data types, and they all have
|  ~essentially identical unlifted versions. But for a user to write the
|  lifted and unlifted version, they have to copy paste their code or use
|  'Force'.

But (Force [a]) will only be head-strict.  You still have to make an essentially-identical version if you want a strict list.  Ditto all components of a data structure.

Is the gain (of head-strictness) really worth it?

Incidentally, on the Unlifted-vs-# discussion, I'm not against making the distinction.  I can see advantages in carving out a strict subset of Haskell, which this would help to do.


More information about the ghc-devs mailing list