Portability | unportable |
---|---|
Stability | unstable |
Maintainer | Martin Avanzini <martin.avanzini@uibk.ac.at> |
Safe Haskell | Safe-Infered |
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
.
- data Custom args res = Custom {}
- strategy :: String -> b -> (String, b)
- data Strategy = forall code decl . AsStrategy code decl => code ::: decl
- withArgs :: (Arguments arg, ComplexityProof res) => Custom arg res -> Domains arg -> InstanceOf (Custom arg res)
- strategyToProcessor :: Strategy -> SomeProcessor
- class AsStrategy code decl | code -> decl where
- toProcessor :: code -> decl -> SomeProcessor
Documentation
data Custom args res
This processor allows lifting of actions and instances back to processors.
(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) |
data Strategy
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
toProcessor :: code -> decl -> SomeProcessor
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) |