module Hydra.Dsl.Lib.Logic where

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


and :: Datum (Bool -> Bool -> Bool)
and :: Datum (Bool -> Bool -> Bool)
and = 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
_logic_and

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

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

or :: Datum (Bool -> Bool -> Bool)
or :: Datum (Bool -> Bool -> Bool)
or = 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
_logic_or