@hackage storable-enum0.0
Wrapper that makes any Enum type Storable
Categories
License
BSD-3-Clause
Maintainer
haskell@henning-thielemann.de
Links
Versions
- 0.0 Tue, 8 Oct 2019
Installation
Tested Compilers
Dependencies (2)
- base >=3 && <5
- prelude-compat >=0.0 && <0.0.1 Show all…
Dependents (3)
@hackage/llvm-extra, @hackage/knead, @hackage/llvm-dsl
In foreign function interfaces you will often want to use enumeration types
but defining Storable instances is cumbersome.
This package provides the type Enum.Storable.T w e,
where e.g. Enum.Storable.T Word8 Ordering
means that values of type Ordering are stored in a Word8.
The Storable methods store the numeric values of the enumeration elements
as obtained by fromEnum.
E.g. EQ is stored as 1.
The type itself stores a Haskell enumeration element,
such that GHC can apply all of its optimizations for enumerations.
It is not checked, whether the storage type w is large enough
to hold all admissible numeric values of e.
It is also not checked, whether the storage type w supports negative values
whenever the enumeration of e contains ones.
See the bool8 package for the special case of a Bool stored in a Word8.