[Haskell-cafe] Why can't I bind unlifted values at the top level?

Tom Ellis tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk
Sat Jan 21 16:05:05 UTC 2023


I can't bind unlifted values at the top level:

    foo = (##)

    Top-level bindings for unlifted types aren't allowed: foo = (##)

I can understand why I shouldn't be able to bind unlifted
*expressions* at the top level

    foo = complicatedExpression

Perhaps complicatedExpression doesn't terminate!  But why can't I bind
_values_, i.e. things that are already evaluated?  Given that (##) and
proxy# already exist at the top-level it seems reasonable that I
should be allowed to define my own!

Tom


More information about the Haskell-Cafe mailing list