rest-rewrite-0.4.1: Rewriting library with online termination checking
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.REST.RuntimeTerm

Synopsis

Documentation

data RuntimeTerm Source #

Ground terms

Constructors

App Op [RuntimeTerm] 

Instances

Instances details
Generic RuntimeTerm Source # 
Instance details

Defined in Language.REST.RuntimeTerm

Associated Types

type Rep RuntimeTerm :: Type -> Type #

Show RuntimeTerm Source # 
Instance details

Defined in Language.REST.RuntimeTerm

Eq RuntimeTerm Source # 
Instance details

Defined in Language.REST.RuntimeTerm

Ord RuntimeTerm Source # 
Instance details

Defined in Language.REST.RuntimeTerm

Hashable RuntimeTerm Source # 
Instance details

Defined in Language.REST.RuntimeTerm

ToMetaTerm RuntimeTerm Source # 
Instance details

Defined in Language.REST.MetaTerm

ToRuntimeTerm RuntimeTerm Source # 
Instance details

Defined in Language.REST.RuntimeTerm

Monad m => RewriteRule m Rewrite RuntimeTerm Source # 
Instance details

Defined in Language.REST.Internal.Rewrite

type Rep RuntimeTerm Source # 
Instance details

Defined in Language.REST.RuntimeTerm

type Rep RuntimeTerm = D1 ('MetaData "RuntimeTerm" "Language.REST.RuntimeTerm" "rest-rewrite-0.4.1-nnmMncO1JP25mfUNet9Kl" 'False) (C1 ('MetaCons "App" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Op) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RuntimeTerm])))

class ToRuntimeTerm a where Source #

Transformable to a ground term

Instances

Instances details
ToRuntimeTerm Op Source # 
Instance details

Defined in Language.REST.RuntimeTerm

ToRuntimeTerm RuntimeTerm Source # 
Instance details

Defined in Language.REST.RuntimeTerm

subTerms :: RuntimeTerm -> [(RuntimeTerm, RuntimeTerm -> RuntimeTerm)] Source #

subTerms t returns a list of pairs (s, f), where s is a subterm of t, and f is a function that takes a replacement s' for s, and generates a new term where s is replaced with s' in t. Also includes the pair (t, id), representing the term itself. TODO: Consider more efficient implementations

contains :: RuntimeTerm -> RuntimeTerm -> Bool Source #

t contains u iff t == u or u is a subterm of t