ABList-0.0.3: An alternating list of two types

Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.AbList

Documentation

data AbList a b Source

Constructors

AbNil 
a :/ (AbList b a) infixr 5 

Instances

Functor (AbList a) 
(Eq a, Eq b) => Eq (AbList a b) 
(Ord a, Ord b) => Ord (AbList a b) 
(Show a, Show b) => Show (AbList a b) 

abSingle :: a -> AbList a b Source

abShallowFold :: t -> (a -> AbList b a -> t) -> AbList a b -> t Source

abTail :: AbList a b -> Maybe (AbList b a) Source

abInit :: AbList a b -> Maybe (AbList a b) Source

aaToList :: AbList a a -> [a] Source

aaMap :: (a -> b) -> AbList a a -> AbList b b Source

aaFromList :: [a] -> AbList a a Source

abFoldr :: (Either a b -> t -> t) -> t -> AbList a b -> t Source

abFoldr' :: (a -> t -> t) -> (b -> t -> t) -> t -> AbList a b -> t Source

abFoldl :: (t -> Either a b -> t) -> t -> AbList a b -> t Source

abFoldl' :: (t -> a -> t) -> (t -> b -> t) -> t -> AbList a b -> t Source

abZip :: [a] -> [b] -> AbList a b Source

abFromPairs :: [(a, b)] -> AbList a b Source

abToPairs :: AbList a b -> [(a, b)] Source

abMap :: (a -> a') -> (b -> b') -> AbList a b -> AbList a' b' Source

abMerge :: (a -> t) -> (b -> t) -> AbList a b -> [t] Source

abReverse :: AbList a b -> Either (AbList a b) (AbList b a) Source

abMapLefts :: (a -> a') -> AbList a b -> AbList a' b Source

abMapRights :: (b -> b') -> AbList a b -> AbList a b' Source