optics-extra-0.3: Extra utilities and instances for optics-core
Safe HaskellNone
LanguageHaskell2010

Optics.At

Description

This module provides optics for Map and Set-like containers, including an AffineTraversal to traverse a key in a map or an element of a sequence:

>>> preview (ix 1) ['a','b','c']
Just 'b'

a Lens to get, set or delete a key in a map:

>>> set (at 0) (Just 'b') (Map.fromList [(0, 'a')])
fromList [(0,'b')]

and a Lens to insert or remove an element of a set:

>>> IntSet.fromList [1,2,3,4] & contains 3 .~ False
fromList [1,2,4]

This module includes the core definitions from Optics.At.Core along with extra (orphan) instances.

Synopsis

Type families

type family Index s #

Instances

Instances details
type Index Text Source # 
Instance details

Defined in Optics.At

type Index Text = Int64
type Index ByteString Source # 
Instance details

Defined in Optics.At

type Index ByteString = Int
type Index ByteString Source # 
Instance details

Defined in Optics.At

type Index ByteString = Int64
type Index Text Source # 
Instance details

Defined in Optics.At

type Index Text = Int
type Index IntSet 
Instance details

Defined in Optics.At.Core

type Index IntSet = Int
type Index [a] 
Instance details

Defined in Optics.At.Core

type Index [a] = Int
type Index (Maybe a) 
Instance details

Defined in Optics.At.Core

type Index (Maybe a) = ()
type Index (NonEmpty a) 
Instance details

Defined in Optics.At.Core

type Index (NonEmpty a) = Int
type Index (Complex a) 
Instance details

Defined in Optics.At.Core

type Index (Complex a) = Int
type Index (Identity a) 
Instance details

Defined in Optics.At.Core

type Index (Identity a) = ()
type Index (IntMap a) 
Instance details

Defined in Optics.At.Core

type Index (IntMap a) = Int
type Index (Seq a) 
Instance details

Defined in Optics.At.Core

type Index (Seq a) = Int
type Index (Set a) 
Instance details

Defined in Optics.At.Core

type Index (Set a) = a
type Index (Tree a) 
Instance details

Defined in Optics.At.Core

type Index (Tree a) = [Int]
type Index (HashSet a) Source # 
Instance details

Defined in Optics.At

type Index (HashSet a) = a
type Index (Vector a) Source # 
Instance details

Defined in Optics.At

type Index (Vector a) = Int
type Index (Vector a) Source # 
Instance details

Defined in Optics.At

type Index (Vector a) = Int
type Index (Vector a) Source # 
Instance details

Defined in Optics.At

type Index (Vector a) = Int
type Index (Vector a) Source # 
Instance details

Defined in Optics.At

type Index (Vector a) = Int
type Index (e -> a) 
Instance details

Defined in Optics.At.Core

type Index (e -> a) = e
type Index (a, b) 
Instance details

Defined in Optics.At.Core

type Index (a, b) = Int
type Index (HashMap k a) Source # 
Instance details

Defined in Optics.At

type Index (HashMap k a) = k
type Index (Array i e) 
Instance details

Defined in Optics.At.Core

type Index (Array i e) = i
type Index (Map k a) 
Instance details

Defined in Optics.At.Core

type Index (Map k a) = k
type Index (UArray i e) 
Instance details

Defined in Optics.At.Core

type Index (UArray i e) = i
type Index (a, b, c) 
Instance details

Defined in Optics.At.Core

type Index (a, b, c) = Int
type Index (a, b, c, d) 
Instance details

Defined in Optics.At.Core

type Index (a, b, c, d) = Int
type Index (a, b, c, d, e) 
Instance details

Defined in Optics.At.Core

type Index (a, b, c, d, e) = Int
type Index (a, b, c, d, e, f) 
Instance details

Defined in Optics.At.Core

type Index (a, b, c, d, e, f) = Int
type Index (a, b, c, d, e, f, g) 
Instance details

Defined in Optics.At.Core

type Index (a, b, c, d, e, f, g) = Int
type Index (a, b, c, d, e, f, g, h) 
Instance details

Defined in Optics.At.Core

type Index (a, b, c, d, e, f, g, h) = Int
type Index (a, b, c, d, e, f, g, h, i) 
Instance details

Defined in Optics.At.Core

type Index (a, b, c, d, e, f, g, h, i) = Int

type family IxValue m #

Instances

Instances details
type IxValue Text Source # 
Instance details

Defined in Optics.At

type IxValue Text = Char
type IxValue ByteString Source # 
Instance details

Defined in Optics.At

type IxValue ByteString = Word8
type IxValue ByteString Source # 
Instance details

Defined in Optics.At

type IxValue ByteString = Word8
type IxValue Text Source # 
Instance details

Defined in Optics.At

type IxValue Text = Char
type IxValue IntSet 
Instance details

Defined in Optics.At.Core

type IxValue IntSet = ()
type IxValue [a] 
Instance details

Defined in Optics.At.Core

type IxValue [a] = a
type IxValue (Maybe a) 
Instance details

Defined in Optics.At.Core

type IxValue (Maybe a) = a
type IxValue (NonEmpty a) 
Instance details

Defined in Optics.At.Core

type IxValue (NonEmpty a) = a
type IxValue (Identity a) 
Instance details

Defined in Optics.At.Core

type IxValue (Identity a) = a
type IxValue (IntMap a) 
Instance details

Defined in Optics.At.Core

type IxValue (IntMap a) = a
type IxValue (Seq a) 
Instance details

Defined in Optics.At.Core

type IxValue (Seq a) = a
type IxValue (Set k) 
Instance details

Defined in Optics.At.Core

type IxValue (Set k) = ()
type IxValue (Tree a) 
Instance details

Defined in Optics.At.Core

type IxValue (Tree a) = a
type IxValue (HashSet k) Source # 
Instance details

Defined in Optics.At

type IxValue (HashSet k) = ()
type IxValue (Vector a) Source # 
Instance details

Defined in Optics.At

type IxValue (Vector a) = a
type IxValue (Vector a) Source # 
Instance details

Defined in Optics.At

type IxValue (Vector a) = a
type IxValue (Vector a) Source # 
Instance details

Defined in Optics.At

type IxValue (Vector a) = a
type IxValue (Vector a) Source # 
Instance details

Defined in Optics.At

type IxValue (Vector a) = a
type IxValue (e -> a) 
Instance details

Defined in Optics.At.Core

type IxValue (e -> a) = a
type IxValue (a0, a2) 
Instance details

Defined in Optics.At.Core

type IxValue (a0, a2) = a0
type IxValue (HashMap k a) Source # 
Instance details

Defined in Optics.At

type IxValue (HashMap k a) = a
type IxValue (Array i e) 
Instance details

Defined in Optics.At.Core

type IxValue (Array i e) = e
type IxValue (Map k a) 
Instance details

Defined in Optics.At.Core

type IxValue (Map k a) = a
type IxValue (UArray i e) 
Instance details

Defined in Optics.At.Core

type IxValue (UArray i e) = e
type IxValue (a0, a1, a2) 
Instance details

Defined in Optics.At.Core

type IxValue (a0, a1, a2) = a0
type IxValue (a0, a1, a2, a3) 
Instance details

Defined in Optics.At.Core

type IxValue (a0, a1, a2, a3) = a0
type IxValue (a0, a1, a2, a3, a4) 
Instance details

Defined in Optics.At.Core

type IxValue (a0, a1, a2, a3, a4) = a0
type IxValue (a0, a1, a2, a3, a4, a5) 
Instance details

Defined in Optics.At.Core

type IxValue (a0, a1, a2, a3, a4, a5) = a0
type IxValue (a0, a1, a2, a3, a4, a5, a6) 
Instance details

Defined in Optics.At.Core

type IxValue (a0, a1, a2, a3, a4, a5, a6) = a0
type IxValue (a0, a1, a2, a3, a4, a5, a6, a7) 
Instance details

Defined in Optics.At.Core

type IxValue (a0, a1, a2, a3, a4, a5, a6, a7) = a0
type IxValue (a0, a1, a2, a3, a4, a5, a6, a7, a8) 
Instance details

Defined in Optics.At.Core

type IxValue (a0, a1, a2, a3, a4, a5, a6, a7, a8) = a0

Ixed

class Ixed m where #

Minimal complete definition

Nothing

Associated Types

type IxKind m #

type IxKind m = An_AffineTraversal

Methods

ix :: Index m -> Optic' (IxKind m) NoIx m (IxValue m) #

Instances

Instances details
Ixed Text Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind Text #

Methods

ix :: Index Text -> Optic' (IxKind Text) NoIx Text (IxValue Text) #

Ixed ByteString Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind ByteString #

Methods

ix :: Index ByteString -> Optic' (IxKind ByteString) NoIx ByteString (IxValue ByteString) #

Ixed ByteString Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind ByteString #

Methods

ix :: Index ByteString -> Optic' (IxKind ByteString) NoIx ByteString (IxValue ByteString) #

Ixed Text Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind Text #

Methods

ix :: Index Text -> Optic' (IxKind Text) NoIx Text (IxValue Text) #

Ixed IntSet 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind IntSet #

Methods

ix :: Index IntSet -> Optic' (IxKind IntSet) NoIx IntSet (IxValue IntSet) #

Ixed [a] 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind [a] #

Methods

ix :: Index [a] -> Optic' (IxKind [a]) NoIx [a] (IxValue [a]) #

Ixed (Maybe a) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (Maybe a) #

Methods

ix :: Index (Maybe a) -> Optic' (IxKind (Maybe a)) NoIx (Maybe a) (IxValue (Maybe a)) #

Ixed (NonEmpty a) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (NonEmpty a) #

Methods

ix :: Index (NonEmpty a) -> Optic' (IxKind (NonEmpty a)) NoIx (NonEmpty a) (IxValue (NonEmpty a)) #

Ixed (Identity a) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (Identity a) #

Methods

ix :: Index (Identity a) -> Optic' (IxKind (Identity a)) NoIx (Identity a) (IxValue (Identity a)) #

Ixed (IntMap a) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (IntMap a) #

Methods

ix :: Index (IntMap a) -> Optic' (IxKind (IntMap a)) NoIx (IntMap a) (IxValue (IntMap a)) #

Ixed (Seq a) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (Seq a) #

Methods

ix :: Index (Seq a) -> Optic' (IxKind (Seq a)) NoIx (Seq a) (IxValue (Seq a)) #

Ord k => Ixed (Set k) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (Set k) #

Methods

ix :: Index (Set k) -> Optic' (IxKind (Set k)) NoIx (Set k) (IxValue (Set k)) #

Ixed (Tree a) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (Tree a) #

Methods

ix :: Index (Tree a) -> Optic' (IxKind (Tree a)) NoIx (Tree a) (IxValue (Tree a)) #

(Eq k, Hashable k) => Ixed (HashSet k) Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind (HashSet k) #

Methods

ix :: Index (HashSet k) -> Optic' (IxKind (HashSet k)) NoIx (HashSet k) (IxValue (HashSet k)) #

Ixed (Vector a) Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind (Vector a) #

Methods

ix :: Index (Vector a) -> Optic' (IxKind (Vector a)) NoIx (Vector a) (IxValue (Vector a)) #

Prim a => Ixed (Vector a) Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind (Vector a) #

Methods

ix :: Index (Vector a) -> Optic' (IxKind (Vector a)) NoIx (Vector a) (IxValue (Vector a)) #

Storable a => Ixed (Vector a) Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind (Vector a) #

Methods

ix :: Index (Vector a) -> Optic' (IxKind (Vector a)) NoIx (Vector a) (IxValue (Vector a)) #

Unbox a => Ixed (Vector a) Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind (Vector a) #

Methods

ix :: Index (Vector a) -> Optic' (IxKind (Vector a)) NoIx (Vector a) (IxValue (Vector a)) #

Eq e => Ixed (e -> a) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (e -> a) #

Methods

ix :: Index (e -> a) -> Optic' (IxKind (e -> a)) NoIx (e -> a) (IxValue (e -> a)) #

a0 ~ a1 => Ixed (a0, a1) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (a0, a1) #

Methods

ix :: Index (a0, a1) -> Optic' (IxKind (a0, a1)) NoIx (a0, a1) (IxValue (a0, a1)) #

(Eq k, Hashable k) => Ixed (HashMap k a) Source # 
Instance details

Defined in Optics.At

Associated Types

type IxKind (HashMap k a) #

Methods

ix :: Index (HashMap k a) -> Optic' (IxKind (HashMap k a)) NoIx (HashMap k a) (IxValue (HashMap k a)) #

Ix i => Ixed (Array i e) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (Array i e) #

Methods

ix :: Index (Array i e) -> Optic' (IxKind (Array i e)) NoIx (Array i e) (IxValue (Array i e)) #

Ord k => Ixed (Map k a) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (Map k a) #

Methods

ix :: Index (Map k a) -> Optic' (IxKind (Map k a)) NoIx (Map k a) (IxValue (Map k a)) #

(IArray UArray e, Ix i) => Ixed (UArray i e) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (UArray i e) #

Methods

ix :: Index (UArray i e) -> Optic' (IxKind (UArray i e)) NoIx (UArray i e) (IxValue (UArray i e)) #

(a0 ~ a1, a0 ~ a2) => Ixed (a0, a1, a2) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (a0, a1, a2) #

Methods

ix :: Index (a0, a1, a2) -> Optic' (IxKind (a0, a1, a2)) NoIx (a0, a1, a2) (IxValue (a0, a1, a2)) #

(a0 ~ a1, a0 ~ a2, a0 ~ a3) => Ixed (a0, a1, a2, a3) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (a0, a1, a2, a3) #

Methods

ix :: Index (a0, a1, a2, a3) -> Optic' (IxKind (a0, a1, a2, a3)) NoIx (a0, a1, a2, a3) (IxValue (a0, a1, a2, a3)) #

(a0 ~ a1, a0 ~ a2, a0 ~ a3, a0 ~ a4) => Ixed (a0, a1, a2, a3, a4) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (a0, a1, a2, a3, a4) #

Methods

ix :: Index (a0, a1, a2, a3, a4) -> Optic' (IxKind (a0, a1, a2, a3, a4)) NoIx (a0, a1, a2, a3, a4) (IxValue (a0, a1, a2, a3, a4)) #

(a0 ~ a1, a0 ~ a2, a0 ~ a3, a0 ~ a4, a0 ~ a5) => Ixed (a0, a1, a2, a3, a4, a5) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (a0, a1, a2, a3, a4, a5) #

Methods

ix :: Index (a0, a1, a2, a3, a4, a5) -> Optic' (IxKind (a0, a1, a2, a3, a4, a5)) NoIx (a0, a1, a2, a3, a4, a5) (IxValue (a0, a1, a2, a3, a4, a5)) #

(a0 ~ a1, a0 ~ a2, a0 ~ a3, a0 ~ a4, a0 ~ a5, a0 ~ a6) => Ixed (a0, a1, a2, a3, a4, a5, a6) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (a0, a1, a2, a3, a4, a5, a6) #

Methods

ix :: Index (a0, a1, a2, a3, a4, a5, a6) -> Optic' (IxKind (a0, a1, a2, a3, a4, a5, a6)) NoIx (a0, a1, a2, a3, a4, a5, a6) (IxValue (a0, a1, a2, a3, a4, a5, a6)) #

(a0 ~ a1, a0 ~ a2, a0 ~ a3, a0 ~ a4, a0 ~ a5, a0 ~ a6, a0 ~ a7) => Ixed (a0, a1, a2, a3, a4, a5, a6, a7) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (a0, a1, a2, a3, a4, a5, a6, a7) #

Methods

ix :: Index (a0, a1, a2, a3, a4, a5, a6, a7) -> Optic' (IxKind (a0, a1, a2, a3, a4, a5, a6, a7)) NoIx (a0, a1, a2, a3, a4, a5, a6, a7) (IxValue (a0, a1, a2, a3, a4, a5, a6, a7)) #

(a0 ~ a1, a0 ~ a2, a0 ~ a3, a0 ~ a4, a0 ~ a5, a0 ~ a6, a0 ~ a7, a0 ~ a8) => Ixed (a0, a1, a2, a3, a4, a5, a6, a7, a8) 
Instance details

Defined in Optics.At.Core

Associated Types

type IxKind (a0, a1, a2, a3, a4, a5, a6, a7, a8) #

Methods

ix :: Index (a0, a1, a2, a3, a4, a5, a6, a7, a8) -> Optic' (IxKind (a0, a1, a2, a3, a4, a5, a6, a7, a8)) NoIx (a0, a1, a2, a3, a4, a5, a6, a7, a8) (IxValue (a0, a1, a2, a3, a4, a5, a6, a7, a8)) #

ixAt :: At m => Index m -> AffineTraversal' m (IxValue m) #

At

class (Ixed m, IxKind m ~ An_AffineTraversal) => At m where #

Methods

at :: Index m -> Lens' m (Maybe (IxValue m)) #

Instances

Instances details
At IntSet 
Instance details

Defined in Optics.At.Core

Methods

at :: Index IntSet -> Lens' IntSet (Maybe (IxValue IntSet)) #

At (Maybe a) 
Instance details

Defined in Optics.At.Core

Methods

at :: Index (Maybe a) -> Lens' (Maybe a) (Maybe (IxValue (Maybe a))) #

At (IntMap a) 
Instance details

Defined in Optics.At.Core

Methods

at :: Index (IntMap a) -> Lens' (IntMap a) (Maybe (IxValue (IntMap a))) #

Ord k => At (Set k) 
Instance details

Defined in Optics.At.Core

Methods

at :: Index (Set k) -> Lens' (Set k) (Maybe (IxValue (Set k))) #

(Eq k, Hashable k) => At (HashSet k) Source # 
Instance details

Defined in Optics.At

Methods

at :: Index (HashSet k) -> Lens' (HashSet k) (Maybe (IxValue (HashSet k))) #

(Eq k, Hashable k) => At (HashMap k a) Source # 
Instance details

Defined in Optics.At

Methods

at :: Index (HashMap k a) -> Lens' (HashMap k a) (Maybe (IxValue (HashMap k a))) #

Ord k => At (Map k a) 
Instance details

Defined in Optics.At.Core

Methods

at :: Index (Map k a) -> Lens' (Map k a) (Maybe (IxValue (Map k a))) #

at' :: At m => Index m -> Lens' m (Maybe (IxValue m)) #

sans :: At m => Index m -> m -> m #

Contains

class Contains m where #

Methods

contains :: Index m -> Lens' m Bool #

Instances

Instances details
Contains IntSet 
Instance details

Defined in Optics.At.Core

Methods

contains :: Index IntSet -> Lens' IntSet Bool #

Ord a => Contains (Set a) 
Instance details

Defined in Optics.At.Core

Methods

contains :: Index (Set a) -> Lens' (Set a) Bool #

(Eq a, Hashable a) => Contains (HashSet a) Source # 
Instance details

Defined in Optics.At

Methods

contains :: Index (HashSet a) -> Lens' (HashSet a) Bool #

Orphan instances

Ixed Text Source # 
Instance details

Associated Types

type IxKind Text #

Methods

ix :: Index Text -> Optic' (IxKind Text) NoIx Text (IxValue Text) #

Ixed ByteString Source # 
Instance details

Associated Types

type IxKind ByteString #

Methods

ix :: Index ByteString -> Optic' (IxKind ByteString) NoIx ByteString (IxValue ByteString) #

Ixed ByteString Source # 
Instance details

Associated Types

type IxKind ByteString #

Methods

ix :: Index ByteString -> Optic' (IxKind ByteString) NoIx ByteString (IxValue ByteString) #

Ixed Text Source # 
Instance details

Associated Types

type IxKind Text #

Methods

ix :: Index Text -> Optic' (IxKind Text) NoIx Text (IxValue Text) #

(Eq k, Hashable k) => At (HashSet k) Source # 
Instance details

Methods

at :: Index (HashSet k) -> Lens' (HashSet k) (Maybe (IxValue (HashSet k))) #

(Eq a, Hashable a) => Contains (HashSet a) Source # 
Instance details

Methods

contains :: Index (HashSet a) -> Lens' (HashSet a) Bool #

(Eq k, Hashable k) => Ixed (HashSet k) Source # 
Instance details

Associated Types

type IxKind (HashSet k) #

Methods

ix :: Index (HashSet k) -> Optic' (IxKind (HashSet k)) NoIx (HashSet k) (IxValue (HashSet k)) #

Ixed (Vector a) Source # 
Instance details

Associated Types

type IxKind (Vector a) #

Methods

ix :: Index (Vector a) -> Optic' (IxKind (Vector a)) NoIx (Vector a) (IxValue (Vector a)) #

Prim a => Ixed (Vector a) Source # 
Instance details

Associated Types

type IxKind (Vector a) #

Methods

ix :: Index (Vector a) -> Optic' (IxKind (Vector a)) NoIx (Vector a) (IxValue (Vector a)) #

Storable a => Ixed (Vector a) Source # 
Instance details

Associated Types

type IxKind (Vector a) #

Methods

ix :: Index (Vector a) -> Optic' (IxKind (Vector a)) NoIx (Vector a) (IxValue (Vector a)) #

Unbox a => Ixed (Vector a) Source # 
Instance details

Associated Types

type IxKind (Vector a) #

Methods

ix :: Index (Vector a) -> Optic' (IxKind (Vector a)) NoIx (Vector a) (IxValue (Vector a)) #

(Eq k, Hashable k) => At (HashMap k a) Source # 
Instance details

Methods

at :: Index (HashMap k a) -> Lens' (HashMap k a) (Maybe (IxValue (HashMap k a))) #

(Eq k, Hashable k) => Ixed (HashMap k a) Source # 
Instance details

Associated Types

type IxKind (HashMap k a) #

Methods

ix :: Index (HashMap k a) -> Optic' (IxKind (HashMap k a)) NoIx (HashMap k a) (IxValue (HashMap k a)) #