Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data StrictList a
- = Nil
- | !a :! !(StrictList a)
- type SL = StrictList
- (+!+) :: StrictList a -> StrictList a -> StrictList a
- (\!\) :: Eq a => SL a -> SL a -> SL a
- all :: (a -> Bool) -> StrictList a -> Bool
- any :: (a -> Bool) -> StrictList a -> Bool
- atIdx :: Int -> StrictList a -> Option a
- break :: (a -> Bool) -> StrictList a -> (StrictList a, StrictList a)
- catMaybes :: StrictList (Maybe a) -> StrictList a
- catOptions :: StrictList (Option a) -> StrictList a
- catOptionsL :: [Option a] -> StrictList a
- concat :: Foldable t => t (StrictList a) -> StrictList a
- concatSL :: SL (SL a) -> SL a
- concatMap :: Foldable t => (a -> StrictList b) -> t a -> StrictList b
- concatMapSL :: (a -> StrictList b) -> SL a -> StrictList b
- concatMapM :: Monad m => (a -> m (SL b)) -> SL a -> m (SL b)
- concatText :: StrictList Text -> Text
- delete :: Eq a => a -> SL a -> SL a
- deleteBy :: (a -> a -> Bool) -> a -> SL a -> SL a
- deleteIdx :: Int -> StrictList a -> StrictList a
- drop :: Int -> StrictList a -> StrictList a
- dropWhile :: (a -> Bool) -> StrictList a -> StrictList a
- dropWhileEnd :: (a -> Bool) -> SL a -> SL a
- elem :: Eq a => a -> StrictList a -> Bool
- filter :: (a -> Bool) -> StrictList a -> StrictList a
- find :: (a -> Bool) -> StrictList a -> Maybe a
- findIndex :: (a -> Bool) -> StrictList a -> Option Int
- fromLazyList :: [a] -> StrictList a
- toLazyList :: StrictList a -> [a]
- groupBy :: (a -> a -> Bool) -> StrictList a -> StrictList (StrictList a)
- headM :: Monad m => StrictList a -> m a
- headOpt :: StrictList a -> Option a
- insert :: Ord a => a -> SL a -> SL a
- insertBy :: (a -> a -> Ordering) -> a -> SL a -> SL a
- intercalateString :: String -> SL String -> String
- intercalateText :: Text -> StrictList Text -> Text
- intersperse :: a -> StrictList a -> StrictList a
- lastM :: Monad m => StrictList a -> m a
- lastOpt :: StrictList a -> Option a
- length :: StrictList a -> Int
- ll :: SL a -> [a]
- lookup :: Eq a => a -> StrictList (a :!: b) -> Option b
- lookupM :: (Monad m, Show a, Eq a) => a -> StrictList (a :!: b) -> m b
- lookupM' :: (Monad m, Eq a) => (a -> String) -> a -> StrictList (a :!: b) -> m b
- lookupM'' :: (Monad m, Eq k) => (k -> String) -> (a -> Maybe k) -> k -> StrictList a -> m a
- map :: (a -> b) -> StrictList a -> StrictList b
- mapM :: Monad m => (a -> m b) -> StrictList a -> m (StrictList b)
- mapM_ :: Monad m => (a -> m b) -> StrictList a -> m ()
- mapMaybe :: (a -> Maybe b) -> StrictList a -> StrictList b
- mapOption :: (a -> Option b) -> StrictList a -> StrictList b
- maximumM :: (Ord a, Monad m) => SL a -> m a
- maybeToStrictList :: Maybe a -> StrictList a
- mconcatSL :: Monoid a => SL a -> a
- notElem :: Eq a => a -> StrictList a -> Bool
- nub :: (Eq a, Hashable a) => SL a -> SL a
- null :: StrictList a -> Bool
- optionToStrictList :: Option a -> StrictList a
- partition :: (a -> Bool) -> SL a -> (SL a, SL a)
- replicate :: Integral i => i -> a -> StrictList a
- reverse :: StrictList a -> StrictList a
- singleton :: a -> StrictList a
- sl :: [a] -> SL a
- snoc :: SL a -> a -> SL a
- merge :: Ord a => StrictList a -> StrictList a -> StrictList a
- mergeBy :: (a -> a -> Ordering) -> StrictList a -> StrictList a -> StrictList a
- sort :: Ord a => StrictList a -> StrictList a
- sortBy :: (a -> a -> Ordering) -> StrictList a -> StrictList a
- sortOn :: Ord b => (a -> b) -> StrictList a -> StrictList a
- span :: (a -> Bool) -> StrictList a -> (StrictList a, StrictList a)
- stripPrefix :: Eq a => SL a -> SL a -> Maybe (SL a)
- stripSuffix :: Eq a => SL a -> SL a -> Maybe (SL a)
- tailOpt :: StrictList a -> Option (StrictList a)
- take :: Int -> StrictList a -> StrictList a
- takeWhile :: (a -> Bool) -> StrictList a -> StrictList a
- transpose :: SL (SL a) -> SL (SL a)
- unzip :: SL (a :!: b) -> SL a :!: SL b
- unzipL :: [a :!: b] -> SL a :!: SL b
- unzipLL :: [(a, b)] -> SL a :!: SL b
- zip :: StrictList a -> StrictList b -> StrictList (a :!: b)
- zipLL :: [a] -> [b] -> StrictList (a :!: b)
- zipLS :: [a] -> StrictList b -> StrictList (a :!: b)
- zipSL :: StrictList a -> [b] -> StrictList (a :!: b)
- zipWith :: (a -> b -> c) -> SL a -> SL b -> SL c
- zipWithLS :: (a -> b -> c) -> [a] -> SL b -> SL c
- zipWithSL :: (a -> b -> c) -> SL a -> [b] -> SL c
Documentation
data StrictList a Source #
Nil | |
!a :! !(StrictList a) infixr 5 |
Monad StrictList Source # | |
Functor StrictList Source # | |
MonadFail StrictList Source # | |
Applicative StrictList Source # | |
Foldable StrictList Source # | |
Traversable StrictList Source # | |
Alternative StrictList Source # | |
IsList (StrictList a) Source # | |
Eq a => Eq (StrictList a) Source # | |
Data a => Data (StrictList a) Source # | |
Ord a => Ord (StrictList a) Source # | |
Read a => Read (StrictList a) Source # | |
Show a => Show (StrictList a) Source # | |
Generic (StrictList a) Source # | |
Monoid (StrictList a) Source # | |
Arbitrary a => Arbitrary (StrictList a) Source # | |
Hashable a => Hashable (StrictList a) Source # | |
ToJSON a => ToJSON (StrictList a) Source # | |
FromJSON a => FromJSON (StrictList a) Source # | |
NFData a => NFData (StrictList a) Source # | |
type Rep (StrictList a) Source # | |
type Item (StrictList a) Source # | |
type SL = StrictList Source #
(+!+) :: StrictList a -> StrictList a -> StrictList a infixr 5 Source #
break :: (a -> Bool) -> StrictList a -> (StrictList a, StrictList a) Source #
catMaybes :: StrictList (Maybe a) -> StrictList a Source #
Equivalent of catMaybes
with StrictList
.
catOptions :: StrictList (Option a) -> StrictList a Source #
Equivalent to catMaybes
with Option
and StrictList
.
>>>
catOptions (sl [Some 1, None, Some 2, None, None, Some 3, Some 4])
[1,2,3,4]
catOptionsL :: [Option a] -> StrictList a Source #
>>>
catOptionsL [Some 1, None, Some 2, None, None, Some 3, Some 4]
[1,2,3,4]
concat :: Foldable t => t (StrictList a) -> StrictList a Source #
concatMap :: Foldable t => (a -> StrictList b) -> t a -> StrictList b Source #
concatMapSL :: (a -> StrictList b) -> SL a -> StrictList b Source #
concatText :: StrictList Text -> Text Source #
delete :: Eq a => a -> SL a -> SL a Source #
delete
x
removes the first occurrence of x
from its list argument.
NOTE: Implementation copied from Data.List.
deleteIdx :: Int -> StrictList a -> StrictList a Source #
deleteIdx
idx
removes the element at index idx
.
not (null xs) ==> Some (deleteIdx 0 xs) == tailOpt xs
drop :: Int -> StrictList a -> StrictList a Source #
>>>
drop 3 (sl [1, 2, 3, 4, 5])
[4,5]
dropWhile :: (a -> Bool) -> StrictList a -> StrictList a Source #
filter :: (a -> Bool) -> StrictList a -> StrictList a Source #
Equivalent of filter
with StrictList
.
fromLazyList :: [a] -> StrictList a Source #
toLazyList :: StrictList a -> [a] Source #
groupBy :: (a -> a -> Bool) -> StrictList a -> StrictList (StrictList a) Source #
headM :: Monad m => StrictList a -> m a Source #
headOpt :: StrictList a -> Option a Source #
not (null xs) ==> isSome (headOpt xs)
intercalateText :: Text -> StrictList Text -> Text Source #
intersperse :: a -> StrictList a -> StrictList a Source #
lastM :: Monad m => StrictList a -> m a Source #
lastOpt :: StrictList a -> Option a Source #
length :: StrictList a -> Int Source #
lookupM'' :: (Monad m, Eq k) => (k -> String) -> (a -> Maybe k) -> k -> StrictList a -> m a Source #
lookupM'' showKey getKey getValue key list
searches for key
in
list
using getKey
as the key extraction function and showKey
to print
all available keys when no match is found.
map :: (a -> b) -> StrictList a -> StrictList b Source #
mapM :: Monad m => (a -> m b) -> StrictList a -> m (StrictList b) Source #
mapM_ :: Monad m => (a -> m b) -> StrictList a -> m () Source #
mapMaybe :: (a -> Maybe b) -> StrictList a -> StrictList b Source #
Equivalent of mapMaybe
with StrictList
.
mapOption :: (a -> Option b) -> StrictList a -> StrictList b Source #
Equivalent of mapMaybe
with Option
and StrictList
.
>>>
mapOption (\x -> if even x then Some (x * 2) else None) (sl [1, 2, 3, 4, 5])
[4,8]
maybeToStrictList :: Maybe a -> StrictList a Source #
>>>
maybeToStrictList (Just "bar")
["bar"]
>>>
maybeToStrictList Nothing
[]
null :: StrictList a -> Bool Source #
>>>
null (sl [])
True
>>>
null (sl ["foo"])
False
optionToStrictList :: Option a -> StrictList a Source #
>>>
optionToStrictList (Some "foo")
["foo"]
>>>
optionToStrictList None
[]
replicate :: Integral i => i -> a -> StrictList a Source #
reverse :: StrictList a -> StrictList a Source #
reverse (reverse xs) == xs
singleton :: a -> StrictList a Source #
snoc :: SL a -> a -> SL a Source #
Appends an element to the end of this list. This is really inefficient because the whole list needs to be copied. Use at your own risk.
merge :: Ord a => StrictList a -> StrictList a -> StrictList a Source #
mergeBy :: (a -> a -> Ordering) -> StrictList a -> StrictList a -> StrictList a Source #
sort :: Ord a => StrictList a -> StrictList a Source #
sortBy :: (a -> a -> Ordering) -> StrictList a -> StrictList a Source #
sortOn :: Ord b => (a -> b) -> StrictList a -> StrictList a Source #
>>>
sortOn snd (sl [("foo", 10), ("bar", 1), ("baz", 100)])
[("bar",1),("foo",10),("baz",100)]
span :: (a -> Bool) -> StrictList a -> (StrictList a, StrictList a) Source #
tailOpt :: StrictList a -> Option (StrictList a) Source #
take :: Int -> StrictList a -> StrictList a Source #
>>>
take 3 (sl [1, 2, 3, 4, 5, 6, 7])
[1,2,3]
takeWhile :: (a -> Bool) -> StrictList a -> StrictList a Source #
zip :: StrictList a -> StrictList b -> StrictList (a :!: b) Source #
zipLL :: [a] -> [b] -> StrictList (a :!: b) Source #
zipLS :: [a] -> StrictList b -> StrictList (a :!: b) Source #
zipSL :: StrictList a -> [b] -> StrictList (a :!: b) Source #