Safe Haskell | Safe |
---|---|

Language | Haskell2010 |

This module is intended for internal use only, and may change without warning in subsequent releases.

## Synopsis

- type IxList = [Type]
- type NoIx = ('[] :: IxList)
- type WithIx i = ('[i] :: IxList)
- type family QuoteType (x :: Type) :: ErrorMessage where ...
- type family QuoteSymbol (x :: Symbol) :: ErrorMessage where ...
- type family ShowSymbolWithOrigin symbol origin :: ErrorMessage where ...
- type family ShowSymbolsWithOrigin (fs :: [(Symbol, Symbol)]) :: ErrorMessage where ...
- type family ShowOperators (ops :: [Symbol]) :: ErrorMessage where ...
- type family AppendEliminations a b where ...
- type family ShowEliminations forms :: ErrorMessage where ...
- data RepDefined = RepDefined
- type family AnyHasRep (s :: Type -> Type) (t :: Type -> Type) :: RepDefined
- type family Curry (xs :: IxList) (y :: Type) :: Type where ...
- type family Append (xs :: [k]) (ys :: [k]) :: [k] where ...
- class CurryCompose xs where

# Documentation

type family QuoteType (x :: Type) :: ErrorMessage where ... Source #

Show a type surrounded by quote marks.

type family QuoteSymbol (x :: Symbol) :: ErrorMessage where ... Source #

Show a symbol surrounded by quote marks.

type family ShowSymbolWithOrigin symbol origin :: ErrorMessage where ... Source #

ShowSymbolWithOrigin symbol origin = (((Text " " :<>: QuoteSymbol symbol) :<>: Text " (from ") :<>: Text origin) :<>: Text ")" |

type family ShowSymbolsWithOrigin (fs :: [(Symbol, Symbol)]) :: ErrorMessage where ... Source #

ShowSymbolsWithOrigin '['(symbol, origin)] = ShowSymbolWithOrigin symbol origin | |

ShowSymbolsWithOrigin ('(symbol, origin) ': rest) = ShowSymbolWithOrigin symbol origin :$$: ShowSymbolsWithOrigin rest |

type family ShowOperators (ops :: [Symbol]) :: ErrorMessage where ... Source #

ShowOperators '[op] = QuoteSymbol op :<>: Text " (from Optics.Operators)" | |

ShowOperators (op ': rest) = (QuoteSymbol op :<>: Text " ") :<>: ShowOperators rest |

type family AppendEliminations a b where ... Source #

AppendEliminations '(fs1, ops1) '(fs2, ops2) = '(Append fs1 fs2, Append ops1 ops2) |

type family ShowEliminations forms :: ErrorMessage where ... Source #

ShowEliminations '(fs, ops) = ShowSymbolsWithOrigin fs :$$: (Text " " :<>: ShowOperators ops) |

data RepDefined Source #

type family AnyHasRep (s :: Type -> Type) (t :: Type -> Type) :: RepDefined Source #

This type family should be called with applications of `Rep`

on both sides,
and will reduce to `RepDefined`

if at least one of them is defined; otherwise
it is stuck.

## Instances

type AnyHasRep s (t x) Source # | |

Defined in Optics.Internal.Optic.TypeLevel | |

type AnyHasRep (s x) t Source # | |

Defined in Optics.Internal.Optic.TypeLevel |

type family Append (xs :: [k]) (ys :: [k]) :: [k] where ... Source #

Append two type-level lists together.

class CurryCompose xs where Source #

Class that is inhabited by all type-level lists `xs`

, providing the ability
to compose a function under

.`Curry`

xs

## Instances

CurryCompose ([] :: [Type]) Source # | |

CurryCompose xs => CurryCompose (x ': xs) Source # | |