-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A Prolog interpreter written in Haskell. -- -- A Prolog interpreter written in Haskell. Implements a subset of the -- Prolog language. @package prolog @version 0.3 module Language.Prolog.Quote t :: QuasiQuoter ts :: QuasiQuoter c :: QuasiQuoter pl :: QuasiQuoter module Language.Prolog data Term Struct :: Atom -> [Term] -> Term Var :: VariableName -> Term Wildcard :: Term Cut :: Int -> Term var :: String -> Term cut :: Term data Clause Clause :: Term -> [Goal] -> Clause [lhs] :: Clause -> Term [rhs_] :: Clause -> [Goal] ClauseFn :: Term -> ([Term] -> [Goal]) -> Clause [lhs] :: Clause -> Term [fn] :: Clause -> [Term] -> [Goal] rhs :: Clause -> [Term] -> [Goal] data VariableName VariableName :: Int -> String -> VariableName type Atom = String type Unifier = [Substitution] type Substitution = (VariableName, Term) type Program = [Clause] type Goal = Term unify :: MonadPlus m => Term -> Term -> m Unifier unify_with_occurs_check :: MonadPlus m => Term -> Term -> m Unifier apply :: Unifier -> Term -> Term class Monad m => MonadTrace m trace :: MonadTrace m => String -> m () withTrace :: Trace m a -> m a class Monad m => MonadGraphGen m createConnections :: MonadGraphGen m => Branch -> [Branch] -> [Branch] -> m () markSolution :: MonadGraphGen m => Unifier -> m () markCutBranches :: MonadGraphGen m => Stack -> m () runNoGraphT :: NoGraphT m a -> m a resolve :: (Functor m, MonadTrace m, Error e, MonadError e m) => Program -> [Goal] -> m [Unifier] resolve_ :: (Functor m, MonadTrace m, Error e, MonadError e m, MonadGraphGen m) => Program -> [Goal] -> m [Unifier] (+++) :: [Substitution] -> [Substitution] -> Unifier consult :: FilePath -> IO (Either ParseError Program) consultString :: String -> Either ParseError Program parseQuery :: String -> Either ParseError [Term] program :: ParsecT String () Identity [Clause] whitespace :: ParsecT String () Identity () comment :: ParsecT String () Identity () clause :: ParsecT String () Identity Clause terms :: ParsecT String () Identity [Term] term :: ParsecT String () Identity Term bottom :: ParsecT String () Identity Term vname :: () => ParsecT String u Identity VariableName module Language.Prolog.IsString