species-0.3.2.4: Computational combinatorial species

Copyright(c) Brent Yorgey 2010
LicenseBSD-style (see LICENSE)
Maintainerbyorgey@cis.upenn.edu
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Math.Combinatorics.Species.AST.Instances

Description

Type class instances for TSpeciesAST, ESpeciesAST, and SpeciesAST, in a separate module to avoid a dependency cycle between Math.Combinatorics.Species.AST and Math.Combinatorics.Species.Class.

This module also contains functions for reifying species expressions to ASTs and reflecting ASTs back into other species instances, which are in this module since they depend on the AST type class instances.

Synopsis

Documentation

reify :: SpeciesAST -> SpeciesAST Source

Reify a species expression into an AST. (Actually, this is just the identity function with a usefully restricted type.) For example:

> reify octopus
C . TL+
> reify (ksubset 3)
E3 * TE

reifyE :: ESpeciesAST -> ESpeciesAST Source

The same as reify, but produce a typed, size-annotated AST.

reflect :: Species s => SpeciesAST -> s Source

Reflect an AST back into any instance of the Species class.

reflectT :: Species s => TSpeciesAST f -> s Source

Reflect a typed AST back into any instance of the Species class.

reflectE :: Species s => ESpeciesAST -> s Source

Reflect an existentially wrapped typed AST back into any instance of the Species class.