-- GeNeRaTeD fOr: ../../CBS/Funcons/Values/types.aterm {-# LANGUAGE OverloadedStrings #-} module Funcons.Core.Values.Types where import Funcons.EDSL entities = [] types = typeEnvFromList [] funcons = libFromList [("is-in-type",StrictFuncon stepIs_in_type)] -- | -- /is-in-type(V,T)/ tests membership of a value in a type. is_in_type_ fargs = FApp "is-in-type" (FTuple fargs) stepIs_in_type fargs = evalRules [rewrite1,rewrite2] [] where rewrite1 = do let env = emptyEnv env <- vsMatch fargs [VPMetaVar "V",VPMetaVar "T"] env env <- sideCondition (SCIsInSort (TVar "V") (TVar "T")) env rewriteTo (FName "true") rewrite2 = do let env = emptyEnv env <- vsMatch fargs [VPMetaVar "V",VPMetaVar "T"] env env <- sideCondition (SCNotInSort (TVar "V") (TVar "T")) env rewriteTo (FName "false")