funcons-tools-0.1.0.0: cbs/Funcons/Core/Computations/DataFlow/Binding/Bind.hs
-- GeNeRaTeD fOr: ../../CBS/Funcons/Computations/Data flow/Binding/bind.aterm
{-# LANGUAGE OverloadedStrings #-}
module Funcons.Core.Computations.DataFlow.Binding.Bind where
import Funcons.EDSL
entities = []
types = typeEnvFromList
[]
funcons = libFromList
[("bind",StrictFuncon stepBind)]
-- |
-- /bind(B,V)/ gives the environment binding the binder /B/ to the value /V/ .
bind_ fargs = FApp "bind" (FTuple fargs)
stepBind fargs =
evalRules [rewrite1] []
where rewrite1 = do
let env = emptyEnv
env <- vsMatch fargs [VPAnnotated (VPMetaVar "B") (TName "values"),VPAnnotated (VPMetaVar "V") (TName "values")] env
rewriteTermTo (TMap [TTuple [TVar "B",TVar "V"]]) env