ideas-1.8: Feedback services for intelligent tutoring systems

Maintainerbastiaan.heeren@ou.nl
Stabilityprovisional
Portabilityportable (depends on ghc)
Safe HaskellNone
LanguageHaskell98

Ideas.Common.Rewriting.Term

Contents

Description

A simple data type for term rewriting

Synopsis

Symbols

data Symbol Source #

Instances
Eq Symbol Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

(==) :: Symbol -> Symbol -> Bool #

(/=) :: Symbol -> Symbol -> Bool #

Ord Symbol Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Read Symbol Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Show Symbol Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

HasId Symbol Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

getId :: Symbol -> Id Source #

changeId :: (Id -> Id) -> Symbol -> Symbol Source #

Terms

data Term Source #

Instances
Eq Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

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

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

Ord Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

compare :: Term -> Term -> Ordering #

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

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

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

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

max :: Term -> Term -> Term #

min :: Term -> Term -> Term #

Read Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Show Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

showsPrec :: Int -> Term -> ShowS #

show :: Term -> String #

showList :: [Term] -> ShowS #

Arbitrary Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

arbitrary :: Gen Term

shrink :: Term -> [Term]

Uniplate Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

uniplate :: Term -> (Str Term, Str Term -> Term) #

descend :: (Term -> Term) -> Term -> Term #

descendM :: Monad m => (Term -> m Term) -> Term -> m Term #

WithMetaVars Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

metaVar :: Int -> Term Source #

getMetaVar :: Monad m => Term -> m Int Source #

WithVars Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

WithFunctions Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

IsTerm Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Reference Term Source # 
Instance details

Defined in Ideas.Common.Environment

Methods

makeRef :: IsId n => n -> Ref Term Source #

makeRefList :: IsId n => n -> Ref [Term] Source #

Different Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.RewriteRule

Methods

different :: (Term, Term) Source #

class IsTerm a where Source #

Minimal complete definition

toTerm, fromTerm

Methods

toTerm :: a -> Term Source #

toTermList :: [a] -> Term Source #

fromTerm :: MonadPlus m => Term -> m a Source #

fromTermList :: MonadPlus m => Term -> m [a] Source #

Instances
IsTerm Bool Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

IsTerm Char Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

IsTerm Double Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

IsTerm Int Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

IsTerm Integer Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

IsTerm ShowString Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

IsTerm Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

IsTerm a => IsTerm [a] Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

toTerm :: [a] -> Term Source #

toTermList :: [[a]] -> Term Source #

fromTerm :: MonadPlus m => Term -> m [a] Source #

fromTermList :: MonadPlus m => Term -> m [[a]] Source #

IsTerm a => IsTerm (Maybe a) Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

(IsTerm a, Ord a) => IsTerm (Set a) Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

toTerm :: Set a -> Term Source #

toTermList :: [Set a] -> Term Source #

fromTerm :: MonadPlus m => Term -> m (Set a) Source #

fromTermList :: MonadPlus m => Term -> m [Set a] Source #

(IsTerm a, IsTerm b) => IsTerm (Either a b) Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

toTerm :: Either a b -> Term Source #

toTermList :: [Either a b] -> Term Source #

fromTerm :: MonadPlus m => Term -> m (Either a b) Source #

fromTermList :: MonadPlus m => Term -> m [Either a b] Source #

(IsTerm a, IsTerm b) => IsTerm (a, b) Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

toTerm :: (a, b) -> Term Source #

toTermList :: [(a, b)] -> Term Source #

fromTerm :: MonadPlus m => Term -> m (a, b) Source #

fromTermList :: MonadPlus m => Term -> m [(a, b)] Source #

(IsTerm a, IsTerm b, Ord a) => IsTerm (Map a b) Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

toTerm :: Map a b -> Term Source #

toTermList :: [Map a b] -> Term Source #

fromTerm :: MonadPlus m => Term -> m (Map a b) Source #

fromTermList :: MonadPlus m => Term -> m [Map a b] Source #

(IsTerm s, IsTerm a) => IsTerm (Derivation s a) Source # 
Instance details

Defined in Ideas.Common.Derivation

(IsTerm a, IsTerm b, IsTerm c) => IsTerm (a, b, c) Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

toTerm :: (a, b, c) -> Term Source #

toTermList :: [(a, b, c)] -> Term Source #

fromTerm :: MonadPlus m => Term -> m (a, b, c) Source #

fromTermList :: MonadPlus m => Term -> m [(a, b, c)] Source #

fromTermM :: (Monad m, IsTerm a) => Term -> m a Source #

fromTermWith :: (Monad m, IsTerm a) => (Symbol -> [a] -> m a) -> Term -> m a Source #

Functions and symbols

class WithFunctions a where Source #

Minimal complete definition

function, getFunction

Methods

symbol :: Symbol -> a Source #

function :: Symbol -> [a] -> a Source #

getSymbol :: Monad m => a -> m Symbol Source #

getFunction :: Monad m => a -> m (Symbol, [a]) Source #

Instances
WithFunctions Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

isFunction :: (WithFunctions a, Monad m) => Symbol -> a -> m [a] Source #

unary :: WithFunctions a => Symbol -> a -> a Source #

binary :: WithFunctions a => Symbol -> a -> a -> a Source #

ternary :: WithFunctions a => Symbol -> a -> a -> a -> a Source #

isUnary :: (WithFunctions a, Monad m) => Symbol -> a -> m a Source #

isBinary :: (WithFunctions a, Monad m) => Symbol -> a -> m (a, a) Source #

Variables

class WithVars a where Source #

Minimal complete definition

variable, getVariable

Methods

variable :: String -> a Source #

getVariable :: Monad m => a -> m String Source #

Instances
WithVars Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

vars :: (Uniplate a, WithVars a) => a -> [String] Source #

hasVar :: (Uniplate a, WithVars a) => String -> a -> Bool Source #

Meta variables

class WithMetaVars a where Source #

Minimal complete definition

metaVar, getMetaVar

Methods

metaVar :: Int -> a Source #

getMetaVar :: Monad m => a -> m Int Source #

Instances
WithMetaVars Term Source # 
Instance details

Defined in Ideas.Common.Rewriting.Term

Methods

metaVar :: Int -> Term Source #

getMetaVar :: Monad m => Term -> m Int Source #