tpdb-2.7.3: Data Type for Rewriting Systems
Safe HaskellSafe-Inferred
LanguageHaskell2010

TPDB.Data.Term.Cached

Documentation

type TermC v s = (Hashable v, Hashable s, Ord v, Ord s) Source #

data Term v s Source #

Instances

Instances details
Generic (Term v s) Source # 
Instance details

Defined in TPDB.Data.Term.Cached

Associated Types

type Rep (Term v s) :: Type -> Type #

Methods

from :: Term v s -> Rep (Term v s) x #

to :: Rep (Term v s) x -> Term v s #

(Eq v, Eq s) => Eq (Term v s) Source # 
Instance details

Defined in TPDB.Data.Term.Cached

Methods

(==) :: Term v s -> Term v s -> Bool #

(/=) :: Term v s -> Term v s -> Bool #

(Ord v, Ord s) => Ord (Term v s) Source # 
Instance details

Defined in TPDB.Data.Term.Cached

Methods

compare :: Term v s -> Term v s -> Ordering #

(<) :: Term v s -> Term v s -> Bool #

(<=) :: Term v s -> Term v s -> Bool #

(>) :: Term v s -> Term v s -> Bool #

(>=) :: Term v s -> Term v s -> Bool #

max :: Term v s -> Term v s -> Term v s #

min :: Term v s -> Term v s -> Term v s #

TermC v s => Hashable (Term v s) Source # 
Instance details

Defined in TPDB.Data.Term.Cached

Methods

hashWithSalt :: Int -> Term v s -> Int #

hash :: Term v s -> Int #

type Rep (Term v s) Source # 
Instance details

Defined in TPDB.Data.Term.Cached

type Rep (Term v s) = D1 ('MetaData "Term" "TPDB.Data.Term.Cached" "tpdb-2.7.3-CgDLIzMWhg29yaLLziq7QN" 'False) (C1 ('MetaCons "Var_Imp" 'PrefixI 'True) (S1 ('MetaSel ('Just "_hash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 v)) :+: C1 ('MetaCons "Node_Imp" 'PrefixI 'True) (S1 ('MetaSel ('Just "_hash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: (S1 ('MetaSel ('Just "fun") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 s) :*: S1 ('MetaSel ('Just "args") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Term v s]))))

pattern Var :: TermC v s => v -> Term v s Source #

pattern Node :: TermC v s => s -> [Term v s] -> Term v s Source #

tfold :: TermC v c => (v -> r) -> (c -> [r] -> r) -> Term v c -> r Source #

size :: TermC v c => Term v c -> Int Source #

depth :: TermC v c => Term v c -> Int Source #

vars :: TermC v c => Term v c -> Set v Source #

syms :: TermC v c => Term v c -> Set c Source #