Safe Haskell | None |
---|---|
Language | GHC2021 |
Freckle.App.TextualEnum
Description
Typical instances for enumerated data types with textual representation
Synopsis
- newtype TextualEnum a = TextualEnum {
- enumValue :: a
- class EnumValue a where
- class EnumName (a :: k) where
- enums :: (Bounded a, Enum a) => NonEmpty (TextualEnum a)
- fromText :: (EnumValue a, Bounded a, Enum a) => Text -> Maybe (TextualEnum a)
- prop_roundTripEnumText :: (Bounded a, Enum a, EnumValue a, Eq a) => TextualEnum a -> Bool
Documentation
newtype TextualEnum a Source #
Wrapper around enums
N.B. This should not be used for "enormous" enumerations. It's primary purpose is to provide standard instances for discriminated-union-defined enums.
Constructors
TextualEnum | |
Fields
|
Instances
enums :: (Bounded a, Enum a) => NonEmpty (TextualEnum a) Source #
All values of a TextualEnum
fromText :: (EnumValue a, Bounded a, Enum a) => Text -> Maybe (TextualEnum a) Source #
Parse a TextualEnum
from Text
prop_roundTripEnumText :: (Bounded a, Enum a, EnumValue a, Eq a) => TextualEnum a -> Bool Source #
Test that enum instances are coherent