packages feed

funcons-tools-0.1.0.0: cbs/Funcons/Core/Values/PrimitiveValues/Numbers/Integers.hs

-- GeNeRaTeD fOr: ../../CBS/Funcons/Values/Primitive values/Numbers/integers.aterm
{-# LANGUAGE OverloadedStrings #-}

module Funcons.Core.Values.PrimitiveValues.Numbers.Integers where

import Funcons.EDSL

entities = []

types = typeEnvFromList
    []

funcons = libFromList
    [("integer-negate",StrictFuncon stepInteger_negate)]

integer_negate_ fargs = FApp "integer-negate" (FTuple fargs)
stepInteger_negate fargs =
    evalRules [rewrite1] []
    where rewrite1 = do
            let env = emptyEnv
            env <- vsMatch fargs [VPAnnotated (VPMetaVar "I") (TName "values")] env
            rewriteTermTo (TApp "integer-subtract" (TTuple [TFuncon (FValue (Nat 0)),TVar "I"])) env