Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data TypeShape
- type family ProdCombine (a :: TypeShape) (b :: TypeShape) :: TypeShape where ...
- type family SumCombine (a :: TypeShape) (b :: TypeShape) :: TypeShape where ...
- type family TypeHasSimpleShape t (f :: Symbol) :: Constraint where ...
- type family GenericHasSimpleShape t (f :: Symbol) (s :: TypeShape) :: Constraint where ...
- type family GenericShape (g :: * -> *) :: TypeShape
Documentation
Shape of a datatype.
Enumeration | A simple enumeration. |
SumOfProducts | A product or a sum of non-unit products. |
Mixed | Mixed sum type with both unit and non-unit constructors. |
type family ProdCombine (a :: TypeShape) (b :: TypeShape) :: TypeShape where ... Source #
A combined shape for a product type.
ProdCombine Mixed b = Mixed | |
ProdCombine a Mixed = Mixed | |
ProdCombine a b = SumOfProducts |
type family SumCombine (a :: TypeShape) (b :: TypeShape) :: TypeShape where ... Source #
A combined shape for a sum type.
type family TypeHasSimpleShape t (f :: Symbol) :: Constraint where ... Source #
TypeHasSimpleShape t f = GenericHasSimpleShape t f (GenericShape (Rep t)) |
type family GenericHasSimpleShape t (f :: Symbol) (s :: TypeShape) :: Constraint where ... Source #
GenericHasSimpleShape t f Enumeration = () | |
GenericHasSimpleShape t f SumOfProducts = () | |
GenericHasSimpleShape t f Mixed = TypeError ((((((Text "Cannot derive Generic-based Swagger Schema for " :<>: ShowType t) :$$: (ShowType t :<>: Text " is a mixed sum type (has both unit and non-unit constructors).")) :$$: Text "Swagger does not have a good representation for these types.") :$$: ((Text "Use " :<>: Text f) :<>: Text " if you want to derive schema")) :$$: Text "that matches aeson's Generic-based toJSON,") :$$: Text "but that's not supported by some Swagger tools.") |