- data Term' a
- = Unit
- | Bool Bool
- | Num Integer
- | String String
- | PrimApp String [Term a]
- | Var Var
- | Abs Var (Term a)
- | App (Term a) (Term a)
- | Table Tabname [(Field, Type)]
- | If (Term a) (Term a) (Term a)
- | Singleton (Term a)
- | Nil
- | Union (Term a) (Term a)
- | Record [(String, Term a)]
- | Project (Term a) String
- | Comp Var (Term a) (Term a)
- type Term a = (Term' a, a)
- type Var = String
- type PlainTerm = Term ()
- type TypedTerm = Term Type
- fvs :: (Term' t, t) -> [Var]
- substTerm :: Var -> Term t -> Term t -> Term t
- strip :: Term a -> Term ()
- retagulate :: (Term a -> a) -> Term a -> Term a
- rename :: Var -> Var -> (Term' a, a) -> (Term' a, a)
- variables :: [[Char]]
- (!) :: t -> (t, ())
- unit_ :: (Term' a, ())
- class Const a where
- primApp_ :: String -> [Term a] -> (Term' a, ())
- var_ :: Var -> (Term' a, ())
- abs_ :: Var -> Term a -> (Term' a, ())
- app_ :: Term a -> Term a -> (Term' a, ())
- table_ :: Tabname -> [(Field, Type)] -> (Term' a, ())
- ifthenelse_ :: Term a -> Term a -> Term a -> (Term' a, ())
- singleton_ :: Term a -> (Term' a, ())
- nil_ :: (Term' a, ())
- union_ :: Term a -> Term a -> (Term' a, ())
- record_ :: [(String, Term a)] -> (Term' a, ())
- project_ :: Term a -> String -> (Term' a, ())
- foreach_ :: Term a -> Var -> Term a -> (Term' a, ())
Documentation
Terms in the nested relational calculus (represented concretely | with named variables)
type Term a = (Term' a, a)Source
Terms whose every subexpression is annotated with a value of some | particular type.
substTerm :: Var -> Term t -> Term t -> Term tSource
substTerm x v m: substite v for x in term m (Actually incorrect because it does not make substitutions in the q.)
retagulate :: (Term a -> a) -> Term a -> Term aSource
singleton_ :: Term a -> (Term' a, ())Source