diff --git a/NanoProlog.cabal b/NanoProlog.cabal
--- a/NanoProlog.cabal
+++ b/NanoProlog.cabal
@@ -1,5 +1,5 @@
 Name:                NanoProlog
-Version:             0.2.3.2
+Version:             0.2.3.3
 Synopsis:            Very small  interpreter for a Prolog-like language
 Description:         This package was developed to demonstrate the ideas behind
                      the Prolog language. It contains a very small interpreter
diff --git a/src/Language/Prolog/NanoProlog/Interpreter.hs b/src/Language/Prolog/NanoProlog/Interpreter.hs
--- a/src/Language/Prolog/NanoProlog/Interpreter.hs
+++ b/src/Language/Prolog/NanoProlog/Interpreter.hs
@@ -30,7 +30,7 @@
 loop rules = do  putStrLn "goal? "
                  s <- getLine
                  unless (s == "quit") $
-                   do  let (goal, errors) = startParse pFun s
+                   do  let (goal, errors) = startParse pTerm s
                        if null errors
                          then  printSolutions (solve rules emptyEnv [("0",goal)])
                          else  do  putStrLn "Some goals were expected:"
diff --git a/src/Language/Prolog/NanoProlog/NanoProlog.hs b/src/Language/Prolog/NanoProlog/NanoProlog.hs
--- a/src/Language/Prolog/NanoProlog/NanoProlog.hs
+++ b/src/Language/Prolog/NanoProlog/NanoProlog.hs
@@ -13,12 +13,15 @@
   ,  Subst(..)
   ,  Taggable(..)
   ,  Term(..)
+  ,  Proofs
+  ,  TaggedTerm
   ,  emptyEnv
   ,  enumerateDepthFirst
   ,  matches
   ,  pFun
   ,  pRule
   ,  pTerm
+  ,  pCons
   ,  pTerms
   ,  solve
   ,  startParse
@@ -163,8 +166,10 @@
 pSepDot :: Parser String -> Parser [String]
 pSepDot p = (:) <$> p <*> pList ((:) <$> pDot <*> p)
 
-pTerm, pFactor, pVar, pFun :: Parser  Term
-pTerm = pChainr ((\ f a -> Fun "->" [f, a]) <$ pToken "->") pFactor
+pTerm, pFactor, pCons, pVar, pFun :: Parser  Term
+pTerm = pChainr ((\ f a -> Fun "->" [f, a]) <$ pToken "->") pCons 
+pCons =     (\a b -> Fun "cons" [a, b]) <$> pFactor <* pToken ":" <*> pCons 
+        <|> pFactor
 pFactor  =     pVar
           <|>  pFun
           <|>  pParens pTerm
