module SMR.Prim.Op
( primNames
, primOps
, primOpsBool
, primOpsList
, primOpsMatch
, primOpsNat
, primOpsNom
, primOpsSym)
where
import SMR.Prim.Op.Base
import SMR.Prim.Op.Bool
import SMR.Prim.Op.Nat
import SMR.Prim.Op.Sym
import SMR.Prim.Op.Nom
import SMR.Prim.Op.List
import SMR.Prim.Op.Match
import Data.Text (Text)
import Data.Set (Set)
import qualified Data.Set as Set
primNames :: Set Text
primNames
= Set.fromList [ n | PrimOp n <- map primEvalName $ primOps ]
primOps :: [PrimEval Text Prim w]
primOps
= concat
[ primOpsBool
, primOpsNat
, primOpsList
, primOpsSym
, primOpsNom
, primOpsMatch ]