-- GeNeRaTeD fOr: ../../CBS/Funcons/Computations/Control flow/Abnormal/Continuations/reset.aterm {-# LANGUAGE OverloadedStrings #-} module Funcons.Core.Computations.ControlFlow.Abnormal.Continuations.Reset where import Funcons.EDSL entities = [] types = typeEnvFromList [] funcons = libFromList [("reset",NonStrictFuncon stepReset)] -- | -- /reset/ is a delimiter for the /shift/ operator. -- A consequence of our choice of definition of /shift/ is that the semantics of -- /reset/ conincide exactly with those of /prompt/ , and thus the two can be -- used interchangeably. reset_ fargs = FApp "reset" (FTuple fargs) stepReset fargs = evalRules [rewrite1] [] where rewrite1 = do let env = emptyEnv env <- fsMatch fargs [PMetaVar "E"] env rewriteTermTo (TApp "prompt" (TTuple [TVar "E"])) env