Skip to content

bang patterns and unpack pragmas for Constraints.

As Constraint continues its inexorable slide to become more and more like Type, I'd expect to be able to {-# UNPACK #-} a constraint. However, I currently can't ! them, let alone unpack them, despite them always being nice flat records internally.


{-# language GADTs #-}
newtype Tagged a b = Tagged b

class Bar a where
  it :: Tagged a Int

data Foo a where
  Bar :: {-# unpack #-} !(Bar a) => Foo a
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information