packages feed

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