
On Thu, Aug 22, 2013 at 12:51:24PM -0300, Thiago Negri wrote:
How hard would it be to lift strictness annotations to type-level? E.g. instead of f :: Int -> Int f !x = x + 1 write f :: !Int -> Int f x = x + 1 which would have the same effect. At least it would be transparent to the developer using a particular function.
See also the recent Reddit thread http://www.reddit.com/r/haskell/comments/1ksu0v/reasoning_about_space_leaks_... where I and others considered the possibility of a strict language with explicit thunk datatype. NB OCaml essentially already has this http://caml.inria.fr/pub/docs/manual-ocaml/libref/Lazy.html but I think Haskellers would do it better because we have a lot of experience with purity, laziness and monad and comonad transformers. Tom