-- GeNeRaTeD fOr: ../../CBS/Funcons/Computations/Control flow/Abnormal/Continuations/control.aterm {-# LANGUAGE OverloadedStrings #-} module Funcons.Core.Computations.ControlFlow.Abnormal.Continuations.Control where import Funcons.EDSL entities = [] types = typeEnvFromList [] funcons = libFromList [("control",StrictFuncon stepControl)] -- | -- /control(F)/ emits a /control-signal/ that, when handled by an enclosing -- /prompt/ , will cause /F/ to the current continuation of /control(F)/ , -- instead of continuing the current computation. control_ fargs = FApp "control" (FTuple fargs) stepControl fargs = evalRules [] [step1] where step1 = do let env = emptyEnv env <- lifted_vsMatch fargs [VPAnnotated (VPMetaVar "F") (TName "values")] env raiseTerm "control-signal" (TTuple [TVar "F"]) env stepTo (FName "hole")