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

Optics.Cons

Description

This module defines the Cons and Snoc classes, which provide Prisms for the leftmost and rightmost elements of a container, respectively.

Synopsis
  • class Cons s t a b | s -> a, t -> b, s b -> t, t a -> s where
    • _Cons :: Prism s t (a, s) (b, t)
  • (<|) :: Cons s s a a => a -> s -> s
  • cons :: Cons s s a a => a -> s -> s
  • uncons :: Cons s s a a => s -> Maybe (a, s)
  • _head :: Cons s s a a => AffineTraversal' s a
  • _tail :: Cons s s a a => AffineTraversal' s s
  • pattern (:<) :: Cons s s a a => a -> s -> s
  • class Snoc s t a b | s -> a, t -> b, s b -> t, t a -> s where
    • _Snoc :: Prism s t (s, a) (t, b)
  • (|>) :: Snoc s s a a => s -> a -> s
  • snoc :: Snoc s s a a => s -> a -> s
  • unsnoc :: Snoc s s a a => s -> Maybe (s, a)
  • _init :: Snoc s s a a => AffineTraversal' s s
  • _last :: Snoc s s a a => AffineTraversal' s a
  • pattern (:>) :: Snoc s s a a => s -> a -> s

Cons

class Cons s t a b | s -> a, t -> b, s b -> t, t a -> s where #

Methods

_Cons :: Prism s t (a, s) (b, t) #

Instances

Instances details
Cons Text Text Char Char Source # 
Instance details

Defined in Optics.Cons

Methods

_Cons :: Prism Text Text (Char, Text) (Char, Text) #

Cons ByteString ByteString Word8 Word8 Source # 
Instance details

Defined in Optics.Cons

Methods

_Cons :: Prism ByteString ByteString (Word8, ByteString) (Word8, ByteString) #

Cons ByteString ByteString Word8 Word8 Source # 
Instance details

Defined in Optics.Cons

Methods

_Cons :: Prism ByteString ByteString (Word8, ByteString) (Word8, ByteString) #

Cons Text Text Char Char Source # 
Instance details

Defined in Optics.Cons

Methods

_Cons :: Prism Text Text (Char, Text) (Char, Text) #

Cons [a] [b] a b 
Instance details

Defined in Optics.Cons.Core

Methods

_Cons :: Prism [a] [b] (a, [a]) (b, [b]) #

Cons (ZipList a) (ZipList b) a b 
Instance details

Defined in Optics.Cons.Core

Methods

_Cons :: Prism (ZipList a) (ZipList b) (a, ZipList a) (b, ZipList b) #

Cons (Seq a) (Seq b) a b 
Instance details

Defined in Optics.Cons.Core

Methods

_Cons :: Prism (Seq a) (Seq b) (a, Seq a) (b, Seq b) #

Cons (Vector a) (Vector b) a b Source # 
Instance details

Defined in Optics.Cons

Methods

_Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) #

(Prim a, Prim b) => Cons (Vector a) (Vector b) a b Source # 
Instance details

Defined in Optics.Cons

Methods

_Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) #

(Storable a, Storable b) => Cons (Vector a) (Vector b) a b Source # 
Instance details

Defined in Optics.Cons

Methods

_Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) #

(Unbox a, Unbox b) => Cons (Vector a) (Vector b) a b Source # 
Instance details

Defined in Optics.Cons

Methods

_Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) #

(<|) :: Cons s s a a => a -> s -> s #

cons :: Cons s s a a => a -> s -> s #

uncons :: Cons s s a a => s -> Maybe (a, s) #

_head :: Cons s s a a => AffineTraversal' s a #

_tail :: Cons s s a a => AffineTraversal' s s #

pattern (:<) :: Cons s s a a => a -> s -> s #

Snoc

class Snoc s t a b | s -> a, t -> b, s b -> t, t a -> s where #

Methods

_Snoc :: Prism s t (s, a) (t, b) #

Instances

Instances details
Snoc Text Text Char Char Source # 
Instance details

Defined in Optics.Cons

Methods

_Snoc :: Prism Text Text (Text, Char) (Text, Char) #

Snoc ByteString ByteString Word8 Word8 Source # 
Instance details

Defined in Optics.Cons

Methods

_Snoc :: Prism ByteString ByteString (ByteString, Word8) (ByteString, Word8) #

Snoc ByteString ByteString Word8 Word8 Source # 
Instance details

Defined in Optics.Cons

Methods

_Snoc :: Prism ByteString ByteString (ByteString, Word8) (ByteString, Word8) #

Snoc Text Text Char Char Source # 
Instance details

Defined in Optics.Cons

Methods

_Snoc :: Prism Text Text (Text, Char) (Text, Char) #

Snoc [a] [b] a b 
Instance details

Defined in Optics.Cons.Core

Methods

_Snoc :: Prism [a] [b] ([a], a) ([b], b) #

Snoc (ZipList a) (ZipList b) a b 
Instance details

Defined in Optics.Cons.Core

Methods

_Snoc :: Prism (ZipList a) (ZipList b) (ZipList a, a) (ZipList b, b) #

Snoc (Seq a) (Seq b) a b 
Instance details

Defined in Optics.Cons.Core

Methods

_Snoc :: Prism (Seq a) (Seq b) (Seq a, a) (Seq b, b) #

Snoc (Vector a) (Vector b) a b Source # 
Instance details

Defined in Optics.Cons

Methods

_Snoc :: Prism (Vector a) (Vector b) (Vector a, a) (Vector b, b) #

(Prim a, Prim b) => Snoc (Vector a) (Vector b) a b Source # 
Instance details

Defined in Optics.Cons

Methods

_Snoc :: Prism (Vector a) (Vector b) (Vector a, a) (Vector b, b) #

(Storable a, Storable b) => Snoc (Vector a) (Vector b) a b Source # 
Instance details

Defined in Optics.Cons

Methods

_Snoc :: Prism (Vector a) (Vector b) (Vector a, a) (Vector b, b) #

(Unbox a, Unbox b) => Snoc (Vector a) (Vector b) a b Source # 
Instance details

Defined in Optics.Cons

Methods

_Snoc :: Prism (Vector a) (Vector b) (Vector a, a) (Vector b, b) #

(|>) :: Snoc s s a a => s -> a -> s #

snoc :: Snoc s s a a => s -> a -> s #

unsnoc :: Snoc s s a a => s -> Maybe (s, a) #

_init :: Snoc s s a a => AffineTraversal' s s #

_last :: Snoc s s a a => AffineTraversal' s a #

pattern (:>) :: Snoc s s a a => s -> a -> s #

Orphan instances

Cons Text Text Char Char Source # 
Instance details

Methods

_Cons :: Prism Text Text (Char, Text) (Char, Text) #

Cons ByteString ByteString Word8 Word8 Source # 
Instance details

Methods

_Cons :: Prism ByteString ByteString (Word8, ByteString) (Word8, ByteString) #

Cons ByteString ByteString Word8 Word8 Source # 
Instance details

Methods

_Cons :: Prism ByteString ByteString (Word8, ByteString) (Word8, ByteString) #

Cons Text Text Char Char Source # 
Instance details

Methods

_Cons :: Prism Text Text (Char, Text) (Char, Text) #

Snoc Text Text Char Char Source # 
Instance details

Methods

_Snoc :: Prism Text Text (Text, Char) (Text, Char) #

Snoc ByteString ByteString Word8 Word8 Source # 
Instance details

Methods

_Snoc :: Prism ByteString ByteString (ByteString, Word8) (ByteString, Word8) #

Snoc ByteString ByteString Word8 Word8 Source # 
Instance details

Methods

_Snoc :: Prism ByteString ByteString (ByteString, Word8) (ByteString, Word8) #

Snoc Text Text Char Char Source # 
Instance details

Methods

_Snoc :: Prism Text Text (Text, Char) (Text, Char) #

Cons (Vector a) (Vector b) a b Source # 
Instance details

Methods

_Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) #

(Prim a, Prim b) => Cons (Vector a) (Vector b) a b Source # 
Instance details

Methods

_Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) #

(Storable a, Storable b) => Cons (Vector a) (Vector b) a b Source # 
Instance details

Methods

_Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) #

(Unbox a, Unbox b) => Cons (Vector a) (Vector b) a b Source # 
Instance details

Methods

_Cons :: Prism (Vector a) (Vector b) (a, Vector a) (b, Vector b) #

Snoc (Vector a) (Vector b) a b Source # 
Instance details

Methods

_Snoc :: Prism (Vector a) (Vector b) (Vector a, a) (Vector b, b) #

(Prim a, Prim b) => Snoc (Vector a) (Vector b) a b Source # 
Instance details

Methods

_Snoc :: Prism (Vector a) (Vector b) (Vector a, a) (Vector b, b) #

(Storable a, Storable b) => Snoc (Vector a) (Vector b) a b Source # 
Instance details

Methods

_Snoc :: Prism (Vector a) (Vector b) (Vector a, a) (Vector b, b) #

(Unbox a, Unbox b) => Snoc (Vector a) (Vector b) a b Source # 
Instance details

Methods

_Snoc :: Prism (Vector a) (Vector b) (Vector a, a) (Vector b, b) #