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

Safe HaskellSafe-Inferred
LanguageHaskell98

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.

lens Source

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 o Source

Get the getter arrow from a lens.

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

Get the modifier arrow from a lens.

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

Create lens from a Point.

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

Get the setter arrow from a lens.

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

Lift an isomorphism into a Lens.

Specialized monomorphic lens operators.

type (:->) f o = Lens Total f o Source

Total monomorphic lens.

type (:~>) f o = Lens Partial f o Source

Partial monomorphic lens.