[README, code cosmetics, typos ...
martin.hofmann@uni-bamberg.de**20090518170137] hunk ./README 2
+I. Introduction
+---------------------------
+Igor2 is an inductive programming system, which generalises over given I/O examples of
+some target functions and constructs a solution which is complete and correct w.r.t
+the given examples. Given the type and some equations of e.g. the function 'last' as 
+Haskell code
hunk ./README 9
-tar igor2.<your.version>.tar.gz
-cd igor2.<your.version>
-runhaskell Setup configure --prefix=$HOME --user
-runhaskell Setup build
-runhaskell Setup install
-igor2 -b expl/batch.txt
+  last :: [a] -> a
+  last [a] = a
+  last [a,b] = b
+  last [a,b,c] = c
+ 
+following function definition is synthesised:
+
+  last [x0] = x0
+  last (x0:x1:x2) = last (x1:x2)
+ 
+
+II. Usage
+---------------------------
+To start Igor2 in interactive mode simply type 'igor2' after installation. You 
+control Igor2 by typing commands at its prompt 'Igor2 >'. A short command-line 
+reference is showed by typing ':help', or a more elaborate explanation can be viewed
+with ':verboseHelp'. To write multiple commands in one line, they have to be 
+separated by commas.
+
+  Igor2 > :load Examples.hs
+  Igor2 > :generalise reverse, test reverse on "reverse [1,2,3,4]"
+  
+Furthermore, the system can be run in batch mode with an explicitly given batch file
+
+  $ igor2 -b batch.txt
+  
+or by simply passing the commands to the system at the command line. Quotes have to be 
+escaped here!
+
+  $ igor2 :load Examples.hs, :generalise reverse, test reverse on \"reverse [1,2,3,4]\"
+  
+
+III. Problem Specification
+---------------------------
+A specification file for Igor2 is a valid Haskell98 module, which is required to type 
+check. Examples for both target functions and background knowledge are given 
+extensionally. The patterns on the need to cover the 'n' smallest inputs w.r.t. the 
+underlying data type.
+
+IV. Trouble Shooting
+---------------------------
+ * The Prelude type list ([]) is built in, other data types have to be defined 
+   explicitly, because imports are not supported, yet.  
+ * If you want to use natural numbers, define them as Peano numbers:
+   
+    data Peano = Z | S Peano 
hunk ./expl/batch.txt 13
-:y "That's all! Enjoy yourself playing with Igor2"
+:y "That's all! Enjoy yourself playing with Igor2."
+:y "Type :h if you need further help!"
hunk ./src/Data/CallDependencies.hs 93
-        (\d -> if (show d) == "" then text "<none>" else d).pretty.callings
+        (\d -> if (show d) == "" then text "<no_deps>" else d).pretty.callings
hunk ./src/Main.hs 37
-     "Chatty output on stderr"
+     "Chatty output on stdout"
hunk ./src/Main.hs 40
-     "Show version number amd exit"
+     "Show version number and exit"
hunk ./src/Main.hs 56
-      (_,_,errs) -> ioError (userError (concat errs ++ usage))
+      (_,_,errs) -> error (concat errs ++ usage)
hunk ./src/UI/UIStarter.hs 14
+import Data.Rules
hunk ./src/UI/UIStarter.hs 25
+import qualified Data.Set as S
hunk ./src/UI/UIStarter.hs 35
-version = "v0.5.8"
+version = "v0.5.8.1"
hunk ./src/UI/UIStarter.hs 66
+    
+examplesInScope :: EnvState -> [(Name,Rules)]
+examplesInScope = M.toList . mctx_bindings . context
hunk ./src/UI/UIStarter.hs 165
-\     /_____/                  " ++ version ++ "\n"   
+\     /_____/               " ++ version ++ "\n"   
hunk ./src/UI/UIStarter.hs 363
-    , (":test [<i>] <tgts> [with <bgks>] on \"command\"",
+    , (":test [<i>] <tgts> [with <bgks>] on \"cmd\"",
hunk ./src/UI/UIStarter.hs 393
-    [ ("maxHypos",          "maximal number of hypotheses",
-            maxHypos,  \ v s -> s { maxHypos = v})
-    , ("colWidth",          "set the column width of your display",
+    [ ("colWidth",          "set the column width of your display",
hunk ./src/UI/UIStarter.hs 411
-    if verbose s 
-      then pretty (context s) <$> pretty (history s) <$> linebreak
+    textLine w "Examples in Scope" 0 <$> 
+        indent 2 (fill 15 (text "Name") <> 
+                    (text (if beVerbose then "" else "#"))
+                    <> text "Examples") <$>
+        indent 2 (text $ replicate 25 '-' ) <$>
+        indent 2 (vcat $ map showExample  (examplesInScope s))  <$>
+    if beVerbose
+      then pretty (context s) <$> text "History :" <$>  pretty (history s) <$> linebreak
hunk ./src/UI/UIStarter.hs 422
+    beVerbose = verbose s
hunk ./src/UI/UIStarter.hs 430
+    showExample (n,r) = 
+        fill 25 ((fill 15 (pretty n) <+> text "|->") <+> 
+                  if beVerbose then pretty r else int $ S.size r )
+                      
hunk ./src/UI/UIStarter.hs 447
-         , identLetter    = alphaNum <|> oneOf "_'./" 
---         , identStart     = alphaNum <|> oneOf "_'./" 
+         , identLetter    = alphaNum <|> oneOf "_'.~/" 
+         , identStart     = alphaNum <|> oneOf "_'.~/" 