extensible-0.3.5: Extensible, efficient, lens-friendly data types

Copyright(c) Fumiaki Kinoshita 2015
LicenseBSD3
MaintainerFumiaki Kinoshita <fumiexcel@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Extensible.Internal.Rig

Description

Re-implementation of lens combinators

Synopsis

Documentation

type Optic p f s t a b = p a (f b) -> p s (f t) Source

type Optic' p f s a = p a (f a) -> p s (f s) Source

view :: Optic' (->) (Const a) s a -> s -> a Source

view :: Getter s a -> s -> a

views :: Optic' (->) (Const r) s a -> (a -> r) -> s -> r Source

views :: Getter s a -> (a -> r) -> (s -> r)

over :: Optic (->) Identity s t a b -> (a -> b) -> s -> t Source

over :: Setter s t a b -> (a -> b) -> (s -> t)

withIso :: Optic (Exchange a b) Identity s t a b -> ((s -> a) -> (b -> t) -> r) -> r Source

data Exchange a b s t Source

Constructors

Exchange (s -> a) (b -> t) 

Instances