module Language.Halide.Prelude ( (==) , (/=) , (+) , (-) ) where import Data.Kind (Type) import Language.Halide.Expr import Language.Halide.Type import Prelude (Bool, undefined) type family Promoted a b :: Type infix 4 ==, /= (==) :: Expr a -> Expr b -> Expr Bool == :: forall {k} {k} (a :: k) (b :: k). Expr a -> Expr b -> Expr Bool (==) = forall a. HasCallStack => a undefined (/=) :: Expr a -> Expr b -> Expr Bool /= :: forall {k} {k} (a :: k) (b :: k). Expr a -> Expr b -> Expr Bool (/=) = forall a. HasCallStack => a undefined infix 6 +, - (+) :: Expr a -> Expr b -> Expr (Promoted a b) + :: forall a b. Expr a -> Expr b -> Expr (Promoted a b) (+) = forall a. HasCallStack => a undefined (-) :: Expr a -> Expr b -> Expr (Promoted a b) (-) = forall a. HasCallStack => a undefined infix 7 *, / (*) :: Expr a -> Expr b -> Expr (Promoted a b) * :: forall a b. Expr a -> Expr b -> Expr (Promoted a b) (*) = forall a. HasCallStack => a undefined (/) :: Expr a -> Expr b -> Expr (Promoted a b) / :: forall a b. Expr a -> Expr b -> Expr (Promoted a b) (/) = forall a. HasCallStack => a undefined mkExpr :: IsHalideType a => a -> Expr a mkExpr :: forall a. IsHalideType a => a -> Expr a mkExpr = forall a. HasCallStack => a undefined