[Added tests
tobias@goedderz.info**20140716121419
 Ignore-this: 2921a28371ef1c3b5dc474a830f9c9a3
] addfile ./create_tests.bash
hunk ./create_tests.bash 1
+#!/bin/bash
+
+tests_dir=tests
+
+for t in add addN allodd andL anD appenD concaT droP eveN evenpos evens eq fib \
+    fibAdd flatten flatapp heaD incr insert oddpos lasT lastM lasts lengtH \
+    lengths member mem multfst multlst negateAll odD mirror pepper\' pepper \
+    powset powapp reversE shiftl shiftr snoc sort sortIns suM switch taiL takE \
+    weave zeros rocket hanoi balloons playTennis enjoySport lenses ack
+do
+    bat="${tests_dir}/${t}.bat"
+    out="${tests_dir}/${t}.out"
+    cat <<TESTFILE > "$bat"
+:l expl/Examples.hs
+:g ${t}
+:q
+TESTFILE
+    echo "[$(date +"%F %X")] Wrote ${bat}."
+    echo "[$(date +"%F %X")] Executing:" timeout 60 ./igor2 -b "${bat}" \> "$out"
+    (   ulimit -v "$((1024*1024))"
+        timeout 60 \
+        ./igor2 -b "$bat" \
+            | grep -v '^File loaded in [0-9.]\+s$\|^\s*CPU: [0-9.]\+s$' \
+            > "$out" 2>&1 )
+    if [ $? = 0 ]
+    then
+        echo "Wrote ${out}."
+    else
+        echo -n "RV=$?: "
+        rm -v "$out"
+    fi
+done
+
addfile ./run_tests.bash
hunk ./run_tests.bash 1
+#!/bin/bash
+
+tests_dir=tests
+
+# NOTE:
+# If you create new tests, exclude lines with timing information from the output
+# like this:
+# grep -v '^File loaded in [0-9.]\+s$\|^\s*CPU: [0-9.]\+s$'
+
+
+log() {
+    echo "[$(date +"%F %X")]" "$@"
+}
+
+for batch_fn in "${tests_dir}"/*.bat
+do
+    expected_output_fn="${tests_dir}/$(basename -s .bat "$batch_fn").out"
+    if [ ! -r "$expected_output_fn" ]
+    then
+        echo "Expected output file missing or unreadable: ``$expected_output_fn''" >&2
+    fi
+    ./igor2 -b "$batch_fn" 2>&1 \
+        | grep -v '^File loaded in [0-9.]\+s$\|^\s*CPU: [0-9.]\+s$' \
+        | diff "$expected_output_fn" -
+    if [ $? = 0 ]
+    then
+        log Success: "$batch_fn"
+    else
+        log Failure: "$batch_fn"
+    fi
+done
adddir ./tests
addfile ./tests/add.bat
hunk ./tests/add.bat 1
+:l expl/Examples.hs
+:g add
+:q
addfile ./tests/add.out
hunk ./tests/add.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/add.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'add'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             add          in 49     loops
+             
+
+                 [1mHYPOTHESIS 1 of 4[0m
+
+add a0 (Z) = a0
+add (Z) a0 = a0
+add (S a0) (S a1) = S (fun98 (S a0) (S a1))
+fun1891 (S _) (S a1) = a1
+fun1892 (S a0) (S _) = a0
+fun308 (S a0) (S a1) = add (fun1891 (S a0) (S a1)) (fun1892 (S a0) (S a1))
+fun98 (S a0) (S a1) = S (fun308 (S a0) (S a1))
+
+
+
+                 [1mHYPOTHESIS 2 of 4[0m
+
+add a0 (Z) = a0
+add (Z) a0 = a0
+add (S a0) (S a1) = S (fun98 (S a0) (S a1))
+fun1897 (S a0) (S _) = a0
+fun1898 (S _) (S a1) = a1
+fun308 (S a0) (S a1) = add (fun1897 (S a0) (S a1)) (fun1898 (S a0) (S a1))
+fun98 (S a0) (S a1) = S (fun308 (S a0) (S a1))
+
+
+
+                 [1mHYPOTHESIS 3 of 4[0m
+
+add a0 (Z) = a0
+add (Z) a0 = a0
+add (S a0) (S a1) = S (fun98 (S a0) (S a1))
+fun1923 (S _) (S a1) = a1
+fun1924 (S a0) (S _) = a0
+fun308 (S a0) (S a1) = add (fun1923 (S a0) (S a1)) (fun1924 (S a0) (S a1))
+fun98 (S a0) (S a1) = S (fun308 (S a0) (S a1))
+
+
+
+                 [1mHYPOTHESIS 4 of 4[0m
+
+add a0 (Z) = a0
+add (Z) a0 = a0
+add (S a0) (S a1) = S (fun98 (S a0) (S a1))
+fun1929 (S a0) (S _) = a0
+fun1930 (S _) (S a1) = a1
+fun308 (S a0) (S a1) = add (fun1929 (S a0) (S a1)) (fun1930 (S a0) (S a1))
+fun98 (S a0) (S a1) = S (fun308 (S a0) (S a1))
+
+...batch processing finished.
+Bye.
addfile ./tests/addN.bat
hunk ./tests/addN.bat 1
+:l expl/Examples.hs
+:g addN
+:q
addfile ./tests/addN.out
hunk ./tests/addN.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/addN.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'addN'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             addN         in 18     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+addN _ [] = []
+addN a0 (a1 : a2) = fun1 a0 (a1 : a2) : fun2 a0 (a1 : a2)
+fun1 a0 (Z : _) = a0
+fun1 a0 (S a1 : a2) = S (fun15 a0 (S a1 : a2))
+fun15 a0 (S a1 : a2) = fun1 (fun591 a0 (S a1 : a2)) (fun592 a0 (S a1 : a2))
+fun2 a0 (_ : a2) = addN a0 a2
+fun591 a0 (S _ : _) = a0
+fun592 _ (S a1 : _) = [a1]
+
+...batch processing finished.
+Bye.
addfile ./tests/anD.bat
hunk ./tests/anD.bat 1
+:l expl/Examples.hs
+:g anD
+:q
addfile ./tests/anD.out
hunk ./tests/anD.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/anD.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'anD'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             anD          in 1     loops
+             
+
+                 [1mHYPOTHESIS 1 of 2[0m
+
+anD (False) _ = False
+anD (True) a0 = a0
+
+
+
+                 [1mHYPOTHESIS 2 of 2[0m
+
+anD _ (False) = False
+anD a0 (True) = a0
+
+...batch processing finished.
+Bye.
addfile ./tests/andL.bat
hunk ./tests/andL.bat 1
+:l expl/Examples.hs
+:g andL
+:q
addfile ./tests/andL.out
hunk ./tests/andL.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/andL.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'andL'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             andL         in 3     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+andL [] = True
+andL (False : _) = False
+andL (True : a0) = andL a0
+
+...batch processing finished.
+Bye.
addfile ./tests/appenD.bat
hunk ./tests/appenD.bat 1
+:l expl/Examples.hs
+:g appenD
+:q
addfile ./tests/appenD.out
hunk ./tests/appenD.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/appenD.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'appenD'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             appenD       in 3     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+appenD [] a0 = a0
+appenD (a0 : a1) a2 = a0 : fun145 (a0 : a1) a2
+fun145 (a0 : a1) a2 = appenD (fun1464 (a0 : a1) a2) (fun1465 (a0 : a1) a2)
+fun1464 (_ : a1) _ = a1
+fun1465 (_ : _) a2 = a2
+
+...batch processing finished.
+Bye.
addfile ./tests/balloons.bat
hunk ./tests/balloons.bat 1
+:l expl/Examples.hs
+:g balloons
+:q
addfile ./tests/balloons.out
hunk ./tests/balloons.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/balloons.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'balloons'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             balloons     in 5     loops
+             
+
+                 [1mHYPOTHESIS 1 of 2[0m
+
+balloons (_, Large, _, _) = FF
+balloons (Purple, Small, _, _) = FF
+balloons (Yellow, Small, _, _) = TT
+
+
+
+                 [1mHYPOTHESIS 2 of 2[0m
+
+balloons (Purple, _, _, _) = FF
+balloons (Yellow, Large, _, _) = FF
+balloons (Yellow, Small, _, _) = TT
+
+...batch processing finished.
+Bye.
addfile ./tests/enjoySport.bat
hunk ./tests/enjoySport.bat 1
+:l expl/Examples.hs
+:g enjoySport
+:q
addfile ./tests/enjoySport.out
hunk ./tests/enjoySport.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/enjoySport.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'enjoySport'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             enjoySport   in 1     loops
+             
+
+                 [1mHYPOTHESIS 1 of 2[0m
+
+enjoySport (Rain, Cold, High, Strong, Warm, Change) = False
+enjoySport (Sunny, Warm, _, Strong, _, _) = True
+
+
+
+                 [1mHYPOTHESIS 2 of 2[0m
+
+enjoySport (Rain, Cold, High, Strong, Warm, Change) = False
+enjoySport (Sunny, Warm, _, Strong, _, _) = True
+
+...batch processing finished.
+Bye.
addfile ./tests/eq.bat
hunk ./tests/eq.bat 1
+:l expl/Examples.hs
+:g eq
+:q
addfile ./tests/eq.out
hunk ./tests/eq.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/eq.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'eq'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             eq           in 245     loops
+             
+
+                 [1mHYPOTHESIS 1 of 2[0m
+
+eq (Z) (Z) = True
+eq (Z) (S _) = False
+eq (S a0) a1 = eq (fun71 (S a0) a1) (fun72 (S a0) a1)
+fun71 (S a0) _ = a0
+fun72 (S a0) (Z) = S a0
+fun72 (S _) (S a1) = a1
+
+
+
+                 [1mHYPOTHESIS 2 of 2[0m
+
+eq (Z) (Z) = True
+eq (Z) (S _) = False
+eq (S a0) a1 = eq (fun311 (S a0) a1) (fun312 (S a0) a1)
+fun311 (S a0) _ = a0
+fun312 (S _) (Z) = S (S Z)
+fun312 (S _) (S a1) = a1
+
+...batch processing finished.
+Bye.
addfile ./tests/eveN.bat
hunk ./tests/eveN.bat 1
+:l expl/Examples.hs
+:g eveN
+:q
addfile ./tests/eveN.out
hunk ./tests/eveN.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/eveN.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'eveN'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             eveN         in 3     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+eveN (Z) = True
+eveN (S (Z)) = False
+eveN (S (S a0)) = eveN a0
+
+...batch processing finished.
+Bye.
addfile ./tests/evenpos.bat
hunk ./tests/evenpos.bat 1
+:l expl/Examples.hs
+:g evenpos
+:q
addfile ./tests/evenpos.out
hunk ./tests/evenpos.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/evenpos.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'evenpos'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             evenpos      in 4     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+evenpos [] = []
+evenpos [_] = []
+evenpos (a0 : (a1 : a2)) = a1 : fun1 (a0 : (a1 : a2))
+fun1 (_ : (_ : a2)) = evenpos a2
+
+...batch processing finished.
+Bye.
addfile ./tests/evens.bat
hunk ./tests/evens.bat 1
+:l expl/Examples.hs
+:g evens
+:q
addfile ./tests/evens.out
hunk ./tests/evens.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/evens.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'evens'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             evens        in 24     loops
+             
+
+                 [1mHYPOTHESIS 1 of 2[0m
+
+evens [] = []
+evens (Z : a0) = Z : fun1 (Z : a0)
+evens (S (Z) : a0) = evens a0
+evens (S (S (Z)) : a0) = S (S Z) : fun6 (S (S Z) : a0)
+evens (S (S (S (Z))) : a0) = evens a0
+fun1 (Z : a0) = evens a0
+fun6 (S (S (Z)) : a0) = evens a0
+
+
+
+                 [1mHYPOTHESIS 2 of 2[0m
+
+evens [] = []
+evens (Z : a0) = Z : fun1 (Z : a0)
+evens (S (Z) : a0) = evens a0
+evens (S (S (Z)) : a0) = S (S Z) : fun6 (S (S Z) : a0)
+evens (S (S (S (Z))) : a0) = evens a0
+fun1 (Z : a0) = evens a0
+fun6 (S (S (Z)) : a0) = fun1 (Z : a0)
+
+...batch processing finished.
+Bye.
addfile ./tests/fib.bat
hunk ./tests/fib.bat 1
+:l expl/Examples.hs
+:g fib
+:q
addfile ./tests/fib.out
hunk ./tests/fib.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/fib.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'fib'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             fib          in 102     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+fib (Z) = Z
+fib (S (Z)) = S Z
+fib (S (S (Z))) = S Z
+fib (S (S (S a0))) = S (fun3 (S (S (S a0))))
+fun10 (S (S (S (Z)))) = Z
+fun10 (S (S (S (S a0)))) = S (fun47 (S (S (S (S a0)))))
+fun117 (S (S (S (S a0)))) = fun10 (S (S (S a0)))
+fun3 (S (S (S a0))) = S (fun4 (S (S (S a0))))
+fun4 (S (S (S a0))) = fib (fun10 (S (S (S a0))))
+fun47 (S (S (S (S a0)))) = S (fun117 (S (S (S (S a0)))))
+
+...batch processing finished.
+Bye.
addfile ./tests/fibAdd.bat
hunk ./tests/fibAdd.bat 1
+:l expl/Examples.hs
+:g fibAdd
+:q
addfile ./tests/fibAdd.out
hunk ./tests/fibAdd.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/fibAdd.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'fibAdd'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             fibAdd       in 9     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+fibAdd a0 (S a1) = S (fun1 a0 (S a1))
+fun1 a0 (S (Z)) = a0
+fun1 (S _) (S (S a0)) = S (fun5 (S a0) (S (S a0)))
+fun5 (S _) (S (S a0)) = fibAdd a0 (S a0)
+
+...batch processing finished.
+Bye.
addfile ./tests/flatapp.bat
hunk ./tests/flatapp.bat 1
+:l expl/Examples.hs
+:g flatapp
+:q
addfile ./tests/flatapp.out
hunk ./tests/flatapp.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/flatapp.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'flatapp'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             flatapp      in 7     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+flatapp [] [] = []
+flatapp [a0] [a1] = [a0, a1]
+flatapp [a0, a1, a2] [a3, a4, a5] = [a0, a1, a2, a3, a4, a5]
+
+...batch processing finished.
+Bye.
addfile ./tests/flatten.bat
hunk ./tests/flatten.bat 1
+:l expl/Examples.hs
+:g flatten
+:q
addfile ./tests/flatten.out
hunk ./tests/flatten.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/flatten.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'flatten'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             flatten      in 17     loops
+             
+
+                 [1mHYPOTHESIS 1 of 8[0m
+
+flatten (NilT) = []
+flatten (Node a0 (NilT) (NilT)) = [a0]
+flatten (Node a0 (Node a1 (NilT) (NilT)) (Node a2 (NilT) (NilT))) = [a0, a1, a2]
+flatten (Node a0 (Node a1 (Node a2 (NilT) (NilT)) (Node a3 (NilT) (NilT))) (Node a4 (Node a5 (NilT) (NilT)) (Node a6 (NilT) (NilT)))) = [a0, a1, a2, a3, a4, a5, a6]
+
+
+
+                 [1mHYPOTHESIS 2 of 8[0m
+
+flatten (NilT) = []
+flatten (Node a0 (NilT) (NilT)) = [a0]
+flatten (Node a0 (Node a1 (NilT) (NilT)) (Node a2 (NilT) (NilT))) = [a0, a1, a2]
+flatten (Node a0 (Node a1 (Node a2 (NilT) (NilT)) (Node a3 (NilT) (NilT))) (Node a4 (Node a5 (NilT) (NilT)) (Node a6 (NilT) (NilT)))) = [a0, a1, a2, a3, a4, a5, a6]
+
+
+
+                 [1mHYPOTHESIS 3 of 8[0m
+
+flatten (NilT) = []
+flatten (Node a0 (NilT) (NilT)) = [a0]
+flatten (Node a0 (Node a1 (NilT) (NilT)) (Node a2 (NilT) (NilT))) = [a0, a1, a2]
+flatten (Node a0 (Node a1 (Node a2 (NilT) (NilT)) (Node a3 (NilT) (NilT))) (Node a4 (Node a5 (NilT) (NilT)) (Node a6 (NilT) (NilT)))) = [a0, a1, a2, a3, a4, a5, a6]
+
+
+
+                 [1mHYPOTHESIS 4 of 8[0m
+
+flatten (NilT) = []
+flatten (Node a0 (NilT) (NilT)) = [a0]
+flatten (Node a0 (Node a1 (NilT) (NilT)) (Node a2 (NilT) (NilT))) = [a0, a1, a2]
+flatten (Node a0 (Node a1 (Node a2 (NilT) (NilT)) (Node a3 (NilT) (NilT))) (Node a4 (Node a5 (NilT) (NilT)) (Node a6 (NilT) (NilT)))) = [a0, a1, a2, a3, a4, a5, a6]
+
+
+
+                 [1mHYPOTHESIS 5 of 8[0m
+
+flatten (NilT) = []
+flatten (Node a0 (NilT) (NilT)) = [a0]
+flatten (Node a0 (Node a1 (NilT) (NilT)) (Node a2 (NilT) (NilT))) = [a0, a1, a2]
+flatten (Node a0 (Node a1 (Node a2 (NilT) (NilT)) (Node a3 (NilT) (NilT))) (Node a4 (Node a5 (NilT) (NilT)) (Node a6 (NilT) (NilT)))) = [a0, a1, a2, a3, a4, a5, a6]
+
+
+
+                 [1mHYPOTHESIS 6 of 8[0m
+
+flatten (NilT) = []
+flatten (Node a0 (NilT) (NilT)) = [a0]
+flatten (Node a0 (Node a1 (NilT) (NilT)) (Node a2 (NilT) (NilT))) = [a0, a1, a2]
+flatten (Node a0 (Node a1 (Node a2 (NilT) (NilT)) (Node a3 (NilT) (NilT))) (Node a4 (Node a5 (NilT) (NilT)) (Node a6 (NilT) (NilT)))) = [a0, a1, a2, a3, a4, a5, a6]
+
+
+
+                 [1mHYPOTHESIS 7 of 8[0m
+
+flatten (NilT) = []
+flatten (Node a0 (NilT) (NilT)) = [a0]
+flatten (Node a0 (Node a1 (NilT) (NilT)) (Node a2 (NilT) (NilT))) = [a0, a1, a2]
+flatten (Node a0 (Node a1 (Node a2 (NilT) (NilT)) (Node a3 (NilT) (NilT))) (Node a4 (Node a5 (NilT) (NilT)) (Node a6 (NilT) (NilT)))) = [a0, a1, a2, a3, a4, a5, a6]
+
+
+
+                 [1mHYPOTHESIS 8 of 8[0m
+
+flatten (NilT) = []
+flatten (Node a0 (NilT) (NilT)) = [a0]
+flatten (Node a0 (Node a1 (NilT) (NilT)) (Node a2 (NilT) (NilT))) = [a0, a1, a2]
+flatten (Node a0 (Node a1 (Node a2 (NilT) (NilT)) (Node a3 (NilT) (NilT))) (Node a4 (Node a5 (NilT) (NilT)) (Node a6 (NilT) (NilT)))) = [a0, a1, a2, a3, a4, a5, a6]
+
+...batch processing finished.
+Bye.
addfile ./tests/hanoi.bat
hunk ./tests/hanoi.bat 1
+:l expl/Examples.hs
+:g hanoi
+:q
addfile ./tests/hanoi.out
hunk ./tests/hanoi.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/hanoi.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'hanoi'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             hanoi        in 5     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+hanoi (D0) a0 _ a2 a3 = MV D0 a0 a2 a3
+hanoi (D a0) a1 a2 a3 a4 = hanoi (fun8 (D a0) a1 a2 a3 a4) (fun9 (D a0) a1 a2 a3 a4) (fun10 (D a0) a1 a2 a3 a4) (fun11 (D a0) a1 a2 a3 a4) (fun12 (D a0) a1 a2 a3 a4)
+fun10 (D _) a1 _ _ _ = a1
+fun11 (D _) _ _ a3 _ = a3
+fun12 (D a0) a1 a2 a3 a4 = MV (D a0) a1 a3 (fun15 (D a0) a1 a2 a3 a4)
+fun15 (D a0) a1 a2 a3 a4 = hanoi (fun21 (D a0) a1 a2 a3 a4) (fun22 (D a0) a1 a2 a3 a4) (fun23 (D a0) a1 a2 a3 a4) (fun24 (D a0) a1 a2 a3 a4) (fun25 (D a0) a1 a2 a3 a4)
+fun21 (D a0) _ _ _ _ = a0
+fun22 (D _) a1 _ _ _ = a1
+fun23 (D _) _ _ a3 _ = a3
+fun24 (D _) _ a2 _ _ = a2
+fun25 (D _) _ _ _ a4 = a4
+fun8 (D a0) _ _ _ _ = a0
+fun9 (D _) _ a2 _ _ = a2
+
+...batch processing finished.
+Bye.
addfile ./tests/heaD.bat
hunk ./tests/heaD.bat 1
+:l expl/Examples.hs
+:g heaD
+:q
addfile ./tests/heaD.out
hunk ./tests/heaD.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/heaD.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'heaD'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             heaD         in 0     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+heaD (a0 : _) = a0
+
+...batch processing finished.
+Bye.
addfile ./tests/incr.bat
hunk ./tests/incr.bat 1
+:l expl/Examples.hs
+:g incr
+:q
addfile ./tests/incr.out
hunk ./tests/incr.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/incr.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'incr'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             incr         in 3     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+incr [] = []
+incr (a0 : a1) = S a0 : fun1 (a0 : a1)
+fun1 (_ : a1) = incr a1
+
+...batch processing finished.
+Bye.
addfile ./tests/lasT.bat
hunk ./tests/lasT.bat 1
+:l expl/Examples.hs
+:g lasT
+:q
addfile ./tests/lasT.out
hunk ./tests/lasT.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/lasT.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'lasT'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             lasT         in 2     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+lasT [a0] = a0
+lasT (_ : (a1 : a2)) = lasT (a1 : a2)
+
+...batch processing finished.
+Bye.
addfile ./tests/lastM.bat
hunk ./tests/lastM.bat 1
+:l expl/Examples.hs
+:g lastM
+:q
addfile ./tests/lastM.out
hunk ./tests/lastM.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/lastM.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'lastM'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             lastM        in 4     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+lastM [] = Nothing
+lastM [a0] = Just a0
+lastM (_ : (a1 : a2)) = lastM (a1 : a2)
+
+...batch processing finished.
+Bye.
addfile ./tests/lasts.bat
hunk ./tests/lasts.bat 1
+:l expl/Examples.hs
+:g lasts
+:q
addfile ./tests/lasts.out
hunk ./tests/lasts.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/lasts.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'lasts'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             lasts        in 6     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+lasts [] = []
+lasts ([a0] : a1) = a0 : fun5 ([a0] : a1)
+lasts ((_ : (a1 : a2)) : a3) = lasts ((a1 : a2) : a3)
+fun5 ([_] : a1) = lasts a1
+
+...batch processing finished.
+Bye.
addfile ./tests/lengtH.bat
hunk ./tests/lengtH.bat 1
+:l expl/Examples.hs
+:g lengtH
+:q
addfile ./tests/lengtH.out
hunk ./tests/lengtH.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/lengtH.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'lengtH'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             lengtH       in 3     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+lengtH [] = Z
+lengtH (a0 : a1) = S (fun1 (a0 : a1))
+fun1 (_ : a1) = lengtH a1
+
+...batch processing finished.
+Bye.
addfile ./tests/lengths.bat
hunk ./tests/lengths.bat 1
+:l expl/Examples.hs
+:g lengths
+:q
addfile ./tests/lengths.out
hunk ./tests/lengths.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/lengths.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'lengths'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             lengths      in 174     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+lengths [] = []
+lengths (a0 : a1) = fun1 (a0 : a1) : fun2 (a0 : a1)
+fun1 ([] : _) = Z
+fun1 [a0 : a1] = S (fun19 [a0 : a1])
+fun1 [a0 : a1, a2] = S (fun25 [a0 : a1, a2])
+fun19 [_ : a1] = fun1 [a1]
+fun2 [_] = []
+fun2 [[], a0] = [fun47 [[], a0]]
+fun2 [a0 : a1, a2] = fun2 (fun42 [a0 : a1, a2])
+fun25 [_ : a1, _] = fun1 [a1]
+fun42 [_ : a1, a2] = [a1, a2]
+fun47 [[], []] = Z
+fun47 [[], a0 : a1] = S (fun95 [[], a0 : a1])
+fun95 [[], a0 : a1] = fun47 (fun96 [[], a0 : a1])
+fun96 [[], _ : a1] = [[], a1]
+
+...batch processing finished.
+Bye.
addfile ./tests/lenses.bat
hunk ./tests/lenses.bat 1
+:l expl/Examples.hs
+:g lenses
+:q
addfile ./tests/lenses.out
hunk ./tests/lenses.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/lenses.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'lenses'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             lenses       in 206     loops
+             
+
+                 [1mHYPOTHESIS 1 of 3[0m
+
+lenses (_, _, _, Reduced) = None
+lenses (_, Hypermetrope, No, Norml) = Soft
+lenses (_, Myope, Yes, Norml) = Hard
+lenses (PrePresbyopic, Hypermetrope, Yes, Norml) = None
+lenses (PrePresbyopic, Myope, No, Norml) = Soft
+lenses (Presbyopic, Hypermetrope, Yes, Norml) = None
+lenses (Presbyopic, Myope, No, Norml) = None
+lenses (Young, Hypermetrope, Yes, Norml) = Hard
+lenses (Young, Myope, No, Norml) = Soft
+
+
+
+                 [1mHYPOTHESIS 2 of 3[0m
+
+lenses (_, _, _, Reduced) = None
+lenses (_, Hypermetrope, No, Norml) = Soft
+lenses (_, Myope, Yes, Norml) = Hard
+lenses (PrePresbyopic, Hypermetrope, Yes, Norml) = None
+lenses (PrePresbyopic, Myope, No, Norml) = Soft
+lenses (Presbyopic, Hypermetrope, Yes, Norml) = None
+lenses (Presbyopic, Myope, No, Norml) = None
+lenses (Young, Hypermetrope, Yes, Norml) = Hard
+lenses (Young, Myope, No, Norml) = Soft
+
+
+
+                 [1mHYPOTHESIS 3 of 3[0m
+
+lenses (_, _, _, Reduced) = None
+lenses (_, Myope, Yes, Norml) = Hard
+lenses (PrePresbyopic, _, No, Norml) = Soft
+lenses (PrePresbyopic, Hypermetrope, Yes, Norml) = None
+lenses (Presbyopic, Hypermetrope, No, Norml) = Soft
+lenses (Presbyopic, Hypermetrope, Yes, Norml) = None
+lenses (Presbyopic, Myope, No, Norml) = None
+lenses (Young, _, No, Norml) = Soft
+lenses (Young, Hypermetrope, Yes, Norml) = Hard
+
+...batch processing finished.
+Bye.
addfile ./tests/mem.bat
hunk ./tests/mem.bat 1
+:l expl/Examples.hs
+:g mem
+:q
addfile ./tests/mem.out
hunk ./tests/mem.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/mem.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'mem'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             mem          in 60     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+mem _ [] = False
+mem 1 [1] = True
+mem 2 [1] = False
+mem 2 [3] = False
+mem 3 [1] = False
+mem 3 [2] = False
+mem 3 [3] = True
+mem 1 (2 : a0) = mem 1 a0
+mem 1 (3 : a0) = mem 1 a0
+mem 2 (2 : _) = True
+
+...batch processing finished.
+Bye.
addfile ./tests/mirror.bat
hunk ./tests/mirror.bat 1
+:l expl/Examples.hs
+:g mirror
+:q
addfile ./tests/mirror.out
hunk ./tests/mirror.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/mirror.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'mirror'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             mirror       in 4     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+mirror (NilT) = NilT
+mirror (Node a0 a1 a2) = Node a0 (fun1 (Node a0 a1 a2)) (fun2 (Node a0 a1 a2))
+fun1 (Node a0 a1 a2) = mirror (fun3 (Node a0 a1 a2))
+fun2 (Node _ a1 _) = mirror a1
+fun3 (Node _ _ a2) = a2
+
+...batch processing finished.
+Bye.
addfile ./tests/multfst.bat
hunk ./tests/multfst.bat 1
+:l expl/Examples.hs
+:g multfst
+:q
addfile ./tests/multfst.out
hunk ./tests/multfst.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/multfst.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'multfst'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             multfst      in 8     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+multfst [] = []
+multfst (a0 : a1) = a0 : fun1 (a0 : a1)
+fun1 (a0 : a1) = multfst (fun2 (a0 : a1))
+fun2 [_] = []
+fun2 (a0 : (_ : a2)) = a0 : a2
+
+...batch processing finished.
+Bye.
addfile ./tests/multlst.bat
hunk ./tests/multlst.bat 1
+:l expl/Examples.hs
+:g multlst
+:q
addfile ./tests/multlst.out
hunk ./tests/multlst.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/multlst.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'multlst'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             multlst      in 6     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+multlst [] = []
+multlst (a0 : a1) = fun1 (a0 : a1) : fun2 (a0 : a1)
+fun1 [a0] = a0
+fun1 (_ : (a1 : a2)) = fun1 (a1 : a2)
+fun2 (_ : a1) = multlst a1
+
+...batch processing finished.
+Bye.
addfile ./tests/negateAll.bat
hunk ./tests/negateAll.bat 1
+:l expl/Examples.hs
+:g negateAll
+:q
addfile ./tests/negateAll.out
hunk ./tests/negateAll.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/negateAll.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'negateAll'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             negateAll    in 4     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+negateAll [] = []
+negateAll (a0 : a1) = fun1 (a0 : a1) : fun2 (a0 : a1)
+fun1 (False : _) = True
+fun1 (True : _) = False
+fun2 (_ : a1) = negateAll a1
+
+...batch processing finished.
+Bye.
addfile ./tests/odD.bat
hunk ./tests/odD.bat 1
+:l expl/Examples.hs
+:g odD
+:q
addfile ./tests/odD.out
hunk ./tests/odD.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/odD.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'odD'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             odD          in 3     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+odD (Z) = False
+odD (S (Z)) = True
+odD (S (S a0)) = odD a0
+
+...batch processing finished.
+Bye.
addfile ./tests/oddpos.bat
hunk ./tests/oddpos.bat 1
+:l expl/Examples.hs
+:g oddpos
+:q
addfile ./tests/oddpos.out
hunk ./tests/oddpos.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/oddpos.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'oddpos'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             oddpos       in 11     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+oddpos [] = []
+oddpos (a0 : a1) = a0 : fun1 (a0 : a1)
+fun1 (a0 : a1) = oddpos (fun4 (a0 : a1))
+fun4 [_] = []
+fun4 (_ : (_ : a2)) = a2
+
+...batch processing finished.
+Bye.
addfile ./tests/pepper'.bat
hunk ./tests/pepper'.bat 1
+:l expl/Examples.hs
+:g pepper'
+:q
addfile ./tests/pepper'.out
hunk ./tests/pepper'.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/pepper'.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'pepper''
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             pepper'      in 57     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+pepper' (Z) [] = [(Z, Nothing)]
+pepper' (Z) [a0] = [(Z, Just a0), (S Z, Nothing)]
+pepper' (Z) [a0, a1] = [(Z, Just a0), (S Z, Just a1), (S (S Z), Nothing)]
+pepper' (Z) [a0, a1, a2] = [(Z, Just a0), (S Z, Just a1), (S (S Z), Just a2), (S (S (S Z)), Nothing)]
+
+...batch processing finished.
+Bye.
addfile ./tests/pepper.bat
hunk ./tests/pepper.bat 1
+:l expl/Examples.hs
+:g pepper
+:q
addfile ./tests/pepper.out
hunk ./tests/pepper.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/pepper.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'pepper'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             pepper       in 28     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+pepper a0 a1 = fun1 a0 a1 : fun2 a0 a1
+fun1 a0 [] = (a0, Nothing)
+fun1 a0 (a1 : _) = (a0, Just (a1, S a0))
+fun2 _ [] = []
+fun2 a0 (a1 : a2) = fun7 a0 (a1 : a2) : fun8 a0 (a1 : a2)
+fun28 a0 [_] = a0
+fun28 a0 (_ : (_ : _)) = S a0
+fun29 _ (_ : a2) = a2
+fun7 a0 [_] = (S a0, Nothing)
+fun7 a0 (_ : (a2 : _)) = (S a0, Just (a2, S (S a0)))
+fun8 a0 (a1 : a2) = fun2 (fun28 a0 (a1 : a2)) (fun29 a0 (a1 : a2))
+
+...batch processing finished.
+Bye.
addfile ./tests/playTennis.bat
hunk ./tests/playTennis.bat 1
+:l expl/Examples.hs
+:g playTennis
+:q
addfile ./tests/playTennis.out
hunk ./tests/playTennis.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/playTennis.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'playTennis'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             playTennis   in 18     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+playTennis (Overcast, _, _, _) = True
+playTennis (Rain, _, _, Strong) = False
+playTennis (Rain, _, _, Weak) = True
+playTennis (Sunny, _, High, _) = False
+playTennis (Sunny, _, Normal, _) = True
+
+...batch processing finished.
+Bye.
addfile ./tests/powapp.bat
hunk ./tests/powapp.bat 1
+:l expl/Examples.hs
+:g powapp
+:q
addfile ./tests/powapp.out
hunk ./tests/powapp.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/powapp.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'powapp'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             powapp       in 27     loops
+             
+
+                 [1mHYPOTHESIS 1 of 4[0m
+
+powapp [a0] [a1] = [a0, a1]
+powapp [a0, a1] [a2, a3] = [a0, a1, a2, a3]
+powapp [a0, a1, a2, a3] [a4, a5, a6, a7] = [a0, a1, a2, a3, a4, a5, a6, a7]
+
+
+
+                 [1mHYPOTHESIS 2 of 4[0m
+
+powapp [a0] [a1] = [a0, a1]
+powapp [a0, a1] [a2, a3] = [a0, a1, a2, a3]
+powapp [a0, a1, a2, a3] [a4, a5, a6, a7] = [a0, a1, a2, a3, a4, a5, a6, a7]
+
+
+
+                 [1mHYPOTHESIS 3 of 4[0m
+
+powapp [a0] [a1] = [a0, a1]
+powapp [a0, a1] [a2, a3] = [a0, a1, a2, a3]
+powapp [a0, a1, a2, a3] [a4, a5, a6, a7] = [a0, a1, a2, a3, a4, a5, a6, a7]
+
+
+
+                 [1mHYPOTHESIS 4 of 4[0m
+
+powapp [a0] [a1] = [a0, a1]
+powapp [a0, a1] [a2, a3] = [a0, a1, a2, a3]
+powapp [a0, a1, a2, a3] [a4, a5, a6, a7] = [a0, a1, a2, a3, a4, a5, a6, a7]
+
+...batch processing finished.
+Bye.
addfile ./tests/powset.bat
hunk ./tests/powset.bat 1
+:l expl/Examples.hs
+:g powset
+:q
addfile ./tests/powset.out
hunk ./tests/powset.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/powset.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'powset'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             powset       in 33     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+powset [] = [[]]
+powset [a0] = [[a0], []]
+powset [a0, a1] = [[a0, a1], [a0], [a1], []]
+powset [a0, a1, a2] = [[a0, a1, a2], [a0, a1], [a0, a2], [a0], [a1, a2], [a1], [a2], []]
+
+...batch processing finished.
+Bye.
addfile ./tests/reversE.bat
hunk ./tests/reversE.bat 1
+:l expl/Examples.hs
+:g reversE
+:q
addfile ./tests/reversE.out
hunk ./tests/reversE.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/reversE.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'reversE'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             reversE      in 13     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+reversE [] = []
+reversE (a0 : a1) = fun1 (a0 : a1) : fun2 (a0 : a1)
+fun1 [a0] = a0
+fun1 (_ : (a1 : a2)) = fun1 (a1 : a2)
+fun13 (a0 : (a1 : a2)) = fun5 (fun17 (a0 : (a1 : a2)))
+fun17 (_ : (a1 : a2)) = a1 : a2
+fun2 (a0 : a1) = reversE (fun5 (a0 : a1))
+fun5 [_] = []
+fun5 (a0 : (a1 : a2)) = a0 : fun13 (a0 : (a1 : a2))
+
+...batch processing finished.
+Bye.
addfile ./tests/rocket.bat
hunk ./tests/rocket.bat 1
+:l expl/Examples.hs
+:g rocket
+:q
addfile ./tests/rocket.out
hunk ./tests/rocket.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/rocket.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'rocket'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             rocket       in 3     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+rocket [] a0 = FLY a0
+rocket (a0 : a1) a2 = UNL a0 (fun1 (a0 : a1) a2)
+fun1 (a0 : a1) a2 = rocket a1 (LOD a0 a2)
+
+...batch processing finished.
+Bye.
addfile ./tests/shiftl.bat
hunk ./tests/shiftl.bat 1
+:l expl/Examples.hs
+:g shiftl
+:q
addfile ./tests/shiftl.out
hunk ./tests/shiftl.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/shiftl.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'shiftl'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             shiftl       in 5     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+shiftl [] = []
+shiftl [a0] = [a0]
+shiftl (a0 : (a1 : a2)) = a1 : fun3 (a0 : (a1 : a2))
+fun3 (a0 : (_ : a2)) = shiftl (a0 : a2)
+
+...batch processing finished.
+Bye.
addfile ./tests/shiftr.bat
hunk ./tests/shiftr.bat 1
+:l expl/Examples.hs
+:g shiftr
+:q
addfile ./tests/shiftr.out
hunk ./tests/shiftr.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/shiftr.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'shiftr'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             shiftr       in 10     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+shiftr [] = []
+shiftr (a0 : a1) = fun1 (a0 : a1) : fun2 (a0 : a1)
+fun1 [a0] = a0
+fun1 (_ : (a1 : a2)) = fun1 (a1 : a2)
+fun2 [_] = []
+fun2 (a0 : (a1 : a2)) = a0 : fun8 (a0 : (a1 : a2))
+fun8 (a0 : (a1 : a2)) = fun2 (fun9 (a0 : (a1 : a2)))
+fun9 (_ : (a1 : a2)) = a1 : a2
+
+...batch processing finished.
+Bye.
addfile ./tests/snoc.bat
hunk ./tests/snoc.bat 1
+:l expl/Examples.hs
+:g snoc
+:q
addfile ./tests/snoc.out
hunk ./tests/snoc.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/snoc.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'snoc'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             snoc         in 4     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+snoc a0 [] = [a0]
+snoc a0 (a1 : a2) = a1 : fun3 a0 (a1 : a2)
+fun3 a0 (_ : a2) = snoc a0 a2
+
+...batch processing finished.
+Bye.
addfile ./tests/switch.bat
hunk ./tests/switch.bat 1
+:l expl/Examples.hs
+:g switch
+:q
addfile ./tests/switch.out
hunk ./tests/switch.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/switch.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'switch'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             switch       in 13     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+switch [] = []
+switch (a0 : a1) = fun1 (a0 : a1) : fun2 (a0 : a1)
+fun1 [a0] = a0
+fun1 (_ : (a1 : a2)) = fun1 (a1 : a2)
+fun13 (a0 : (a1 : a2)) = fun2 (fun16 (a0 : (a1 : a2)))
+fun16 (_ : (a1 : a2)) = a1 : a2
+fun2 (a0 : a1) = switch (fun5 (a0 : a1))
+fun5 [_] = []
+fun5 (a0 : (a1 : a2)) = a0 : fun13 (a0 : (a1 : a2))
+
+...batch processing finished.
+Bye.
addfile ./tests/taiL.bat
hunk ./tests/taiL.bat 1
+:l expl/Examples.hs
+:g taiL
+:q
addfile ./tests/taiL.out
hunk ./tests/taiL.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/taiL.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'taiL'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             taiL         in 0     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+taiL (_ : a1) = a1
+
+...batch processing finished.
+Bye.
addfile ./tests/takE.bat
hunk ./tests/takE.bat 1
+:l expl/Examples.hs
+:g takE
+:q
addfile ./tests/takE.out
hunk ./tests/takE.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/takE.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'takE'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             takE         in 7     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+takE (Z) _ = []
+takE (S _) [] = []
+takE (S a0) (a1 : a2) = a1 : fun1 (S a0) (a1 : a2)
+fun1 (S a0) (_ : a2) = takE a0 a2
+
+...batch processing finished.
+Bye.
adddir ./tests/unsuccessful
addfile ./tests/unsuccessful/ack.bat
hunk ./tests/unsuccessful/ack.bat 1
+:l expl/Examples.hs
+:g ack
+:q
addfile ./tests/unsuccessful/allodd.bat
hunk ./tests/unsuccessful/allodd.bat 1
+:l expl/Examples.hs
+:g allodd
+:q
addfile ./tests/unsuccessful/concaT.bat
hunk ./tests/unsuccessful/concaT.bat 1
+:l expl/Examples.hs
+:g concaT
+:q
addfile ./tests/unsuccessful/droP.bat
hunk ./tests/unsuccessful/droP.bat 1
+:l expl/Examples.hs
+:g droP
+:q
addfile ./tests/unsuccessful/insert.bat
hunk ./tests/unsuccessful/insert.bat 1
+:l expl/Examples.hs
+:g insert
+:q
addfile ./tests/unsuccessful/member.bat
hunk ./tests/unsuccessful/member.bat 1
+:l expl/Examples.hs
+:g member
+:q
addfile ./tests/unsuccessful/sort.bat
hunk ./tests/unsuccessful/sort.bat 1
+:l expl/Examples.hs
+:g sort
+:q
addfile ./tests/unsuccessful/sortIns.bat
hunk ./tests/unsuccessful/sortIns.bat 1
+:l expl/Examples.hs
+:g sortIns
+:q
addfile ./tests/unsuccessful/suM.bat
hunk ./tests/unsuccessful/suM.bat 1
+:l expl/Examples.hs
+:g suM
+:q
addfile ./tests/unsuccessful/weave.bat
hunk ./tests/unsuccessful/weave.bat 1
+:l expl/Examples.hs
+:g weave
+:q
addfile ./tests/zeros.bat
hunk ./tests/zeros.bat 1
+:l expl/Examples.hs
+:g zeros
+:q
addfile ./tests/zeros.out
hunk ./tests/zeros.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/zeros.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'zeros'
+Background           <none>
+Simplified           False
+Greedy rule-splitting False
+Enhanced             False
+Use paramorphisms    False
+Compare rec args     AWise
+DumpLog              False
+Debug                False
+Maximal tiers        0
+Maximal loops        -1
+
+      [1m- - - - - - - FINISHED - - - - - - -[0m
+
+             zeros        in 6     loops
+             
+
+                 [1mHYPOTHESIS 1 of 2[0m
+
+zeros [] = []
+zeros (Z : a0) = Z : fun1 (Z : a0)
+zeros (S _ : a1) = fun1 (Z : a1)
+fun1 (Z : a0) = zeros a0
+
+
+
+                 [1mHYPOTHESIS 2 of 2[0m
+
+zeros [] = []
+zeros (Z : a0) = Z : fun1 (Z : a0)
+zeros (S _ : a1) = zeros a1
+fun1 (Z : a0) = zeros a0
+
+...batch processing finished.
+Bye.