{-# LANGUAGE TemplateHaskellQuotes #-}
module Clash.Normalize.Primitives
( removedArg
, undefined
, undefinedX
) where
import Prelude hiding (undefined)
import qualified Data.Text.Extra as Text
import Clash.Core.Term (IsMultiPrim(..), PrimInfo(..), PrimUnfolding(..), WorkInfo(..))
import Clash.Core.Util (undefinedTy)
removedArg :: PrimInfo
removedArg :: PrimInfo
removedArg = PrimInfo :: Text
-> Type -> WorkInfo -> IsMultiPrim -> PrimUnfolding -> PrimInfo
PrimInfo
{ primName :: Text
primName = Name -> Text
forall a. Show a => a -> Text
Text.showt 'removedArg
, primType :: Type
primType = Type
undefinedTy
, primWorkInfo :: WorkInfo
primWorkInfo = WorkInfo
WorkNever
, primMultiResult :: IsMultiPrim
primMultiResult = IsMultiPrim
SingleResult
, primUnfolding :: PrimUnfolding
primUnfolding = PrimUnfolding
NoUnfolding
}
undefined :: PrimInfo
undefined :: PrimInfo
undefined = PrimInfo :: Text
-> Type -> WorkInfo -> IsMultiPrim -> PrimUnfolding -> PrimInfo
PrimInfo
{ primName :: Text
primName = Name -> Text
forall a. Show a => a -> Text
Text.showt 'undefined
, primType :: Type
primType = Type
undefinedTy
, primWorkInfo :: WorkInfo
primWorkInfo = WorkInfo
WorkNever
, primMultiResult :: IsMultiPrim
primMultiResult = IsMultiPrim
SingleResult
, primUnfolding :: PrimUnfolding
primUnfolding = PrimUnfolding
NoUnfolding
}
undefinedX :: PrimInfo
undefinedX :: PrimInfo
undefinedX = PrimInfo :: Text
-> Type -> WorkInfo -> IsMultiPrim -> PrimUnfolding -> PrimInfo
PrimInfo
{ primName :: Text
primName = Name -> Text
forall a. Show a => a -> Text
Text.showt 'undefinedX
, primType :: Type
primType = Type
undefinedTy
, primWorkInfo :: WorkInfo
primWorkInfo = WorkInfo
WorkNever
, primMultiResult :: IsMultiPrim
primMultiResult = IsMultiPrim
SingleResult
, primUnfolding :: PrimUnfolding
primUnfolding = PrimUnfolding
NoUnfolding
}