-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A data type with elements separated by values -- -- -- A data type with elements separated by values @package separated @version 0.2.3 module Data.Separated -- | A list of pairs of separator and value. Separated by a in -- values b. There are an even number of separators as there are -- values. newtype Separated a b Separated :: [(a, b)] -> Separated a b -- | A list of pairs of separator and value. Separated by a in -- values b. There is one more value than there are separators. data Separated1 b a Separated1 :: b -> (Separated a b) -> Separated1 b a -- | The Separated type constructor, flipped. newtype Pesarated b a Pesarated :: (Separated a b) -> Pesarated b a -- | The Separated1 type constructor, flipped. newtype Pesarated1 a b Pesarated1 :: (Separated1 b a) -> Pesarated1 a b -- | The isomorphism to a list of pairs of element and separator values. -- --
-- >>> separated # emptySeparated -- [] ---- --
-- >>> separated # ('x' +: 6 +: emptySeparated)
-- [('x',6)]
--
--
-- -- >>> [] ^. separated -- [] ---- --
-- >>> [(6, [])] ^. separated -- [6,[]] --separated :: Iso [(a, b)] [(c, d)] (Separated a b) (Separated c d) -- | The isomorphism to element values interspersed with a separator. -- --
-- >>> separated1 # (singleSeparated 6) -- (6,[]) ---- --
-- >>> separated1 # (5 +: 'x' +: singleSeparated 6) -- (5,['x',6]) ---- --
-- >>> (6, emptySeparated) ^. separated1 -- [6] ---- --
-- >>> (5, 'x' +- 6) ^. separated1 -- [5,'x',6] --separated1 :: Iso (a, Separated s a) (b, Separated t b) (Separated1 a s) (Separated1 b t) -- | The isomorphism to element values interspersed with a separator. -- --
-- >>> pesarated # emptyPesarated -- [] ---- --
-- >>> ('a', 'x' +- 6) ^. pesarated1
-- ['a',6,'x']
--
--
--
-- >>> ('x' -: 6 -: emptyPesarated)
-- ['x',6]
--
pesarated :: Iso [(a, b)] [(c, d)] (Pesarated b a) (Pesarated d c)
-- | The isomorphism to element values interspersed with a separator.
--
-- -- >>> pesarated1 # singlePesarated 6 -- (6,[]) ---- --
-- >>> pesarated1 # (8 -: 'x' -: singlePesarated 6) -- (8,['x',6]) ---- --
-- >>> (6, empty) ^. pesarated1 -- [6] ---- --
-- >>> (5, 'x' -+ 6) ^. pesarated1 -- [5,'x',6] --pesarated1 :: Iso (a, Pesarated a s) (b, Pesarated b t) (Pesarated1 s a) (Pesarated1 t b) -- | Structures that have a head element. class HasHead s t a b | s -> a, t -> b, s b -> t, t a -> s headL :: HasHead s t a b => Lens s t a b -- | Structures that have a tail. class HasTail s t a b | s -> a, t -> b, s b -> t, t a -> s tailL :: HasTail s t a b => Lens s t a b -- | Construct a single separated value. class Separated1Single f singleSeparated :: Separated1Single f => a -> f a s class Pesarated1Single f singlePesarated :: Pesarated1Single f => a -> f s a -- | Construction of separated values. class Construct f (+-) :: Construct f => s -> a -> f s a (-+) :: Construct f => s -> a -> f a s empty :: Construct f => f s a sprinkle :: Construct f => s -> [a] -> f s a -- | Prepend a value to a separated-like structure. class (f ~ SeparatedConsF g, g ~ SeparatedConsG f) => SeparatedCons f g where type SeparatedConsF g :: * -> * -> * type SeparatedConsG f :: * -> * -> * where { type family SeparatedConsF g :: * -> * -> *; type family SeparatedConsG f :: * -> * -> *; } (+:) :: SeparatedCons f g => a -> f b a -> g a b -- | Prepend a value to a separated-like structure. class (f ~ PesaratedConsF g, g ~ PesaratedConsG f) => PesaratedCons f g where type PesaratedConsF g :: * -> * -> * type PesaratedConsG f :: * -> * -> * where { type family PesaratedConsF g :: * -> * -> *; type family PesaratedConsG f :: * -> * -> *; } (-:) :: PesaratedCons f g => b -> f b a -> g a b -- | Append two to make one. class Appends a b c | a b -> c (<++>) :: Appends a b c => a -> b -> c -- | Alternate separated values e.g. `f ~ Parser`. -- --
-- >>> parse (separatedBy (char ',') digit) "test" "" -- Right [] ---- --
-- >>> isLeft (parse (separatedBy (char ',') digit) "test" ",") -- True ---- --
-- >>> parse (separatedBy (char ',') digit) "test" ",1" -- Right [',','1'] ---- --
-- >>> isLeft (parse (separatedBy (char ',') digit) "test" ",1,") -- True ---- --
-- >>> parse (separatedBy (char ',') digit) "test" ",1,2,3,4,5" -- Right [',','1',',','2',',','3',',','4',',','5'] --separatedBy :: Alternative f => f a -> f b -> f (Separated a b) -- | Alternate separated values e.g. `f ~ Parser`. -- --
-- >>> isLeft (parse (separatedBy1 (char ',') digit) "test" "") -- True ---- --
-- >>> parse (separatedBy1 (char ',') digit) "test" "," -- Right [','] ---- --
-- >>> isLeft (parse (separatedBy1 (char ',') digit) "test" ",1") -- True ---- --
-- >>> parse (separatedBy1 (char ',') digit) "test" ",1," -- Right [',','1',','] ---- --
-- >>> parse (separatedBy1 (char ',') digit) "test" ",1,2,3,4,5," -- Right [',','1',',','2',',','3',',','4',',','5',','] --separatedBy1 :: Alternative f => f b -> f a -> f (Separated1 b a) -- | Alternate separated values e.g. `f ~ Parser`. -- --
-- >>> parse (pesaratedBy (char ',') digit) "test" "" -- Right [] ---- --
-- >>> isLeft (parse (pesaratedBy (char ',') digit) "test" ",") -- True ---- --
-- >>> parse (separatedBy (char ',') digit) "test" ",1" -- Right [',','1'] ---- --
-- >>> isLeft (parse (pesaratedBy (char ',') digit) "test" ",1,") -- True ---- --
-- >>> parse (pesaratedBy (char ',') digit) "test" ",1,2,3,4,5" -- Right [',','1',',','2',',','3',',','4',',','5'] --pesaratedBy :: Alternative f => f a -> f b -> f (Pesarated b a) -- | Alternate separated values e.g. `f ~ Parser`. -- --
-- >>> isLeft (parse (pesaratedBy1 (char ',') digit) "test" "") -- True ---- --
-- >>> parse (pesaratedBy1 (char ',') digit) "test" "," -- Right [','] ---- --
-- >>> isLeft (parse (pesaratedBy1 (char ',') digit) "test" ",1") -- True ---- --
-- >>> parse (pesaratedBy1 (char ',') digit) "test" ",1," -- Right [',','1',','] ---- --
-- >>> parse (pesaratedBy1 (char ',') digit) "test" ",1,2,3,4,5," -- Right [',','1',',','2',',','3',',','4',',','5',','] --pesaratedBy1 :: Alternative f => f b -> f a -> f (Pesarated1 a b) instance Data.Separated.Pesarated1 a0 b0 ~ t0 => Control.Lens.Wrapped.Rewrapped (Data.Separated.Pesarated1 a1 b1) t0 instance Control.Lens.Wrapped.Wrapped (Data.Separated.Pesarated1 a0 b0) instance Data.Separated.Pesarated b0 a0 ~ t0 => Control.Lens.Wrapped.Rewrapped (Data.Separated.Pesarated b1 a1) t0 instance Control.Lens.Wrapped.Wrapped (Data.Separated.Pesarated b0 a0) instance Data.Separated.Separated a0 b0 ~ t0 => Control.Lens.Wrapped.Rewrapped (Data.Separated.Separated a1 b1) t0 instance Control.Lens.Wrapped.Wrapped (Data.Separated.Separated a0 b0) instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Separated.Pesarated1 a b) instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Separated.Pesarated1 a b) instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Data.Separated.Pesarated b a) instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Data.Separated.Pesarated b a) instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Data.Separated.Separated1 b a) instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Data.Separated.Separated1 b a) instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Separated.Separated a b) instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Separated.Separated a b) instance Data.Separated.HasHead (Data.Separated.Separated1 a t) (Data.Separated.Separated1 a t) a a instance Data.Separated.HasHead (Data.Separated.Pesarated1 a t) (Data.Separated.Pesarated1 a t) t t instance Data.Separated.HasTail (Data.Separated.Separated1 a s) (Data.Separated.Separated1 a t) (Data.Separated.Separated s a) (Data.Separated.Separated t a) instance Data.Separated.HasTail (Data.Separated.Pesarated1 a s) (Data.Separated.Pesarated1 b s) (Data.Separated.Pesarated s a) (Data.Separated.Pesarated s b) instance Data.Separated.Separated1Single Data.Separated.Separated1 instance Data.Separated.Pesarated1Single Data.Separated.Pesarated1 instance Data.Separated.Construct Data.Separated.Separated instance Data.Separated.Construct Data.Separated.Pesarated instance Data.Separated.SeparatedCons Data.Separated.Separated1 Data.Separated.Separated instance Data.Separated.SeparatedCons Data.Separated.Separated Data.Separated.Separated1 instance Data.Separated.PesaratedCons Data.Separated.Pesarated Data.Separated.Pesarated1 instance Data.Separated.PesaratedCons Data.Separated.Pesarated1 Data.Separated.Pesarated instance Data.Separated.Appends (Data.Separated.Separated1 s a) (Data.Separated.Separated1 a s) (Data.Separated.Separated s a) instance Data.Separated.Appends (Data.Separated.Separated s a) (Data.Separated.Separated1 s a) (Data.Separated.Separated1 s a) instance Data.Separated.Appends (Data.Separated.Separated1 a s) (Data.Separated.Separated s a) (Data.Separated.Separated1 a s) instance Control.Lens.Iso.Swapped Data.Separated.Separated instance Data.Bifunctor.Bifunctor Data.Separated.Separated instance Data.Bifoldable.Bifoldable Data.Separated.Separated instance Data.Bitraversable.Bitraversable Data.Separated.Separated instance GHC.Base.Functor (Data.Separated.Separated a) instance Data.Foldable.Foldable (Data.Separated.Separated a) instance Data.Traversable.Traversable (Data.Separated.Separated a) instance Data.Semigroup.Semigroup a => Data.Functor.Bind.Class.Apply (Data.Separated.Separated a) instance GHC.Base.Monoid a => GHC.Base.Applicative (Data.Separated.Separated a) instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Data.Separated.Separated a b) instance Data.Semigroup.Semigroup (Data.Separated.Separated a b) instance GHC.Base.Monoid (Data.Separated.Separated a b) instance Data.Bifunctor.Bifunctor Data.Separated.Separated1 instance Data.Bifoldable.Bifoldable Data.Separated.Separated1 instance Data.Bitraversable.Bitraversable Data.Separated.Separated1 instance GHC.Base.Functor (Data.Separated.Separated1 b) instance Data.Foldable.Foldable (Data.Separated.Separated1 b) instance Data.Traversable.Traversable (Data.Separated.Separated1 b) instance Data.Semigroup.Semigroup b => Data.Functor.Bind.Class.Apply (Data.Separated.Separated1 b) instance GHC.Base.Monoid b => GHC.Base.Applicative (Data.Separated.Separated1 b) instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Data.Separated.Separated1 b a) instance Control.Lens.Iso.Swapped Data.Separated.Pesarated instance Data.Bifunctor.Bifunctor Data.Separated.Pesarated instance Data.Bifoldable.Bifoldable Data.Separated.Pesarated instance Data.Bitraversable.Bitraversable Data.Separated.Pesarated instance GHC.Base.Functor (Data.Separated.Pesarated a) instance Data.Foldable.Foldable (Data.Separated.Pesarated b) instance Data.Traversable.Traversable (Data.Separated.Pesarated b) instance Data.Semigroup.Semigroup a => Data.Functor.Bind.Class.Apply (Data.Separated.Pesarated a) instance GHC.Base.Monoid a => GHC.Base.Applicative (Data.Separated.Pesarated a) instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Data.Separated.Pesarated b a) instance Data.Semigroup.Semigroup (Data.Separated.Pesarated b a) instance GHC.Base.Monoid (Data.Separated.Pesarated b a) instance Data.Bifunctor.Bifunctor Data.Separated.Pesarated1 instance Data.Bifoldable.Bifoldable Data.Separated.Pesarated1 instance Data.Bitraversable.Bitraversable Data.Separated.Pesarated1 instance GHC.Base.Functor (Data.Separated.Pesarated1 a) instance Data.Foldable.Foldable (Data.Separated.Pesarated1 a) instance Data.Traversable.Traversable (Data.Separated.Pesarated1 a) instance Data.Semigroup.Semigroup a => Data.Functor.Bind.Class.Apply (Data.Separated.Pesarated1 a) instance GHC.Base.Monoid a => GHC.Base.Applicative (Data.Separated.Pesarated1 a) instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Data.Separated.Pesarated1 a b)