module DDC.Core.Flow.Prim.KiConFlow ( readKiConFlow , kRate , kProc ) where import DDC.Core.Flow.Prim.Base import DDC.Core.Exp.Simple.Exp import DDC.Type.Compounds import DDC.Base.Pretty import Control.DeepSeq instance NFData KiConFlow where rnf !_ = () instance Pretty KiConFlow where ppr con = case con of KiConFlowRate -> text "Rate" KiConFlowProc -> text "Proc" -- | Read a kind constructor name. readKiConFlow :: String -> Maybe KiConFlow readKiConFlow str = case str of "Rate" -> Just $ KiConFlowRate "Proc" -> Just $ KiConFlowProc _ -> Nothing -- Compounds ------------------------------------------------------------------ kRate = TCon (TyConBound (UPrim (NameKiConFlow KiConFlowRate) sProp) sProp) kProc = TCon (TyConBound (UPrim (NameKiConFlow KiConFlowProc) sProp) sProp)