| Safe Haskell | None |
|---|
Data.Separated
- data Separated s a = Separated a [(s, a)]
- (~>) :: (s, a) -> Separated s a -> Separated s a
- single :: a -> Separated s a
- separatedValues1 :: Separated s a -> NonEmpty a
- separatedValues :: Separated s a -> [a]
- separatedHead :: Lens' (Separated s a) a
- separatedTail :: Lens' (Separated s a) [(s, a)]
- separators :: Separated s a -> [s]
Documentation
Constructors
| Separated a [(s, a)] |
Instances
| Functor (Separated s) | Map across a fmap id (x :: Separated Int String) == x
|
| (Eq s, Eq a) => Eq (Separated s a) | |
| (Ord s, Ord a) => Ord (Separated s a) | |
| (Show s, Show a) => Show (Separated s a) |
(~>) :: (s, a) -> Separated s a -> Separated s aSource
Prepend a separator and element to the current tail.
>>>('b', 9) ~> ('a', 8) ~> single 7[7'b'9'a'8]
separatedValues1 :: Separated s a -> NonEmpty aSource
Return all element values.
>>>separatedValues1 (single 8)8 :| []
>>>separatedValues1 (('a', 9) ~> single 8)8 :| [9]
let h :| _ = separatedValues1 (single x) in h == (x :: Int)
let _ :| t = separatedValues1 (e ~> single x) in t == fmap fst [e]
separatedValues :: Separated s a -> [a]Source
Return all element values.
>>>separatedValues (single 8)[8]
>>>separatedValues (('a', 9) ~> single 8)[8,9]
let h : _ = separatedValues (single x) in h == (x :: Int)
let _ : t = separatedValues (e ~> single x) in t == fmap fst [e]
separatedHead :: Lens' (Separated s a) aSource
A lens on the first element value.
>>>single 7 ^. separatedHead7
single x ^. separatedHead == (x :: Int)
separatedTail :: Lens' (Separated s a) [(s, a)]Source
A lens on the tail.
>>>single 7 ^. separatedHead7
(e ~> single x) ^. separatedTail == [e]
separators :: Separated s a -> [s]Source
Return all separator values.
>>>separators (('a', 8) ~> single 7)"a"
>>>separators (('b', 9) ~> ('a', 8) ~> single 7)"ba"
separators (single x) == []