module Hydra.Dsl.Lib.Lists where

import Hydra.Phantoms
import Hydra.Sources.Libraries
import qualified Hydra.Dsl.Terms as Terms


apply :: TTerm ([a -> b] -> [a] -> [b])
apply :: forall a b. TTerm ([a -> b] -> [a] -> [b])
apply = Term -> TTerm ([a -> b] -> [a] -> [b])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a -> b] -> [a] -> [b]))
-> Term -> TTerm ([a -> b] -> [a] -> [b])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_apply

at :: TTerm (Int -> [a] -> a)
at :: forall a. TTerm (Int -> [a] -> a)
at = Term -> TTerm (Int -> [a] -> a)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (Int -> [a] -> a))
-> Term -> TTerm (Int -> [a] -> a)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_at

bind :: TTerm ([a] -> (a -> [b]) -> [b])
bind :: forall a b. TTerm ([a] -> (a -> [b]) -> [b])
bind = Term -> TTerm ([a] -> (a -> [b]) -> [b])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> (a -> [b]) -> [b]))
-> Term -> TTerm ([a] -> (a -> [b]) -> [b])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_bind

concat :: TTerm ([[a]] -> [a])
concat :: forall a. TTerm ([[a]] -> [a])
concat = Term -> TTerm ([[a]] -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([[a]] -> [a])) -> Term -> TTerm ([[a]] -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_concat

concat2 :: TTerm ([a] -> [a] -> [a])
concat2 :: forall a. TTerm ([a] -> [a] -> [a])
concat2 = Term -> TTerm ([a] -> [a] -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> [a] -> [a]))
-> Term -> TTerm ([a] -> [a] -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_concat2

cons :: TTerm (a -> [a] -> [a])
cons :: forall a. TTerm (a -> [a] -> [a])
cons = Term -> TTerm (a -> [a] -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm (a -> [a] -> [a]))
-> Term -> TTerm (a -> [a] -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_cons

filter :: TTerm ((a -> Bool) -> [a] -> [a])
filter :: forall a. TTerm ((a -> Bool) -> [a] -> [a])
filter = Term -> TTerm ((a -> Bool) -> [a] -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ((a -> Bool) -> [a] -> [a]))
-> Term -> TTerm ((a -> Bool) -> [a] -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_filter

foldl :: TTerm ((b -> a -> b) -> b -> [a] -> b)
foldl :: forall b a. TTerm ((b -> a -> b) -> b -> [a] -> b)
foldl = Term -> TTerm ((b -> a -> b) -> b -> [a] -> b)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ((b -> a -> b) -> b -> [a] -> b))
-> Term -> TTerm ((b -> a -> b) -> b -> [a] -> b)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_foldl

head :: TTerm ([a] -> a)
head :: forall a. TTerm ([a] -> a)
head = Term -> TTerm ([a] -> a)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> a)) -> Term -> TTerm ([a] -> a)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_head

intercalate :: TTerm ([a] -> [[a]] -> [a])
intercalate :: forall a. TTerm ([a] -> [[a]] -> [a])
intercalate = Term -> TTerm ([a] -> [[a]] -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> [[a]] -> [a]))
-> Term -> TTerm ([a] -> [[a]] -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_intercalate

intersperse :: TTerm ([a] -> a -> [a])
intersperse :: forall a. TTerm ([a] -> a -> [a])
intersperse = Term -> TTerm ([a] -> a -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> a -> [a]))
-> Term -> TTerm ([a] -> a -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_intersperse

last :: TTerm ([a] -> a)
last :: forall a. TTerm ([a] -> a)
last = Term -> TTerm ([a] -> a)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> a)) -> Term -> TTerm ([a] -> a)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_last

length :: TTerm ([a] -> Int)
length :: forall a. TTerm ([a] -> Int)
length = Term -> TTerm ([a] -> Int)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> Int)) -> Term -> TTerm ([a] -> Int)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_length

map :: TTerm ((a -> b) -> [a] -> [b])
map :: forall a b. TTerm ((a -> b) -> [a] -> [b])
map = Term -> TTerm ((a -> b) -> [a] -> [b])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ((a -> b) -> [a] -> [b]))
-> Term -> TTerm ((a -> b) -> [a] -> [b])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_map

nub :: Eq a => TTerm ([a] -> [a])
nub :: forall a. Eq a => TTerm ([a] -> [a])
nub = Term -> TTerm ([a] -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> [a])) -> Term -> TTerm ([a] -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_nub

null :: TTerm ([a] -> Bool)
null :: forall a. TTerm ([a] -> Bool)
null = Term -> TTerm ([a] -> Bool)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> Bool)) -> Term -> TTerm ([a] -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_null

pure :: TTerm (a -> [a])
pure :: forall a. TTerm (a -> [a])
pure = Term -> TTerm (a -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm (a -> [a])) -> Term -> TTerm (a -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_pure

reverse :: TTerm ([a] -> [a])
reverse :: forall a. TTerm ([a] -> [a])
reverse = Term -> TTerm ([a] -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> [a])) -> Term -> TTerm ([a] -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_reverse

safeHead :: TTerm ([a] -> Maybe a)
safeHead :: forall a. TTerm ([a] -> Maybe a)
safeHead = Term -> TTerm ([a] -> Maybe a)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> Maybe a)) -> Term -> TTerm ([a] -> Maybe a)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_safeHead

tail :: TTerm ([a] -> [a])
tail :: forall a. TTerm ([a] -> [a])
tail = Term -> TTerm ([a] -> [a])
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([a] -> [a])) -> Term -> TTerm ([a] -> [a])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_lists_tail