[move tests ack, droP, member, weave to successful
Helmut Grohne <grohne@cs.uni-bonn.de>**20150306141319
 Ignore-this: a426f01c70e3838713fd7caf466fbe4e
 
 weave was initially generating a function that was not defined on the added
 example, so this example ensures that it finds the desired solution.
] 
<
[When adding IOData, give all variables a new, unique name.
tobias@goedderz.info**20150213164747
 Ignore-this: 5fe929e5fcb80e702f15bf790b69731
] 
[make igor2 compile on ghc 7.4.2 and current hackages
Helmut Grohne <grohne@cs.uni-bonn.de>**20131217133624
 Ignore-this: ec4be18819806ae8821ae058e4cccda1
] 
[Replaced type ELT with newtype ELT; files depending on Logger.hs are still broken.
tobias@goedderz.info**20140716144805
 Ignore-this: 9a0a0c29c5d0558ab4848c597160c9a4
] 
[Fixed usages of lift on LM and ELT types
tobias@goedderz.info**20140717102434
 Ignore-this: 184c6a37204db852f905c6a87ecb9571
] 
[Few minor changes for readability.
tobias@goedderz.info**20150114123248
 Ignore-this: 70913a295974b9566170546f7877528c
] 
[Made some instances polymorphic
tobias@goedderz.info**20140717105948
 Ignore-this: 81593f1f48a3398031208b852ce2237e
] 
[remove unneeded instances in Logger
Helmut Grohne <grohne@cs.uni-bonn.de>**20140717123954
 Ignore-this: bc53f7679628a8ac6efbea0a29ef14ca
] 
[get rid of lift4 and use liftIO instead
Helmut Grohne <grohne@cs.uni-bonn.de>**20140717072357
 Ignore-this: 2afcece0c24cde0f8dcb57a462633bf6
] 
[add MonadLog class to get rid of llog* and friends
Helmut Grohne <grohne@cs.uni-bonn.de>**20140717145205
 Ignore-this: fe9fdbcb5eba43a5adae97e7df2c1608
] 
[Restructured makeIOMatrix and its usage.
tobias@goedderz.info**20150226142003
 Ignore-this: 52968b8bc6a407c6a8cd26e088d13c88
 
 - removed the dispensable "Maybe" from makeIOMatrix's return type
 - standardized argument order regarding cll/tgt
 - clarified some comments where cll/tgt where mixed up
] 
[If indirectCall can derive closed helper functions, use only those.
tobias@goedderz.info**20150303093405
 Ignore-this: a3884663790b31b398603381e529f62f
 
 Added a function bestMatchings that can generally compute exactly the same IO
 examples as allMatchings, but prunes all which result in open helper functions
 (which compute the arguments).
 
 This behaviour is scheduled to be refined later.
 
 If bestMatchings' result is not empty it will be used instead of allMatchings'
 result. This results in a shorter running time and, on our current test cases,
 in exactly the same results.
] 
[Generalized bestMatchings to return all matchings with a maximal number of closed rules (instead of only closed rules)
tobias@goedderz.info**20150304154357
 Ignore-this: 851c8bb5f9ca8577f0610d2aa83e3af3
] 
> move ./tests/unsuccessful/ack.bat ./tests/ack.bat
move ./tests/unsuccessful/droP.bat ./tests/droP.bat
move ./tests/unsuccessful/member.bat ./tests/member.bat
move ./tests/unsuccessful/weave.bat ./tests/weave.bat
hunk ./expl/Examples.hs 614
+weave [a,b,c] [] = [a,b,c]
addfile ./tests/ack.out
hunk ./tests/ack.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/ack.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'ack'
+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
+
+             ack          in 245     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+ack a0 (Z) = S a0
+ack (Z) (S a0) = S (S a0)
+ack (S a0) (S a1) = ack (fun654 (S a0) (S a1)) (fun655 (S a0) (S a1))
+fun654 (S a0) (S _) = a0
+fun655 (S a0) (S a1) = ack (fun738 (S a0) (S a1)) (fun739 (S a0) (S a1))
+fun738 (S a0) (S _) = S a0
+fun739 (S _) (S a1) = a1
+
+...batch processing finished.
+Bye.
addfile ./tests/droP.out
hunk ./tests/droP.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/droP.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'droP'
+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
+
+             droP         in 667     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+droP (Z) a0 = a0
+droP (S a0) a1 = droP (fun5 (S a0) a1) (fun6 (S a0) a1)
+fun5 (S a0) _ = a0
+fun6 (S _) [] = []
+fun6 (S _) (_ : a2) = a2
+
+...batch processing finished.
+Bye.
addfile ./tests/member.out
hunk ./tests/member.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/member.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'member'
+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
+
+             member       in 12409     loops
+             
+
+                 [1mHYPOTHESIS 1 of 3[0m
+
+member _ [] = []
+member 1 [1] = [1]
+member 1 [2] = []
+member 2 [1] = []
+member 2 (2 : a0) = 2 : a0
+member 1 (_ : (_ : _)) = [1]
+
+
+
+                 [1mHYPOTHESIS 2 of 3[0m
+
+member _ [] = []
+member 1 [1] = [1]
+member 1 (2 : a0) = a0
+member 2 [1] = []
+member 2 (2 : a0) = 2 : a0
+member 1 [3, 2, 1] = [1]
+
+
+
+                 [1mHYPOTHESIS 3 of 3[0m
+
+member _ [] = []
+member 1 [1] = [1]
+member 1 (2 : a0) = a0
+member 2 [1] = []
+member 2 (2 : a0) = 2 : a0
+member 1 [3, 2, 1] = [1]
+
+...batch processing finished.
+Bye.
addfile ./tests/weave.out
hunk ./tests/weave.out 1
+
+  .___                   ._ ._             
+  |   | ____  ____ ._____| || |  ._       
+  |   |/ __ \/  _ \|  __ \ || | _| |__ 
+  |   / /_/  ) <_> )  | \/ || |/_   _/   
+  |___\___  /\____/|__|  |_||_|  |_|    
+     /_____/                v0.8
+
+Welcome to IgorII. 
+Running IgorII in batch mode with file: tests/weave.bat
+
+      [1m- - - - START SYNTHESIS WITH - - - -[0m
+
+Targets              'weave'
+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
+
+             weave        in 3562     loops
+             
+
+                 [1mHYPOTHESIS 1 of 1[0m
+
+weave [] a0 = a0
+weave [a0] a1 = a0 : a1
+weave (a0 : (a1 : a2)) a3 = a0 : fun13922 (a0 : (a1 : a2)) a3
+fun13922 (a0 : (a1 : a2)) a3 = weave (fun14070 (a0 : (a1 : a2)) a3) (fun14071 (a0 : (a1 : a2)) a3)
+fun14070 (_ : (_ : _)) a3 = a3
+fun14071 (_ : (a1 : a2)) _ = a1 : a2
+
+...batch processing finished.
+Bye.