Template Haskell utils for declaring flags instances.
Documentation
dataBitsAsFlags :: Name -> Q [Dec]Source
dataBitsAsBoundedFlags :: Name -> Q [Dec]Source
Produces Flags
and BoundedFlags
instances declarations for the specified instance of Bits
.
:: String | Wrapping type name. |
-> Name | Wrapped type name. |
-> [Name] | Types to derive automatically. |
-> Bool | Whether to declare BoundedFlags instance. |
-> [(String, Integer)] | Individual flags. |
-> Q [Dec] |
Declare a newtype wrapper around the specified integral type and make
the wrapper an instance of Flags
(and optionally
BoundedFlags
). For each individual flag declare
a constant. If a Show
instance wasn't requested for automatic
derivation, declare one with
show flags = "WrappingTypeName [IndividualFlags in flags]"