module Hydra.Dsl.Lib.Strings where
import Hydra.Dsl.Base
import Hydra.Phantoms
import Hydra.Sources.Libraries
import qualified Hydra.Dsl.Terms as Terms
(++) :: TTerm String -> TTerm String -> TTerm String
TTerm String
l ++ :: TTerm String -> TTerm String -> TTerm String
++ TTerm String
r = (Term -> TTerm ([String] -> String)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([String] -> String))
-> Term -> TTerm ([String] -> String)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_cat) TTerm ([String] -> String) -> TTerm [String] -> TTerm String
forall a b. TTerm (a -> b) -> TTerm a -> TTerm b
@@ ([TTerm String] -> TTerm [String]
forall a. [TTerm a] -> TTerm [a]
list [TTerm String
l, TTerm String
r])
cat :: TTerm ([String] -> String)
cat :: TTerm ([String] -> String)
cat = Term -> TTerm ([String] -> String)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([String] -> String))
-> Term -> TTerm ([String] -> String)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_cat
cat2 :: TTerm (String -> String -> String)
cat2 :: TTerm (String -> String -> String)
cat2 = Term -> TTerm (String -> String -> String)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (String -> String -> String))
-> Term -> TTerm (String -> String -> String)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_cat2
fromList :: TTerm ([Int] -> String)
fromList :: TTerm ([Int] -> String)
fromList = Term -> TTerm ([Int] -> String)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([Int] -> String))
-> Term -> TTerm ([Int] -> String)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_fromList
intercalate :: TTerm (String -> [String] -> String)
intercalate :: TTerm (String -> [String] -> String)
intercalate = Term -> TTerm (String -> [String] -> String)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (String -> [String] -> String))
-> Term -> TTerm (String -> [String] -> String)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_intercalate
isEmpty :: TTerm (String -> Bool)
isEmpty :: TTerm (String -> Bool)
isEmpty = Term -> TTerm (String -> Bool)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (String -> Bool)) -> Term -> TTerm (String -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_isEmpty
length :: TTerm (String -> Int)
length :: TTerm (String -> Int)
length = Term -> TTerm (String -> Int)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (String -> Int)) -> Term -> TTerm (String -> Int)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_length
splitOn :: TTerm (String -> String -> [String])
splitOn :: TTerm (String -> String -> [String])
splitOn = Term -> TTerm (String -> String -> [String])
forall a. Term -> TTerm a
TTerm (Term -> TTerm (String -> String -> [String]))
-> Term -> TTerm (String -> String -> [String])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_splitOn
toList :: TTerm (String -> [Int])
toList :: TTerm (String -> [Int])
toList = Term -> TTerm (String -> [Int])
forall a. Term -> TTerm a
TTerm (Term -> TTerm (String -> [Int]))
-> Term -> TTerm (String -> [Int])
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_toList
toLower :: TTerm (String -> String)
toLower :: TTerm (String -> String)
toLower = Term -> TTerm (String -> String)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (String -> String))
-> Term -> TTerm (String -> String)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_toLower
toUpper :: TTerm (String -> String)
toUpper :: TTerm (String -> String)
toUpper = Term -> TTerm (String -> String)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (String -> String))
-> Term -> TTerm (String -> String)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_toUpper
concat :: [TTerm String] -> TTerm String
concat :: [TTerm String] -> TTerm String
concat [TTerm String]
strings = (Term -> TTerm ([String] -> String)
forall a. Term -> TTerm a
TTerm (Term -> TTerm ([String] -> String))
-> Term -> TTerm ([String] -> String)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_strings_cat) TTerm ([String] -> String) -> TTerm [String] -> TTerm String
forall a b. TTerm (a -> b) -> TTerm a -> TTerm b
@@ [TTerm String] -> TTerm [String]
forall a. [TTerm a] -> TTerm [a]
list [TTerm String]
strings