-- GeNeRaTeD fOr: ../../CBS/Funcons/Computations/Data flow/Generating/fresh-atom.aterm {-# LANGUAGE OverloadedStrings #-} module Funcons.Core.Computations.DataFlow.Generating.FreshAtom where import Funcons.EDSL entities = [] types = typeEnvFromList [] funcons = libFromList [("fresh-atom",NullaryFuncon stepFresh_atom)] -- | -- /fresh-atom/ computes a fresh atom, distinct from all other /atoms/ previously generated by other occurrences of /fresh-atom/ . fresh_atom_ = FName "fresh-atom" stepFresh_atom = evalRules [] [step1] where step1 = do let env = emptyEnv env <- getMutPatt "atom-generator" (VPMetaVar "K") env putMutTerm "atom-generator" (TTuple [TApp "next-atom" (TTuple [TVar "K"])]) env stepTermTo (TVar "K") env