module Hydra.Dsl.Lib.Equality where

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

import Data.Int


equalBinary :: Datum (String -> String -> Bool)
equalBinary :: Datum (String -> String -> Bool)
equalBinary = Term -> Datum (String -> String -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (String -> String -> Bool))
-> Term -> Datum (String -> String -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalBinary

equalBoolean :: Datum (Bool -> Bool -> Bool)
equalBoolean :: Datum (Bool -> Bool -> Bool)
equalBoolean = Term -> Datum (Bool -> Bool -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Bool -> Bool -> Bool))
-> Term -> Datum (Bool -> Bool -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalBoolean

equalBigfloat :: Datum (Double -> Double -> Bool)
equalBigfloat :: Datum (Double -> Double -> Bool)
equalBigfloat = Term -> Datum (Double -> Double -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Double -> Double -> Bool))
-> Term -> Datum (Double -> Double -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalBigfloat

equalFloat32 :: Datum (Float -> Float -> Bool)
equalFloat32 :: Datum (Float -> Float -> Bool)
equalFloat32 = Term -> Datum (Float -> Float -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Float -> Float -> Bool))
-> Term -> Datum (Float -> Float -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalFloat32

equalFloat64 :: Datum (Double -> Double -> Bool)
equalFloat64 :: Datum (Double -> Double -> Bool)
equalFloat64 = Term -> Datum (Double -> Double -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Double -> Double -> Bool))
-> Term -> Datum (Double -> Double -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalFloat64

equalBigint :: Datum (Integer -> Integer -> Bool)
equalBigint :: Datum (Integer -> Integer -> Bool)
equalBigint = Term -> Datum (Integer -> Integer -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Integer -> Integer -> Bool))
-> Term -> Datum (Integer -> Integer -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalBigint

equalInt8 :: Datum (Int8 -> Int8 -> Bool)
equalInt8 :: Datum (Int8 -> Int8 -> Bool)
equalInt8 = Term -> Datum (Int8 -> Int8 -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int8 -> Int8 -> Bool))
-> Term -> Datum (Int8 -> Int8 -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalInt8

equalInt16 :: Datum (Int16 -> Int16 -> Bool)
equalInt16 :: Datum (Int16 -> Int16 -> Bool)
equalInt16 = Term -> Datum (Int16 -> Int16 -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int16 -> Int16 -> Bool))
-> Term -> Datum (Int16 -> Int16 -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalInt16

equalInt32 :: Datum (Int -> Int -> Bool)
equalInt32 :: Datum (Int -> Int -> Bool)
equalInt32 = Term -> Datum (Int -> Int -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int -> Int -> Bool))
-> Term -> Datum (Int -> Int -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalInt32

equalInt64 :: Datum (Int64 -> Int64 -> Bool)
equalInt64 :: Datum (Int64 -> Int64 -> Bool)
equalInt64 = Term -> Datum (Int64 -> Int64 -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int64 -> Int64 -> Bool))
-> Term -> Datum (Int64 -> Int64 -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalInt64

equalString :: Datum (String -> String -> Bool)
equalString :: Datum (String -> String -> Bool)
equalString = Term -> Datum (String -> String -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (String -> String -> Bool))
-> Term -> Datum (String -> String -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalString

equalTerm :: Datum (Term -> Term -> Bool)
equalTerm :: Datum (Term -> Term -> Bool)
equalTerm = Term -> Datum (Term -> Term -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Term -> Term -> Bool))
-> Term -> Datum (Term -> Term -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalTerm

equalType :: Datum (Type -> Type -> Bool)
equalType :: Datum (Type -> Type -> Bool)
equalType = Term -> Datum (Type -> Type -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Type -> Type -> Bool))
-> Term -> Datum (Type -> Type -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalType

equalUint8 :: Datum (Int16 -> Int16 -> Bool)
equalUint8 :: Datum (Int16 -> Int16 -> Bool)
equalUint8 = Term -> Datum (Int16 -> Int16 -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int16 -> Int16 -> Bool))
-> Term -> Datum (Int16 -> Int16 -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalUint8

equalUint16 :: Datum (Int -> Int -> Bool)
equalUint16 :: Datum (Int -> Int -> Bool)
equalUint16 = Term -> Datum (Int -> Int -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int -> Int -> Bool))
-> Term -> Datum (Int -> Int -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalUint16

equalUint32 :: Datum (Int64 -> Int64 -> Bool)
equalUint32 :: Datum (Int64 -> Int64 -> Bool)
equalUint32 = Term -> Datum (Int64 -> Int64 -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int64 -> Int64 -> Bool))
-> Term -> Datum (Int64 -> Int64 -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalUint32

equalUint64 :: Datum (Integer -> Integer -> Bool)
equalUint64 :: Datum (Integer -> Integer -> Bool)
equalUint64 = Term -> Datum (Integer -> Integer -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Integer -> Integer -> Bool))
-> Term -> Datum (Integer -> Integer -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_equalUint64

identity :: Datum (x -> x)
identity :: forall x. Datum (x -> x)
identity = Term -> Datum (x -> x)
forall a. Term -> Datum a
Datum (Term -> Datum (x -> x)) -> Term -> Datum (x -> x)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_identity

gtInt32 :: Datum (Int -> Int -> Bool)
gtInt32 :: Datum (Int -> Int -> Bool)
gtInt32 = Term -> Datum (Int -> Int -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int -> Int -> Bool))
-> Term -> Datum (Int -> Int -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_gtInt32

gteInt32 :: Datum (Int -> Int -> Bool)
gteInt32 :: Datum (Int -> Int -> Bool)
gteInt32 = Term -> Datum (Int -> Int -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int -> Int -> Bool))
-> Term -> Datum (Int -> Int -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_gteInt32

ltInt32 :: Datum (Int -> Int -> Bool)
ltInt32 :: Datum (Int -> Int -> Bool)
ltInt32 = Term -> Datum (Int -> Int -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int -> Int -> Bool))
-> Term -> Datum (Int -> Int -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_ltInt32

lteInt32 :: Datum (Int -> Int -> Bool)
lteInt32 :: Datum (Int -> Int -> Bool)
lteInt32 = Term -> Datum (Int -> Int -> Bool)
forall a. Term -> Datum a
Datum (Term -> Datum (Int -> Int -> Bool))
-> Term -> Datum (Int -> Int -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_equality_lteInt32