fclabels-2.0.1: First class accessor labels implemented as lenses.

Safe HaskellSafe-Inferred

Data.Label.Mono

Contents

Description

Lenses that only allow monomorphic updates. Monomorphic lenses are simply polymorphic lenses with the input and output type variables constraint to the same type.

Synopsis

Documentation

type Lens cat f o = Lens cat (f -> f) (o -> o)Source

Abstract monomorphic lens datatype. The getter and setter functions work in some category. Categories allow for effectful lenses, for example, lenses that might fail or use state.

lensSource

Arguments

:: cat f o

Getter.

-> cat (cat o o, f) f

Modifier.

-> Lens cat f o 

Create a lens out of a getter and setter.

get :: Lens cat f o -> cat f oSource

Get the getter arrow from a lens.

modify :: Lens cat f o -> cat (cat o o, f) fSource

Get the modifier arrow from a lens.

point :: Point cat f o f o -> Lens cat f oSource

Create lens from a Point.

set :: Arrow arr => Lens arr f o -> arr (o, f) fSource

Get the setter arrow from a lens.

iso :: ArrowApply cat => Iso cat f o -> Lens cat f oSource

Lift an isomorphism into a Lens.

Specialized monomorphic lens operators.

type :-> f o = Lens Total f oSource

Total monomorphic lens.

type :~> f o = Lens Partial f oSource

Partial monomorphic lens.