compdata-0.11: Compositional Data Types

Copyright(c) 2010-2011 Patrick Bahr
LicenseBSD3
MaintainerPatrick Bahr <paba@diku.dk>
Stabilityexperimental
Portabilitynon-portable (GHC Extensions)
Safe HaskellNone
LanguageHaskell98

Data.Comp.Decompose

Description

This module implements the decomposition of terms into function symbols and arguments resp. variables.

Synopsis

Documentation

data Decomp f v a Source #

This type represents decompositions of functorial values.

Constructors

Var v 
Fun (Const f) [a] 

type DecompTerm f v = Decomp f v (Term f) Source #

This type represents decompositions of terms.

class (HasVars f v, Functor f, Foldable f) => Decompose f v where Source #

This class specifies the decomposability of a functorial value.

Methods

decomp :: f a -> Decomp f v a Source #

This function decomposes a functorial value.

Instances

(HasVars f v, Functor f, Foldable f) => Decompose f v Source # 

Methods

decomp :: f a -> Decomp f v a Source #

structure :: Functor f => f a -> Const f Source #

This function computes the structure of a functorial value.

arguments :: Foldable f => f a -> [a] Source #

This function computes the arguments of a functorial value.

decompose :: Decompose f v => Term f -> DecompTerm f v Source #

This function decomposes a term.