tct-2.0.1: A Complexity Analyser for Term Rewrite Systems

Portabilityunportable
Stabilityunstable
MaintainerMartin Avanzini <martin.avanzini@uibk.ac.at>
Safe HaskellSafe-Infered

Tct.Method.Custom

Description

This module defines lifting from processors to strategies, which can be used in the TcT configuration object to extend the list of available processors, cf. Module Configuration.

Synopsis

Documentation

data Custom args res

This processor allows lifting of actions and instances back to processors.

Constructors

Custom 

Fields

as :: String
 
arguments :: args
 
code :: forall m. SolverM m => Domains args -> Problem -> m res
 

Instances

(Processor proc, ~ * (ProofOf proc) res) => WithProblem (InstanceOf proc) (InstanceOf (Custom Unit res)) 
(Arguments arg, ComplexityProof res, ParsableArguments arg) => ParsableProcessor (Custom arg res) 
(Arguments arg, ComplexityProof res) => Processor (Custom arg res) 

strategy :: String -> b -> (String, b)

data Strategy

Constructors

forall code decl . AsStrategy code decl => code ::: decl 

withArgs :: (Arguments arg, ComplexityProof res) => Custom arg res -> Domains arg -> InstanceOf (Custom arg res)

Instantiate a custom processor with arguments

class AsStrategy code decl | code -> decl where

Methods

toProcessor :: code -> decl -> SomeProcessor

Instances

Processor proc => AsStrategy (InstanceOf proc) ConstantDeclaration 
Transformer trans => AsStrategy (TheTransformer trans) ConstantDeclaration 
(ParsableArguments args, Transformer trans, ~ * ds (Domains args)) => AsStrategy (ds -> TheTransformer trans) (FunctionDeclaration args) 
(ParsableArguments args, Processor proc, ~ * ds (Domains args)) => AsStrategy (ds -> InstanceOf proc) (FunctionDeclaration args)