Safe Haskell | None |
---|
- data Separated 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
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 ^. separatedHead
7
single x ^. separatedHead == (x :: Int)
separatedTail :: Lens' (Separated s a) [(s, a)]Source
A lens on the tail.
>>>
single 7 ^. separatedHead
7
(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) == []