-- GeNeRaTeD fOr: ../../CBS/Funcons/Abstractions/Functions/apply.aterm {-# LANGUAGE OverloadedStrings #-} module Funcons.Core.Abstractions.Functions.Apply where import Funcons.EDSL entities = [] types = typeEnvFromList [] funcons = libFromList [("apply",StrictFuncon stepApply)] -- | -- /apply(F,V)/ applies the function /F/ to the value /V/ . apply_ fargs = FApp "apply" (FTuple fargs) stepApply fargs = evalRules [rewrite1] [] where rewrite1 = do let env = emptyEnv env <- vsMatch fargs [VPAnnotated (VPMetaVar "F") (TName "values"),VPAnnotated (VPMetaVar "V") (TName "values")] env rewriteTermTo (TApp "give" (TTuple [TVar "V",TApp "force" (TTuple [TVar "F"])])) env