Data.Generics.Sum.Internal.Typed

generic-lens-core-2.2.1.0: Generically derive traversals, lenses and prisms.

Copyright | (C) 2020 Csongor Kiss
License | BSD3
Maintainer | Csongor Kiss <kiss.csongor.kiss@gmail.com>
Stability | experimental
Portability | non-portable
Safe Haskell | None
Language | Haskell2010

Data.Generics.Sum.Internal.Typed

Description

Derive constructor-field-type-based prisms generically.

Synopsis

- type Context a s = (Generic s, ErrorUnlessOne a s (CollectPartialType (TupleToList a) (Rep s)), GAsType (Rep s) a, Defined (Rep s) (NoGeneric s '['Text "arising from a generic prism focusing on a constructor of type " ':<>: QuoteType a]) ())
- derived :: Context a s => Prism' s a
- class GAsType (f :: Type -> Type) as where
  - _GTyped :: Prism (f x) (f x) as as

# Documentation

type Context a s = (Generic s, ErrorUnlessOne a s (CollectPartialType (TupleToList a) (Rep s)), GAsType (Rep s) a, Defined (Rep s) (NoGeneric s '['Text "arising from a generic prism focusing on a constructor of type " ':<>: QuoteType a]) ()) #

derived :: Context a s => Prism' s a #

class GAsType (f :: Type -> Type) as where #

As `AsType` but over generic representations as defined by GHC.Generics.

Methods

_GTyped :: Prism (f x) (f x) as as #

#### Instances

Instances details

GSumAsType (HasPartialTypeP (TupleToList a) l) l r a => GAsType (l :+: r) a # |
Instance details Defined in Data.Generics.Sum.Internal.Typed Methods _GTyped :: Prism ((l :+: r) x) ((l :+: r) x) a a #
(GIsList f f as as, ListTuple a a as as) => GAsType (M1 C meta f) a # |
Instance details Defined in Data.Generics.Sum.Internal.Typed Methods _GTyped :: Prism (M1 C meta f x) (M1 C meta f x) a a #
GAsType f a => GAsType (M1 D meta f) a # |
Instance details Defined in Data.Generics.Sum.Internal.Typed Methods _GTyped :: Prism (M1 D meta f x) (M1 D meta f x) a a #