module Prolog
   ( Term(..), var, cut
   , Clause(..), rhs
   , VariableName(..), Atom, Unifier, Substitution, Program, Goal
   , unify, unify_with_occurs_check
   , apply
   , MonadTrace(..)
   , withTrace
   , MonadGraphGen(..)
   , runNoGraphT
   , resolve, resolve_
   , (+++)
   , consult, consultString, parseQuery
   , program, whitespace, comment, clause, terms, term, bottom, vname
   )
where

import Syntax
import Parser
import Unifier
import Interpreter