funcons-tools-0.1.0.0: cbs/Funcons/Core/Computations/DataFlow/Generating/FreshAtom.hs
-- 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