module Hydra.Dsl.Lib.Logic where

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


and :: TTerm (Bool -> Bool -> Bool)
and :: TTerm (Bool -> Bool -> Bool)
and = Term -> TTerm (Bool -> Bool -> Bool)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (Bool -> Bool -> Bool))
-> Term -> TTerm (Bool -> Bool -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_logic_and

ifElse :: TTerm (a -> a -> Bool -> a)
ifElse :: forall a. TTerm (a -> a -> Bool -> a)
ifElse = Term -> TTerm (a -> a -> Bool -> a)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (a -> a -> Bool -> a))
-> Term -> TTerm (a -> a -> Bool -> a)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_logic_ifElse

not :: TTerm (Bool -> Bool)
not :: TTerm (Bool -> Bool)
not = Term -> TTerm (Bool -> Bool)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (Bool -> Bool)) -> Term -> TTerm (Bool -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_logic_not

or :: TTerm (Bool -> Bool -> Bool)
or :: TTerm (Bool -> Bool -> Bool)
or = Term -> TTerm (Bool -> Bool -> Bool)
forall a. Term -> TTerm a
TTerm (Term -> TTerm (Bool -> Bool -> Bool))
-> Term -> TTerm (Bool -> Bool -> Bool)
forall a b. (a -> b) -> a -> b
$ Name -> Term
Terms.primitive Name
_logic_or