lens-family-core-0.0.1: Haskell 98 Lens Families

Safe HaskellSafe-Infered

Lens.Family.Stock

Contents

Description

This module contains lenses for common structures in Haskell. It also contains the lens combinators mergeL and ***.

Synopsis

Lens Combinators

mergeL :: Functor f => LensFamily f a a' c c' -> LensFamily f b b' c c' -> LensFamily f (Either a b) (Either a' b') c c'Source

Given two lens/getter/setter families with the same substructure, make a new lens/getter/setter on Either.

(***) :: Functor f => ClonerFamily a1 a1' b1 b1' -> ClonerFamily a2 a2' b2 b2' -> LensFamily f (a1, a2) (a1', a2') (b1, b2) (b1', b2')Source

Given two lens families, make a new lens on their product.

Stock Lenses

fstL :: Functor f => LensFamily f (a, b) (a', b) a a'Source

Lens on the first element of a pair.

sndL :: Functor f => LensFamily f (a, b) (a, b') b b'Source

Lens on the second element of a pair.

funL :: (Eq k, Functor f) => k -> Lens f (k -> v) vSource

Lens on a given point of a function.

mapL :: (Ord k, Functor f) => k -> Lens f (Map k v) (Maybe v)Source

Lens on a given point of a Map.

intMapL :: Functor f => Int -> Lens f (IntMap v) (Maybe v)Source

Lens on a given point of a IntMap.

setL :: (Ord k, Functor f) => k -> Lens f (Set k) BoolSource

Lens on a given point of a Set.

intSetL :: Functor f => Int -> Lens f IntSet BoolSource

Lens on a given point of a IntSet.

Types

type LensFamily f a a' b b' = (b -> f b') -> a -> f a'Source

type Lens f a b = LensFamily f a a b bSource