| 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.Product.Any
Contents
Description
Derive a variety of lenses generically.
Lenses
Running example:
>>>:set -XTypeApplications>>>:set -XDataKinds>>>:set -XDeriveGeneric>>>import GHC.Generics>>>:m +Data.Generics.Internal.VL.Lens>>>:{data Human = Human { name :: String , age :: Int , address :: String } deriving (Generic, Show) human :: Human human = Human "Tunyasz" 50 "London" :}
class HasAny sel s t a b | s sel -> a where Source #
Methods
A lens that focuses on a part of a product as identified by some
  selector. Currently supported selectors are field names, positions and
  unique types. Compatible with the lens package's Lens
  type.
>>>human ^. the @Int50
>>>human ^. the @"name""Tunyasz"
>>>human ^. the @3"London"
Instances
| HasPosition i s t a b => HasAny (i :: Nat) s t a b Source # | |
| Defined in Data.Generics.Product.Any | |
| HasField field s t a b => HasAny (field :: Symbol) s t a b Source # | |
| Defined in Data.Generics.Product.Any | |
| (HasType a s, t ~ s, a ~ b) => HasAny (a :: Type) s t a b Source # | |
| Defined in Data.Generics.Product.Any | |