Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data SumType lang = SumType (TypeInfo lang) [DataConstructor lang]
- mkSumType :: forall t. (Generic t, Typeable t, GDataConstructor (Rep t)) => Proxy t -> SumType Haskell
- data DataConstructor lang = DataConstructor {
- _sigConstructor :: !Text
- _sigValues :: !(Either [TypeInfo lang] [RecordEntry lang])
- data RecordEntry lang = RecordEntry {}
- getUsedTypes :: SumType lang -> [TypeInfo lang]
- constructorToType :: DataConstructor lang -> [TypeInfo lang] -> [TypeInfo lang]
- sigConstructor :: forall lang. Lens' (DataConstructor lang) Text
- sigValues :: forall lang lang. Lens (DataConstructor lang) (DataConstructor lang) (Either [TypeInfo lang] [RecordEntry lang]) (Either [TypeInfo lang] [RecordEntry lang])
- sumTypeInfo :: Functor f => (TypeInfo lang -> f (TypeInfo lang)) -> SumType lang -> f (SumType lang)
- sumTypeConstructors :: Functor f => ([DataConstructor lang] -> f [DataConstructor lang]) -> SumType lang -> f (SumType lang)
- recLabel :: forall lang. Lens' (RecordEntry lang) Text
- recValue :: forall lang lang. Lens (RecordEntry lang) (RecordEntry lang) (TypeInfo lang) (TypeInfo lang)
Documentation
Generic representation of your Haskell types.
SumType (TypeInfo lang) [DataConstructor lang] |
mkSumType :: forall t. (Generic t, Typeable t, GDataConstructor (Rep t)) => Proxy t -> SumType Haskell Source
Create a representation of your sum (and product) types,
for doing type translations and writing it out to your PureScript modules.
In order to get the type information we use a dummy variable of type Proxy
(YourType).
data DataConstructor lang Source
DataConstructor | |
|
Show (DataConstructor lang) Source |
getUsedTypes :: SumType lang -> [TypeInfo lang] Source
constructorToType :: DataConstructor lang -> [TypeInfo lang] -> [TypeInfo lang] Source
sigConstructor :: forall lang. Lens' (DataConstructor lang) Text Source
sigValues :: forall lang lang. Lens (DataConstructor lang) (DataConstructor lang) (Either [TypeInfo lang] [RecordEntry lang]) (Either [TypeInfo lang] [RecordEntry lang]) Source
sumTypeInfo :: Functor f => (TypeInfo lang -> f (TypeInfo lang)) -> SumType lang -> f (SumType lang) Source
TypInfo lens for SumType
.
sumTypeConstructors :: Functor f => ([DataConstructor lang] -> f [DataConstructor lang]) -> SumType lang -> f (SumType lang) Source
DataConstructor lens for SumType
.
recLabel :: forall lang. Lens' (RecordEntry lang) Text Source
recValue :: forall lang lang. Lens (RecordEntry lang) (RecordEntry lang) (TypeInfo lang) (TypeInfo lang) Source