module Hydra.Lib.Lists where import qualified Data.List as L apply :: [a -> b] -> [a] -> [b] apply :: forall a b. [a -> b] -> [a] -> [b] apply = forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b (<*>) bind :: [a] -> (a -> [b]) -> [b] bind :: forall a b. [a] -> (a -> [b]) -> [b] bind = forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b (>>=) concat :: [[a]] -> [a] concat :: forall a. [[a]] -> [a] concat = forall (t :: * -> *) a. Foldable t => t [a] -> [a] L.concat head :: [a] -> a head :: forall a. [a] -> a head = forall a. [a] -> a L.head intercalate :: [a] -> [[a]] -> [a] intercalate :: forall a. [a] -> [[a]] -> [a] intercalate = forall a. [a] -> [[a]] -> [a] L.intercalate intersperse :: a -> [a] -> [a] intersperse :: forall a. a -> [a] -> [a] intersperse = forall a. a -> [a] -> [a] L.intersperse last :: [a] -> a last :: forall a. [a] -> a last = forall a. [a] -> a L.last length :: [a] -> Int length :: forall a. [a] -> Int length = forall (t :: * -> *) a. Foldable t => t a -> Int L.length map :: (a -> b) -> [a] -> [b] map :: forall a b. (a -> b) -> [a] -> [b] map = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap pure :: a -> [a] pure :: forall a. a -> [a] pure a x = [a x]