[working on build system
martin.hofmann@uni-bamberg.de**20090518074832] hunk ./igor2.cabal 1
-Name:			igor2
-Version:		0.5.8
-Description:		Igor2 is an inductive programming system which generalises programs from I/O examples
-License:		GPL
-Author:			Martin Hofmann
-Maintainer:		martin.hofmann@uni-bamberg.de
-Build-Type: 		Simple
-Cabal-version:		>=1.6
-hs-source-dirs:		src
+Name:                     igor2
+Version:                  0.5.8
+Description:              Igor2 is an inductive programming system which generalises programs from I/O examples
+License:                  GPL
+Author:                   Martin Hofmann
+Maintainer:               martin.hofmann@uni-bamberg.de
+Build-Type:               Simple
+Cabal-version:            >= 1.2
+Tested-with:              GHC==6.10.1
+data-files:               src/TestModule.hs
+
+
hunk ./igor2.cabal 15
-	Main-is:        Main.hs
-	Build-Depends:	bytestring-0.9.1.4, utf8-string-0.3.4, mtl-1.1.0.2,  MonadCatchIO-mtl-0.1.0.1, syb, array-0.2.0.0, containers-0.2.0.0, filepath-1.1.0.1, old-locale-1.0.0.1, old-time-1.0.0.1, unix-2.3.1.0, directory-1.0.0.2, pretty-1.0.1.0, process-1.0.1.0, Cabal-1.6.0.1, editline-0.2.1.0, random-1.0.0.1, haskell98, hpc-0.5.0.2, packedstring-0.1.0.1, template-haskell, ghc-6.10.1, ghc-mtl-1.0.0.0, base-3.0.3.0, parsec-2.1.0.1, haskell-src-1.0.1.3, time-1.1.2.2, ghc-paths-0.1.0.5, hint-0.3.1.0, cpphs-1.6, haskell-src-exts-0.4.8, ansi-terminal-0.5.0, ansi-wl-pprint-0.5.0, bimap-0.2.4, fgl-5.4.2.2
+       Main-is:           Main.hs  
+       Hs-source-dirs:    src
+       ghc-options:       -O2
+       
+       Build-Depends:     bytestring>=0.9, 
+                          utf8-string>=0.3, 
+                          mtl>=1.0, syb, 
+                          array>=0.2, 
+                          containers>=0.2, 
+                          filepath>=1.1, 
+                          old-locale>=1.0, 
+                          old-time>=1.0, 
+                          unix>=2.3, 
+                          directory>=1.0, 
+                          pretty>=1.0, 
+                          process>=1.0, 
+                          editline>=0.2, 
+                          random>=1.0, 
+                          haskell98, 
+                          hpc>=0.5, 
+                          packedstring>=0.1, 
+                          template-haskell, 
+                          ghc>=6.10, 
+                          ghc-mtl>=1.0, 
+                          base>=3.0, 
+                          parsec>=2.1, 
+                          haskell-src>=1.0, 
+                          time>=1.1, 
+                          ghc-paths>=0.1, 
+                          hint>=0.3, 
+                          cpphs>=1.6, 
+                          haskell-src-exts>=0.4, 
+                          ansi-terminal>=0.5.0, 
+                          ansi-wl-pprint>=0.5, 
+                          bimap>=0.2, 
+                          fgl>=5.4
hunk ./src/ExampleDefs.hs 1
-{-# OPTIONS_GHC -fglasgow-exts -XTemplateHaskell   #-}
-module ExampleDefs where
-
-import Language.Haskell.TH
-
-data Color = Purple | Yellow
-data Size = Large | Small
-data Act = Dip | Stretch
-data Age = Adult | Child
-data Inflate = FF | TT
-
-balloonsDef = [d|
-
-	balloons(Yellow,Small,Stretch,Adult) = TT
-	balloons(Yellow,Small,Stretch,Child) = TT
-	balloons(Yellow,Small,Dip,Adult) = TT
-	balloons(Yellow,Small,Dip,Child) = TT
-	balloons(Yellow,Small,Stretch,Adult) = TT
-	balloons(Yellow,Small,Stretch,Child) = TT
-	balloons(Yellow,Small,Dip,Adult) = TT
-	balloons(Yellow,Small,Dip,Child) = TT
-	balloons(Yellow,Large,Stretch,Adult) = FF
-	balloons(Yellow,Large,Stretch,Child) = FF
-	balloons(Yellow,Large,Dip,Adult) = FF
-	balloons(Yellow,Large,Dip,Child) = FF
-	balloons(Purple,Small,Stretch,Adult) = FF
-	balloons(Purple,Small,Stretch,Child) = FF
-	balloons(Purple,Small,Dip,Adult) = FF
-	balloons(Purple,Small,Dip,Child) = FF
-	balloons(Purple,Large,Stretch,Adult) = FF
-	balloons(Purple,Large,Stretch,Child) = FF
-	balloons(Purple,Large,Dip,Adult) = FF
-	balloons(Purple,Large,Dip,Child) = FF
-	|]
-	
-
-data Tile  = B | O | X
-data Class = Lose | Win
-
-tictactoeDef = [d|
-	tictactoe(X,X,X,X,O,O,X,O,O) = Win
-	tictactoe(X,X,X,X,O,O,O,X,O) = Win
-	tictactoe(X,X,X,X,O,O,O,O,X) = Win
-	tictactoe(X,X,X,X,O,O,O,B,B) = Win
-	tictactoe(X,X,X,X,O,O,B,O,B) = Win
-	tictactoe(X,X,X,X,O,O,B,B,O) = Win
-	tictactoe(X,X,X,X,O,B,O,O,B) = Win
-	tictactoe(X,X,X,X,O,B,O,B,O) = Win
-	tictactoe(X,X,X,X,O,B,B,O,O) = Win
-	tictactoe(X,X,X,X,B,O,O,O,B) = Win
-	tictactoe(X,X,X,X,B,O,O,B,O) = Win
-	tictactoe(X,X,X,X,B,O,B,O,O) = Win
-	tictactoe(X,X,X,O,X,O,X,O,O) = Win
-	tictactoe(X,X,X,O,X,O,O,X,O) = Win
-	tictactoe(X,X,X,O,X,O,O,O,X) = Win
-	tictactoe(X,X,X,O,X,O,O,B,B) = Win
-	tictactoe(X,X,X,O,X,O,B,O,B) = Win
-	tictactoe(X,X,X,O,X,O,B,B,O) = Win
-	tictactoe(X,X,X,O,X,B,O,O,B) = Win
-	tictactoe(X,X,X,O,X,B,O,B,O) = Win
-	tictactoe(X,X,X,O,X,B,B,O,O) = Win
-	tictactoe(X,X,X,O,O,X,X,O,O) = Win
-	tictactoe(X,X,X,O,O,X,O,X,O) = Win
-	tictactoe(X,X,X,O,O,X,O,O,X) = Win
-	tictactoe(X,X,X,O,O,X,O,B,B) = Win
-	tictactoe(X,X,X,O,O,X,B,O,B) = Win
-	tictactoe(X,X,X,O,O,X,B,B,O) = Win
-	tictactoe(X,X,X,O,O,B,X,O,B) = Win
-	tictactoe(X,X,X,O,O,B,X,B,O) = Win
-	tictactoe(X,X,X,O,O,B,O,X,B) = Win
-	tictactoe(X,X,X,O,O,B,O,B,X) = Win
-	tictactoe(X,X,X,O,O,B,B,X,O) = Win
-	tictactoe(X,X,X,O,O,B,B,O,X) = Win
-	tictactoe(X,X,X,O,O,B,B,B,B) = Win
-	tictactoe(X,X,X,O,B,X,O,O,B) = Win
-	tictactoe(X,X,X,O,B,X,O,B,O) = Win
-	tictactoe(X,X,X,O,B,X,B,O,O) = Win
-	tictactoe(X,X,X,O,B,O,X,O,B) = Win
-	tictactoe(X,X,X,O,B,O,X,B,O) = Win
-	tictactoe(X,X,X,O,B,O,O,X,B) = Win
-	tictactoe(X,X,X,O,B,O,O,B,X) = Win
-	tictactoe(X,X,X,O,B,O,B,X,O) = Win
-	tictactoe(X,X,X,O,B,O,B,O,X) = Win
-	tictactoe(X,X,X,O,B,O,B,B,B) = Win
-	tictactoe(X,X,X,O,B,B,X,O,O) = Win
-	tictactoe(X,X,X,O,B,B,O,X,O) = Win
-	tictactoe(X,X,X,O,B,B,O,O,X) = Win
-	tictactoe(X,X,X,O,B,B,O,B,B) = Win
-	tictactoe(X,X,X,O,B,B,B,O,B) = Win
-	tictactoe(X,X,X,O,B,B,B,B,O) = Win
-	tictactoe(X,X,X,B,X,O,O,O,B) = Win
-	tictactoe(X,X,X,B,X,O,O,B,O) = Win
-	tictactoe(X,X,X,B,X,O,B,O,O) = Win
-	tictactoe(X,X,X,B,O,X,O,O,B) = Win
-	tictactoe(X,X,X,B,O,X,O,B,O) = Win
-	tictactoe(X,X,X,B,O,X,B,O,O) = Win
-	tictactoe(X,X,X,B,O,O,X,O,B) = Win
-	tictactoe(X,X,X,B,O,O,X,B,O) = Win
-	tictactoe(X,X,X,B,O,O,O,X,B) = Win
-	tictactoe(X,X,X,B,O,O,O,B,X) = Win
-	tictactoe(X,X,X,B,O,O,B,X,O) = Win
-	tictactoe(X,X,X,B,O,O,B,O,X) = Win
-	tictactoe(X,X,X,B,O,O,B,B,B) = Win
-	tictactoe(X,X,X,B,O,B,X,O,O) = Win
-	tictactoe(X,X,X,B,O,B,O,X,O) = Win
-	tictactoe(X,X,X,B,O,B,O,O,X) = Win
-	tictactoe(X,X,X,B,O,B,O,B,B) = Win
-	tictactoe(X,X,X,B,O,B,B,O,B) = Win
-	tictactoe(X,X,X,B,O,B,B,B,O) = Win
-	tictactoe(X,X,X,B,B,O,X,O,O) = Win
-	tictactoe(X,X,X,B,B,O,O,X,O) = Win
-	tictactoe(X,X,X,B,B,O,O,O,X) = Win
-	tictactoe(X,X,X,B,B,O,O,B,B) = Win
-	tictactoe(X,X,X,B,B,O,B,O,B) = Win
-	tictactoe(X,X,X,B,B,O,B,B,O) = Win
-	tictactoe(X,X,X,B,B,B,O,O,B) = Win
-	tictactoe(X,X,X,B,B,B,O,B,O) = Win
-	tictactoe(X,X,X,B,B,B,B,O,O) = Win
-	tictactoe(X,X,O,X,X,O,O,O,X) = Win
-	tictactoe(X,X,O,X,O,X,X,O,O) = Win
-	tictactoe(X,X,O,X,O,O,X,O,X) = Win
-	tictactoe(X,X,O,X,O,O,X,B,B) = Win
-	tictactoe(X,X,O,X,O,B,X,O,B) = Win
-	tictactoe(X,X,O,X,O,B,X,B,O) = Win
-	tictactoe(X,X,O,X,B,O,X,O,B) = Win
-	tictactoe(X,X,O,X,B,B,X,O,O) = Win
-	tictactoe(X,X,O,O,X,X,O,X,O) = Win
-	tictactoe(X,X,O,O,X,X,O,O,X) = Win
-	tictactoe(X,X,O,O,X,O,X,O,X) = Win
-	tictactoe(X,X,O,O,X,O,O,X,X) = Win
-	tictactoe(X,X,O,O,X,O,B,X,B) = Win
-	tictactoe(X,X,O,O,X,O,B,B,X) = Win
-	tictactoe(X,X,O,O,X,B,O,X,B) = Win
-	tictactoe(X,X,O,O,X,B,O,B,X) = Win
-	tictactoe(X,X,O,O,X,B,B,X,O) = Win
-	tictactoe(X,X,O,O,X,B,B,O,X) = Win
-	tictactoe(X,X,O,B,X,O,O,X,B) = Win
-	tictactoe(X,X,O,B,X,O,O,B,X) = Win
-	tictactoe(X,X,O,B,X,O,B,O,X) = Win
-	tictactoe(X,X,O,B,X,B,O,X,O) = Win
-	tictactoe(X,X,O,B,X,B,O,O,X) = Win
-	tictactoe(X,X,B,X,O,O,X,O,B) = Win
-	tictactoe(X,X,B,X,O,O,X,B,O) = Win
-	tictactoe(X,X,B,X,O,B,X,O,O) = Win
-	tictactoe(X,X,B,X,B,O,X,O,O) = Win
-	tictactoe(X,X,B,O,X,O,O,X,B) = Win
-	tictactoe(X,X,B,O,X,O,O,B,X) = Win
-	tictactoe(X,X,B,O,X,O,B,X,O) = Win
-	tictactoe(X,X,B,O,X,O,B,O,X) = Win
-	tictactoe(X,X,B,O,X,B,O,X,O) = Win
-	tictactoe(X,X,B,O,X,B,O,O,X) = Win
-	tictactoe(X,X,B,B,X,O,O,X,O) = Win
-	tictactoe(X,X,B,B,X,O,O,O,X) = Win
-	tictactoe(X,O,X,X,X,O,X,O,O) = Win
-	tictactoe(X,O,X,X,X,O,O,O,X) = Win
-	tictactoe(X,O,X,X,O,O,X,X,O) = Win
-	tictactoe(X,O,X,X,O,O,X,B,B) = Win
-	tictactoe(X,O,X,X,O,B,X,B,O) = Win
-	tictactoe(X,O,X,X,B,O,X,O,B) = Win
-	tictactoe(X,O,X,X,B,O,X,B,O) = Win
-	tictactoe(X,O,X,X,B,B,X,O,O) = Win
-	tictactoe(X,O,X,O,X,X,X,O,O) = Win
-	tictactoe(X,O,X,O,X,X,O,O,X) = Win
-	tictactoe(X,O,X,O,X,O,X,X,O) = Win
-	tictactoe(X,O,X,O,X,O,X,O,X) = Win
-	tictactoe(X,O,X,O,X,O,X,B,B) = Win
-	tictactoe(X,O,X,O,X,O,O,X,X) = Win
-	tictactoe(X,O,X,O,X,O,B,B,X) = Win
-	tictactoe(X,O,X,O,X,B,X,O,B) = Win
-	tictactoe(X,O,X,O,X,B,X,B,O) = Win
-	tictactoe(X,O,X,O,X,B,O,B,X) = Win
-	tictactoe(X,O,X,O,X,B,B,O,X) = Win
-	tictactoe(X,O,X,O,O,X,O,X,X) = Win
-	tictactoe(X,O,X,O,O,X,B,B,X) = Win
-	tictactoe(X,O,X,O,B,X,O,B,X) = Win
-	tictactoe(X,O,X,O,B,X,B,O,X) = Win
-	tictactoe(X,O,X,B,X,O,X,O,B) = Win
-	tictactoe(X,O,X,B,X,O,X,B,O) = Win
-	tictactoe(X,O,X,B,X,O,O,B,X) = Win
-	tictactoe(X,O,X,B,X,O,B,O,X) = Win
-	tictactoe(X,O,X,B,X,B,X,O,O) = Win
-	tictactoe(X,O,X,B,X,B,O,O,X) = Win
-	tictactoe(X,O,X,B,O,X,O,B,X) = Win
-	tictactoe(X,O,X,B,B,X,O,O,X) = Win
-	tictactoe(X,O,O,X,X,X,X,O,O) = Win
-	tictactoe(X,O,O,X,X,X,O,X,O) = Win
-	tictactoe(X,O,O,X,X,X,O,O,X) = Win
-	tictactoe(X,O,O,X,X,X,O,B,B) = Win
-	tictactoe(X,O,O,X,X,X,B,O,B) = Win
-	tictactoe(X,O,O,X,X,X,B,B,O) = Win
-	tictactoe(X,O,O,X,X,O,X,O,X) = Win
-	tictactoe(X,O,O,X,X,O,X,B,B) = Win
-	tictactoe(X,O,O,X,X,O,O,X,X) = Win
-	tictactoe(X,O,O,X,X,O,B,B,X) = Win
-	tictactoe(X,O,O,X,X,B,X,O,B) = Win
-	tictactoe(X,O,O,X,X,B,X,B,O) = Win
-	tictactoe(X,O,O,X,X,B,O,B,X) = Win
-	tictactoe(X,O,O,X,X,B,B,O,X) = Win
-	tictactoe(X,O,O,X,O,X,X,X,O) = Win
-	tictactoe(X,O,O,X,O,X,X,B,B) = Win
-	tictactoe(X,O,O,X,O,O,X,X,X) = Win
-	tictactoe(X,O,O,X,O,B,X,X,B) = Win
-	tictactoe(X,O,O,X,O,B,X,B,X) = Win
-	tictactoe(X,O,O,X,B,X,X,O,B) = Win
-	tictactoe(X,O,O,X,B,X,X,B,O) = Win
-	tictactoe(X,O,O,X,B,O,X,X,B) = Win
-	tictactoe(X,O,O,X,B,O,X,B,X) = Win
-	tictactoe(X,O,O,X,B,B,X,X,O) = Win
-	tictactoe(X,O,O,X,B,B,X,O,X) = Win
-	tictactoe(X,O,O,X,B,B,X,B,B) = Win
-	tictactoe(X,O,O,O,X,X,X,O,X) = Win
-	tictactoe(X,O,O,O,X,X,O,X,X) = Win
-	tictactoe(X,O,O,O,X,X,B,B,X) = Win
-	tictactoe(X,O,O,O,X,O,X,X,X) = Win
-	tictactoe(X,O,O,O,X,B,X,B,X) = Win
-	tictactoe(X,O,O,O,X,B,B,X,X) = Win
-	tictactoe(X,O,O,O,O,X,X,X,X) = Win
-	tictactoe(X,O,O,O,B,B,X,X,X) = Win
-	tictactoe(X,O,O,B,X,X,O,B,X) = Win
-	tictactoe(X,O,O,B,X,X,B,O,X) = Win
-	tictactoe(X,O,O,B,X,O,X,B,X) = Win
-	tictactoe(X,O,O,B,X,O,B,X,X) = Win
-	tictactoe(X,O,O,B,X,B,X,O,X) = Win
-	tictactoe(X,O,O,B,X,B,O,X,X) = Win
-	tictactoe(X,O,O,B,X,B,B,B,X) = Win
-	tictactoe(X,O,O,B,O,B,X,X,X) = Win
-	tictactoe(X,O,O,B,B,O,X,X,X) = Win
-	tictactoe(X,O,B,X,X,X,O,O,B) = Win
-	tictactoe(X,O,B,X,X,X,O,B,O) = Win
-	tictactoe(X,O,B,X,X,X,B,O,O) = Win
-	tictactoe(X,O,B,X,X,O,X,O,B) = Win
-	tictactoe(X,O,B,X,X,O,X,B,O) = Win
-	tictactoe(X,O,B,X,X,O,O,B,X) = Win
-	tictactoe(X,O,B,X,X,O,B,O,X) = Win
-	tictactoe(X,O,B,X,X,B,X,O,O) = Win
-	tictactoe(X,O,B,X,X,B,O,O,X) = Win
-	tictactoe(X,O,B,X,O,X,X,B,O) = Win
-	tictactoe(X,O,B,X,O,O,X,X,B) = Win
-	tictactoe(X,O,B,X,O,O,X,B,X) = Win
-	tictactoe(X,O,B,X,O,B,X,X,O) = Win
-	tictactoe(X,O,B,X,O,B,X,B,B) = Win
-	tictactoe(X,O,B,X,B,X,X,O,O) = Win
-	tictactoe(X,O,B,X,B,O,X,X,O) = Win
-	tictactoe(X,O,B,X,B,O,X,O,X) = Win
-	tictactoe(X,O,B,X,B,O,X,B,B) = Win
-	tictactoe(X,O,B,X,B,B,X,O,B) = Win
-	tictactoe(X,O,B,X,B,B,X,B,O) = Win
-	tictactoe(X,O,B,O,X,X,O,B,X) = Win
-	tictactoe(X,O,B,O,X,X,B,O,X) = Win
-	tictactoe(X,O,B,O,X,O,X,B,X) = Win
-	tictactoe(X,O,B,O,X,O,B,X,X) = Win
-	tictactoe(X,O,B,O,X,B,X,O,X) = Win
-	tictactoe(X,O,B,O,X,B,O,X,X) = Win
-	tictactoe(X,O,B,O,X,B,B,B,X) = Win
-	tictactoe(X,O,B,O,O,B,X,X,X) = Win
-	tictactoe(X,O,B,O,B,O,X,X,X) = Win
-	tictactoe(X,O,B,B,X,X,O,O,X) = Win
-	tictactoe(X,O,B,B,X,O,X,O,X) = Win
-	tictactoe(X,O,B,B,X,O,O,X,X) = Win
-	tictactoe(X,O,B,B,X,O,B,B,X) = Win
-	tictactoe(X,O,B,B,X,B,O,B,X) = Win
-	tictactoe(X,O,B,B,X,B,B,O,X) = Win
-	tictactoe(X,O,B,B,O,O,X,X,X) = Win
-	tictactoe(X,B,X,X,O,O,X,O,B) = Win
-	tictactoe(X,B,X,X,O,O,X,B,O) = Win
-	tictactoe(X,B,X,X,O,B,X,O,O) = Win
-	tictactoe(X,B,X,X,B,O,X,O,O) = Win
-	tictactoe(X,B,X,O,X,O,X,O,B) = Win
-	tictactoe(X,B,X,O,X,O,X,B,O) = Win
-	tictactoe(X,B,X,O,X,O,O,B,X) = Win
-	tictactoe(X,B,X,O,X,O,B,O,X) = Win
-	tictactoe(X,B,X,O,X,B,X,O,O) = Win
-	tictactoe(X,B,X,O,X,B,O,O,X) = Win
-	tictactoe(X,B,X,O,O,X,O,B,X) = Win
-	tictactoe(X,B,X,O,O,X,B,O,X) = Win
-	tictactoe(X,B,X,O,B,X,O,O,X) = Win
-	tictactoe(X,B,X,B,X,O,X,O,O) = Win
-	tictactoe(X,B,X,B,X,O,O,O,X) = Win
-	tictactoe(X,B,X,B,O,X,O,O,X) = Win
-	tictactoe(X,B,O,X,X,X,O,O,B) = Win
-	tictactoe(X,B,O,X,X,X,O,B,O) = Win
-	tictactoe(X,B,O,X,X,X,B,O,O) = Win
-	tictactoe(X,B,O,X,X,O,X,O,B) = Win
-	tictactoe(X,B,O,X,X,O,O,B,X) = Win
-	tictactoe(X,B,O,X,X,O,B,O,X) = Win
-	tictactoe(X,B,O,X,X,B,X,O,O) = Win
-	tictactoe(X,B,O,X,X,B,O,O,X) = Win
-	tictactoe(X,B,O,X,O,X,X,O,B) = Win
-	tictactoe(X,B,O,X,O,X,X,B,O) = Win
-	tictactoe(X,B,O,X,O,O,X,X,B) = Win
-	tictactoe(X,B,O,X,O,O,X,B,X) = Win
-	tictactoe(X,B,O,X,O,B,X,X,O) = Win
-	tictactoe(X,B,O,X,O,B,X,O,X) = Win
-	tictactoe(X,B,O,X,O,B,X,B,B) = Win
-	tictactoe(X,B,O,X,B,X,X,O,O) = Win
-	tictactoe(X,B,O,X,B,O,X,O,X) = Win
-	tictactoe(X,B,O,X,B,O,X,B,B) = Win
-	tictactoe(X,B,O,X,B,B,X,O,B) = Win
-	tictactoe(X,B,O,X,B,B,X,B,O) = Win
-	tictactoe(X,B,O,O,X,X,O,B,X) = Win
-	tictactoe(X,B,O,O,X,X,B,O,X) = Win
-	tictactoe(X,B,O,O,X,O,X,B,X) = Win
-	tictactoe(X,B,O,O,X,O,B,X,X) = Win
-	tictactoe(X,B,O,O,X,B,X,O,X) = Win
-	tictactoe(X,B,O,O,X,B,O,X,X) = Win
-	tictactoe(X,B,O,O,X,B,B,B,X) = Win
-	tictactoe(X,B,O,O,O,B,X,X,X) = Win
-	tictactoe(X,B,O,O,B,O,X,X,X) = Win
-	tictactoe(X,B,O,B,X,X,O,O,X) = Win
-	tictactoe(X,B,O,B,X,O,X,O,X) = Win
-	tictactoe(X,B,O,B,X,O,O,X,X) = Win
-	tictactoe(X,B,O,B,X,O,B,B,X) = Win
-	tictactoe(X,B,O,B,X,B,O,B,X) = Win
-	tictactoe(X,B,O,B,X,B,B,O,X) = Win
-	tictactoe(X,B,O,B,O,O,X,X,X) = Win
-	tictactoe(X,B,B,X,X,O,X,O,O) = Win
-	tictactoe(X,B,B,X,X,O,O,O,X) = Win
-	tictactoe(X,B,B,X,O,X,X,O,O) = Win
-	tictactoe(X,B,B,X,O,O,X,X,O) = Win
-	tictactoe(X,B,B,X,O,O,X,O,X) = Win
-	tictactoe(X,B,B,X,O,O,X,B,B) = Win
-	tictactoe(X,B,B,X,O,B,X,O,B) = Win
-	tictactoe(X,B,B,X,O,B,X,B,O) = Win
-	tictactoe(X,B,B,X,B,O,X,O,B) = Win
-	tictactoe(X,B,B,X,B,O,X,B,O) = Win
-	tictactoe(X,B,B,X,B,B,X,O,O) = Win
-	tictactoe(X,B,B,O,X,X,O,O,X) = Win
-	tictactoe(X,B,B,O,X,O,X,O,X) = Win
-	tictactoe(X,B,B,O,X,O,O,X,X) = Win
-	tictactoe(X,B,B,O,X,O,B,B,X) = Win
-	tictactoe(X,B,B,O,X,B,O,B,X) = Win
-	tictactoe(X,B,B,O,X,B,B,O,X) = Win
-	tictactoe(X,B,B,B,X,O,O,B,X) = Win
-	tictactoe(X,B,B,B,X,O,B,O,X) = Win
-	tictactoe(X,B,B,B,X,B,O,O,X) = Win
-	tictactoe(O,X,X,X,X,O,X,O,O) = Win
-	tictactoe(O,X,X,X,X,O,O,X,O) = Win
-	tictactoe(O,X,X,X,O,X,O,O,X) = Win
-	tictactoe(O,X,X,O,X,X,X,O,O) = Win
-	tictactoe(O,X,X,O,X,O,X,X,O) = Win
-	tictactoe(O,X,X,O,X,O,X,O,X) = Win
-	tictactoe(O,X,X,O,X,O,X,B,B) = Win
-	tictactoe(O,X,X,O,X,O,B,X,B) = Win
-	tictactoe(O,X,X,O,X,B,X,O,B) = Win
-	tictactoe(O,X,X,O,X,B,X,B,O) = Win
-	tictactoe(O,X,X,O,X,B,B,X,O) = Win
-	tictactoe(O,X,X,O,O,X,X,O,X) = Win
-	tictactoe(O,X,X,O,O,X,B,B,X) = Win
-	tictactoe(O,X,X,O,B,X,B,O,X) = Win
-	tictactoe(O,X,X,B,X,O,X,O,B) = Win
-	tictactoe(O,X,X,B,X,O,X,B,O) = Win
-	tictactoe(O,X,X,B,X,O,O,X,B) = Win
-	tictactoe(O,X,X,B,X,O,B,X,O) = Win
-	tictactoe(O,X,X,B,X,B,X,O,O) = Win
-	tictactoe(O,X,X,B,X,B,O,X,O) = Win
-	tictactoe(O,X,X,B,O,X,O,B,X) = Win
-	tictactoe(O,X,X,B,O,X,B,O,X) = Win
-	tictactoe(O,X,X,B,B,X,O,O,X) = Win
-	tictactoe(O,X,O,X,X,X,X,O,O) = Win
-	tictactoe(O,X,O,X,X,X,O,X,O) = Win
-	tictactoe(O,X,O,X,X,X,O,O,X) = Win
-	tictactoe(O,X,O,X,X,X,O,B,B) = Win
-	tictactoe(O,X,O,X,X,X,B,O,B) = Win
-	tictactoe(O,X,O,X,X,X,B,B,O) = Win
-	tictactoe(O,X,O,X,X,O,O,X,X) = Win
-	tictactoe(O,X,O,X,X,O,B,X,B) = Win
-	tictactoe(O,X,O,X,X,B,O,X,B) = Win
-	tictactoe(O,X,O,X,X,B,B,X,O) = Win
-	tictactoe(O,X,O,X,O,O,X,X,X) = Win
-	tictactoe(O,X,O,O,X,X,X,X,O) = Win
-	tictactoe(O,X,O,O,X,X,B,X,B) = Win
-	tictactoe(O,X,O,O,X,O,X,X,X) = Win
-	tictactoe(O,X,O,O,X,B,X,X,B) = Win
-	tictactoe(O,X,O,O,X,B,B,X,X) = Win
-	tictactoe(O,X,O,O,O,X,X,X,X) = Win
-	tictactoe(O,X,O,O,B,B,X,X,X) = Win
-	tictactoe(O,X,O,B,X,X,O,X,B) = Win
-	tictactoe(O,X,O,B,X,X,B,X,O) = Win
-	tictactoe(O,X,O,B,X,O,X,X,B) = Win
-	tictactoe(O,X,O,B,X,O,B,X,X) = Win
-	tictactoe(O,X,O,B,X,B,X,X,O) = Win
-	tictactoe(O,X,O,B,X,B,O,X,X) = Win
-	tictactoe(O,X,O,B,X,B,B,X,B) = Win
-	tictactoe(O,X,O,B,O,B,X,X,X) = Win
-	tictactoe(O,X,O,B,B,O,X,X,X) = Win
-	tictactoe(O,X,B,X,X,X,O,O,B) = Win
-	tictactoe(O,X,B,X,X,X,O,B,O) = Win
-	tictactoe(O,X,B,X,X,X,B,O,O) = Win
-	tictactoe(O,X,B,X,X,O,O,X,B) = Win
-	tictactoe(O,X,B,X,X,O,B,X,O) = Win
-	tictactoe(O,X,B,X,X,B,O,X,O) = Win
-	tictactoe(O,X,B,O,X,X,B,X,O) = Win
-	tictactoe(O,X,B,O,X,O,X,X,B) = Win
-	tictactoe(O,X,B,O,X,O,B,X,X) = Win
-	tictactoe(O,X,B,O,X,B,X,X,O) = Win
-	tictactoe(O,X,B,O,X,B,B,X,B) = Win
-	tictactoe(O,X,B,O,O,B,X,X,X) = Win
-	tictactoe(O,X,B,O,B,O,X,X,X) = Win
-	tictactoe(O,X,B,B,X,X,O,X,O) = Win
-	tictactoe(O,X,B,B,X,O,X,X,O) = Win
-	tictactoe(O,X,B,B,X,O,O,X,X) = Win
-	tictactoe(O,X,B,B,X,O,B,X,B) = Win
-	tictactoe(O,X,B,B,X,B,O,X,B) = Win
-	tictactoe(O,X,B,B,X,B,B,X,O) = Win
-	tictactoe(O,X,B,B,O,O,X,X,X) = Win
-	tictactoe(O,O,X,X,X,X,X,O,O) = Win
-	tictactoe(O,O,X,X,X,X,O,X,O) = Win
-	tictactoe(O,O,X,X,X,X,O,O,X) = Win
-	tictactoe(O,O,X,X,X,X,O,B,B) = Win
-	tictactoe(O,O,X,X,X,X,B,O,B) = Win
-	tictactoe(O,O,X,X,X,X,B,B,O) = Win
-	tictactoe(O,O,X,X,X,O,X,X,O) = Win
-	tictactoe(O,O,X,X,X,O,X,O,X) = Win
-	tictactoe(O,O,X,X,X,O,X,B,B) = Win
-	tictactoe(O,O,X,X,X,B,X,O,B) = Win
-	tictactoe(O,O,X,X,X,B,X,B,O) = Win
-	tictactoe(O,O,X,X,O,X,O,X,X) = Win
-	tictactoe(O,O,X,X,O,X,B,B,X) = Win
-	tictactoe(O,O,X,X,O,O,X,X,X) = Win
-	tictactoe(O,O,X,X,B,X,O,B,X) = Win
-	tictactoe(O,O,X,X,B,X,B,O,X) = Win
-	tictactoe(O,O,X,O,X,X,X,X,O) = Win
-	tictactoe(O,O,X,O,X,X,X,O,X) = Win
-	tictactoe(O,O,X,O,X,X,X,B,B) = Win
-	tictactoe(O,O,X,O,X,X,B,B,X) = Win
-	tictactoe(O,O,X,O,X,O,X,X,X) = Win
-	tictactoe(O,O,X,O,X,B,X,X,B) = Win
-	tictactoe(O,O,X,O,X,B,X,B,X) = Win
-	tictactoe(O,O,X,O,O,X,X,X,X) = Win
-	tictactoe(O,O,X,O,B,X,X,B,X) = Win
-	tictactoe(O,O,X,O,B,X,B,X,X) = Win
-	tictactoe(O,O,X,O,B,B,X,X,X) = Win
-	tictactoe(O,O,X,B,X,X,X,O,B) = Win
-	tictactoe(O,O,X,B,X,X,X,B,O) = Win
-	tictactoe(O,O,X,B,X,X,O,B,X) = Win
-	tictactoe(O,O,X,B,X,X,B,O,X) = Win
-	tictactoe(O,O,X,B,X,O,X,X,B) = Win
-	tictactoe(O,O,X,B,X,O,X,B,X) = Win
-	tictactoe(O,O,X,B,X,B,X,X,O) = Win
-	tictactoe(O,O,X,B,X,B,X,O,X) = Win
-	tictactoe(O,O,X,B,X,B,X,B,B) = Win
-	tictactoe(O,O,X,B,O,X,X,B,X) = Win
-	tictactoe(O,O,X,B,O,X,B,X,X) = Win
-	tictactoe(O,O,X,B,O,B,X,X,X) = Win
-	tictactoe(O,O,X,B,B,X,X,O,X) = Win
-	tictactoe(O,O,X,B,B,X,O,X,X) = Win
-	tictactoe(O,O,X,B,B,X,B,B,X) = Win
-	tictactoe(O,O,X,B,B,O,X,X,X) = Win
-	tictactoe(O,O,B,X,X,X,X,O,B) = Win
-	tictactoe(O,O,B,X,X,X,X,B,O) = Win
-	tictactoe(O,O,B,X,X,X,O,X,B) = Win
-	tictactoe(O,O,B,X,X,X,O,B,X) = Win
-	tictactoe(O,O,B,X,X,X,B,X,O) = Win
-	tictactoe(O,O,B,X,X,X,B,O,X) = Win
-	tictactoe(O,O,B,X,X,X,B,B,B) = Win
-	tictactoe(O,O,B,X,O,B,X,X,X) = Win
-	tictactoe(O,O,B,X,B,O,X,X,X) = Win
-	tictactoe(O,O,B,O,X,B,X,X,X) = Win
-	tictactoe(O,O,B,O,B,X,X,X,X) = Win
-	tictactoe(O,O,B,B,X,O,X,X,X) = Win
-	tictactoe(O,O,B,B,O,X,X,X,X) = Win
-	tictactoe(O,O,B,B,B,B,X,X,X) = Win
-	tictactoe(O,B,X,X,X,X,O,O,B) = Win
-	tictactoe(O,B,X,X,X,X,O,B,O) = Win
-	tictactoe(O,B,X,X,X,X,B,O,O) = Win
-	tictactoe(O,B,X,X,X,O,X,O,B) = Win
-	tictactoe(O,B,X,X,X,O,X,B,O) = Win
-	tictactoe(O,B,X,X,X,B,X,O,O) = Win
-	tictactoe(O,B,X,X,O,X,O,B,X) = Win
-	tictactoe(O,B,X,X,O,X,B,O,X) = Win
-	tictactoe(O,B,X,X,B,X,O,O,X) = Win
-	tictactoe(O,B,X,O,X,X,X,O,B) = Win
-	tictactoe(O,B,X,O,X,X,X,B,O) = Win
-	tictactoe(O,B,X,O,X,X,B,O,X) = Win
-	tictactoe(O,B,X,O,X,O,X,X,B) = Win
-	tictactoe(O,B,X,O,X,O,X,B,X) = Win
-	tictactoe(O,B,X,O,X,B,X,X,O) = Win
-	tictactoe(O,B,X,O,X,B,X,O,X) = Win
-	tictactoe(O,B,X,O,X,B,X,B,B) = Win
-	tictactoe(O,B,X,O,O,X,X,B,X) = Win
-	tictactoe(O,B,X,O,O,X,B,X,X) = Win
-	tictactoe(O,B,X,O,O,B,X,X,X) = Win
-	tictactoe(O,B,X,O,B,X,X,O,X) = Win
-	tictactoe(O,B,X,O,B,X,B,B,X) = Win
-	tictactoe(O,B,X,O,B,O,X,X,X) = Win
-	tictactoe(O,B,X,B,X,X,X,O,O) = Win
-	tictactoe(O,B,X,B,X,X,O,O,X) = Win
-	tictactoe(O,B,X,B,X,O,X,X,O) = Win
-	tictactoe(O,B,X,B,X,O,X,O,X) = Win
-	tictactoe(O,B,X,B,X,O,X,B,B) = Win
-	tictactoe(O,B,X,B,X,B,X,O,B) = Win
-	tictactoe(O,B,X,B,X,B,X,B,O) = Win
-	tictactoe(O,B,X,B,O,X,X,O,X) = Win
-	tictactoe(O,B,X,B,O,X,O,X,X) = Win
-	tictactoe(O,B,X,B,O,X,B,B,X) = Win
-	tictactoe(O,B,X,B,O,O,X,X,X) = Win
-	tictactoe(O,B,X,B,B,X,O,B,X) = Win
-	tictactoe(O,B,X,B,B,X,B,O,X) = Win
-	tictactoe(O,B,O,X,X,X,X,O,B) = Win
-	tictactoe(O,B,O,X,X,X,X,B,O) = Win
-	tictactoe(O,B,O,X,X,X,O,X,B) = Win
-	tictactoe(O,B,O,X,X,X,O,B,X) = Win
-	tictactoe(O,B,O,X,X,X,B,X,O) = Win
-	tictactoe(O,B,O,X,X,X,B,O,X) = Win
-	tictactoe(O,B,O,X,X,X,B,B,B) = Win
-	tictactoe(O,B,O,X,O,B,X,X,X) = Win
-	tictactoe(O,B,O,X,B,O,X,X,X) = Win
-	tictactoe(O,B,O,O,X,B,X,X,X) = Win
-	tictactoe(O,B,O,O,B,X,X,X,X) = Win
-	tictactoe(O,B,O,B,X,O,X,X,X) = Win
-	tictactoe(O,B,O,B,O,X,X,X,X) = Win
-	tictactoe(O,B,O,B,B,B,X,X,X) = Win
-	tictactoe(O,B,B,X,X,X,X,O,O) = Win
-	tictactoe(O,B,B,X,X,X,O,X,O) = Win
-	tictactoe(O,B,B,X,X,X,O,O,X) = Win
-	tictactoe(O,B,B,X,X,X,O,B,B) = Win
-	tictactoe(O,B,B,X,X,X,B,O,B) = Win
-	tictactoe(O,B,B,X,X,X,B,B,O) = Win
-	tictactoe(O,B,B,X,O,O,X,X,X) = Win
-	tictactoe(O,B,B,O,X,O,X,X,X) = Win
-	tictactoe(O,B,B,O,O,X,X,X,X) = Win
-	tictactoe(O,B,B,O,B,B,X,X,X) = Win
-	tictactoe(O,B,B,B,O,B,X,X,X) = Win
-	tictactoe(O,B,B,B,B,O,X,X,X) = Win
-	tictactoe(B,X,X,O,X,O,X,O,B) = Win
-	tictactoe(B,X,X,O,X,O,X,B,O) = Win
-	tictactoe(B,X,X,O,X,O,O,X,B) = Win
-	tictactoe(B,X,X,O,X,O,B,X,O) = Win
-	tictactoe(B,X,X,O,X,B,X,O,O) = Win
-	tictactoe(B,X,X,O,X,B,O,X,O) = Win
-	tictactoe(B,X,X,O,O,X,O,B,X) = Win
-	tictactoe(B,X,X,O,O,X,B,O,X) = Win
-	tictactoe(B,X,X,O,B,X,O,O,X) = Win
-	tictactoe(B,X,X,B,X,O,X,O,O) = Win
-	tictactoe(B,X,X,B,X,O,O,X,O) = Win
-	tictactoe(B,X,X,B,O,X,O,O,X) = Win
-	tictactoe(B,X,O,X,X,X,O,O,B) = Win
-	tictactoe(B,X,O,X,X,X,O,B,O) = Win
-	tictactoe(B,X,O,X,X,X,B,O,O) = Win
-	tictactoe(B,X,O,X,X,O,O,X,B) = Win
-	tictactoe(B,X,O,X,X,B,O,X,O) = Win
-	tictactoe(B,X,O,O,X,X,O,X,B) = Win
-	tictactoe(B,X,O,O,X,X,B,X,O) = Win
-	tictactoe(B,X,O,O,X,O,X,X,B) = Win
-	tictactoe(B,X,O,O,X,O,B,X,X) = Win
-	tictactoe(B,X,O,O,X,B,X,X,O) = Win
-	tictactoe(B,X,O,O,X,B,O,X,X) = Win
-	tictactoe(B,X,O,O,X,B,B,X,B) = Win
-	tictactoe(B,X,O,O,O,B,X,X,X) = Win
-	tictactoe(B,X,O,O,B,O,X,X,X) = Win
-	tictactoe(B,X,O,B,X,X,O,X,O) = Win
-	tictactoe(B,X,O,B,X,O,O,X,X) = Win
-	tictactoe(B,X,O,B,X,O,B,X,B) = Win
-	tictactoe(B,X,O,B,X,B,O,X,B) = Win
-	tictactoe(B,X,O,B,X,B,B,X,O) = Win
-	tictactoe(B,X,O,B,O,O,X,X,X) = Win
-	tictactoe(B,X,B,X,X,O,O,X,O) = Win
-	tictactoe(B,X,B,O,X,X,O,X,O) = Win
-	tictactoe(B,X,B,O,X,O,X,X,O) = Win
-	tictactoe(B,X,B,O,X,O,O,X,X) = Win
-	tictactoe(B,X,B,O,X,O,B,X,B) = Win
-	tictactoe(B,X,B,O,X,B,O,X,B) = Win
-	tictactoe(B,X,B,O,X,B,B,X,O) = Win
-	tictactoe(B,X,B,B,X,O,O,X,B) = Win
-	tictactoe(B,X,B,B,X,O,B,X,O) = Win
-	tictactoe(B,X,B,B,X,B,O,X,O) = Win
-	tictactoe(B,O,X,X,X,X,O,O,B) = Win
-	tictactoe(B,O,X,X,X,X,O,B,O) = Win
-	tictactoe(B,O,X,X,X,X,B,O,O) = Win
-	tictactoe(B,O,X,X,X,O,X,O,B) = Win
-	tictactoe(B,O,X,X,X,O,X,B,O) = Win
-	tictactoe(B,O,X,X,X,B,X,O,O) = Win
-	tictactoe(B,O,X,X,O,X,O,B,X) = Win
-	tictactoe(B,O,X,X,B,X,O,O,X) = Win
-	tictactoe(B,O,X,O,X,X,X,O,B) = Win
-	tictactoe(B,O,X,O,X,X,X,B,O) = Win
-	tictactoe(B,O,X,O,X,X,O,B,X) = Win
-	tictactoe(B,O,X,O,X,X,B,O,X) = Win
-	tictactoe(B,O,X,O,X,O,X,X,B) = Win
-	tictactoe(B,O,X,O,X,O,X,B,X) = Win
-	tictactoe(B,O,X,O,X,B,X,X,O) = Win
-	tictactoe(B,O,X,O,X,B,X,O,X) = Win
-	tictactoe(B,O,X,O,X,B,X,B,B) = Win
-	tictactoe(B,O,X,O,O,X,X,B,X) = Win
-	tictactoe(B,O,X,O,O,X,B,X,X) = Win
-	tictactoe(B,O,X,O,O,B,X,X,X) = Win
-	tictactoe(B,O,X,O,B,X,X,O,X) = Win
-	tictactoe(B,O,X,O,B,X,O,X,X) = Win
-	tictactoe(B,O,X,O,B,X,B,B,X) = Win
-	tictactoe(B,O,X,O,B,O,X,X,X) = Win
-	tictactoe(B,O,X,B,X,X,X,O,O) = Win
-	tictactoe(B,O,X,B,X,X,O,O,X) = Win
-	tictactoe(B,O,X,B,X,O,X,X,O) = Win
-	tictactoe(B,O,X,B,X,O,X,O,X) = Win
-	tictactoe(B,O,X,B,X,O,X,B,B) = Win
-	tictactoe(B,O,X,B,X,B,X,O,B) = Win
-	tictactoe(B,O,X,B,X,B,X,B,O) = Win
-	tictactoe(B,O,X,B,O,X,O,X,X) = Win
-	tictactoe(B,O,X,B,O,X,B,B,X) = Win
-	tictactoe(B,O,X,B,O,O,X,X,X) = Win
-	tictactoe(B,O,X,B,B,X,O,B,X) = Win
-	tictactoe(B,O,X,B,B,X,B,O,X) = Win
-	tictactoe(B,O,O,X,X,X,X,O,B) = Win
-	tictactoe(B,O,O,X,X,X,X,B,O) = Win
-	tictactoe(B,O,O,X,X,X,O,X,B) = Win
-	tictactoe(B,O,O,X,X,X,O,B,X) = Win
-	tictactoe(B,O,O,X,X,X,B,X,O) = Win
-	tictactoe(B,O,O,X,X,X,B,O,X) = Win
-	tictactoe(B,O,O,X,X,X,B,B,B) = Win
-	tictactoe(B,O,O,X,O,B,X,X,X) = Win
-	tictactoe(B,O,O,X,B,O,X,X,X) = Win
-	tictactoe(B,O,O,O,X,B,X,X,X) = Win
-	tictactoe(B,O,O,O,B,X,X,X,X) = Win
-	tictactoe(B,O,O,B,X,O,X,X,X) = Win
-	tictactoe(B,O,O,B,O,X,X,X,X) = Win
-	tictactoe(B,O,O,B,B,B,X,X,X) = Win
-	tictactoe(B,O,B,X,X,X,X,O,O) = Win
-	tictactoe(B,O,B,X,X,X,O,X,O) = Win
-	tictactoe(B,O,B,X,X,X,O,O,X) = Win
-	tictactoe(B,O,B,X,X,X,O,B,B) = Win
-	tictactoe(B,O,B,X,X,X,B,O,B) = Win
-	tictactoe(B,O,B,X,X,X,B,B,O) = Win
-	tictactoe(B,O,B,X,O,O,X,X,X) = Win
-	tictactoe(B,O,B,O,X,O,X,X,X) = Win
-	tictactoe(B,O,B,O,O,X,X,X,X) = Win
-	tictactoe(B,O,B,O,B,B,X,X,X) = Win
-	tictactoe(B,O,B,B,O,B,X,X,X) = Win
-	tictactoe(B,O,B,B,B,O,X,X,X) = Win
-	tictactoe(B,B,X,X,X,O,X,O,O) = Win
-	tictactoe(B,B,X,X,O,X,O,O,X) = Win
-	tictactoe(B,B,X,O,X,X,X,O,O) = Win
-	tictactoe(B,B,X,O,X,X,O,O,X) = Win
-	tictactoe(B,B,X,O,X,O,X,X,O) = Win
-	tictactoe(B,B,X,O,X,O,X,O,X) = Win
-	tictactoe(B,B,X,O,X,O,X,B,B) = Win
-	tictactoe(B,B,X,O,X,B,X,O,B) = Win
-	tictactoe(B,B,X,O,X,B,X,B,O) = Win
-	tictactoe(B,B,X,O,O,X,X,O,X) = Win
-	tictactoe(B,B,X,O,O,X,O,X,X) = Win
-	tictactoe(B,B,X,O,O,X,B,B,X) = Win
-	tictactoe(B,B,X,O,B,X,O,B,X) = Win
-	tictactoe(B,B,X,O,B,X,B,O,X) = Win
-	tictactoe(B,B,X,B,X,O,X,O,B) = Win
-	tictactoe(B,B,X,B,X,O,X,B,O) = Win
-	tictactoe(B,B,X,B,X,B,X,O,O) = Win
-	tictactoe(B,B,X,B,O,X,O,B,X) = Win
-	tictactoe(B,B,X,B,O,X,B,O,X) = Win
-	tictactoe(B,B,X,B,B,X,O,O,X) = Win
-	tictactoe(B,B,O,X,X,X,X,O,O) = Win
-	tictactoe(B,B,O,X,X,X,O,X,O) = Win
-	tictactoe(B,B,O,X,X,X,O,O,X) = Win
-	tictactoe(B,B,O,X,X,X,O,B,B) = Win
-	tictactoe(B,B,O,X,X,X,B,O,B) = Win
-	tictactoe(B,B,O,X,X,X,B,B,O) = Win
-	tictactoe(B,B,O,X,O,O,X,X,X) = Win
-	tictactoe(B,B,O,O,X,O,X,X,X) = Win
-	tictactoe(B,B,O,O,O,X,X,X,X) = Win
-	tictactoe(B,B,O,O,B,B,X,X,X) = Win
-	tictactoe(B,B,O,B,O,B,X,X,X) = Win
-	tictactoe(B,B,O,B,B,O,X,X,X) = Win
-	tictactoe(B,B,B,X,X,X,O,O,B) = Win
-	tictactoe(B,B,B,X,X,X,O,B,O) = Win
-	tictactoe(B,B,B,X,X,X,B,O,O) = Win
-	tictactoe(B,B,B,O,O,B,X,X,X) = Win
-	tictactoe(B,B,B,O,B,O,X,X,X) = Win
-	tictactoe(B,B,B,B,O,O,X,X,X) = Win
-	tictactoe(X,X,O,X,X,O,O,B,O) = Lose
-	tictactoe(X,X,O,X,X,O,B,O,O) = Lose
-	tictactoe(X,X,O,X,X,B,O,O,O) = Lose
-	tictactoe(X,X,O,X,O,X,O,O,B) = Lose
-	tictactoe(X,X,O,X,O,X,O,B,O) = Lose
-	tictactoe(X,X,O,X,O,O,O,X,B) = Lose
-	tictactoe(X,X,O,X,O,O,O,B,X) = Lose
-	tictactoe(X,X,O,X,O,O,B,X,O) = Lose
-	tictactoe(X,X,O,X,O,B,O,X,O) = Lose
-	tictactoe(X,X,O,X,O,B,O,O,X) = Lose
-	tictactoe(X,X,O,X,O,B,O,B,B) = Lose
-	tictactoe(X,X,O,X,B,X,O,O,O) = Lose
-	tictactoe(X,X,O,X,B,O,O,X,O) = Lose
-	tictactoe(X,X,O,X,B,O,B,B,O) = Lose
-	tictactoe(X,X,O,O,X,O,X,B,O) = Lose
-	tictactoe(X,X,O,O,O,X,O,X,B) = Lose
-	tictactoe(X,X,O,O,O,X,O,B,X) = Lose
-	tictactoe(X,X,O,O,O,O,X,X,B) = Lose
-	tictactoe(X,X,O,O,O,O,X,B,X) = Lose
-	tictactoe(X,X,O,O,O,O,B,X,X) = Lose
-	tictactoe(X,X,O,O,O,B,O,X,X) = Lose
-	tictactoe(X,X,O,O,B,O,X,X,O) = Lose
-	tictactoe(X,X,O,B,X,X,O,O,O) = Lose
-	tictactoe(X,X,O,B,X,O,X,O,O) = Lose
-	tictactoe(X,X,O,B,X,O,B,B,O) = Lose
-	tictactoe(X,X,O,B,O,X,O,X,O) = Lose
-	tictactoe(X,X,O,B,O,X,O,O,X) = Lose
-	tictactoe(X,X,O,B,O,X,O,B,B) = Lose
-	tictactoe(X,X,O,B,O,O,X,X,O) = Lose
-	tictactoe(X,X,O,B,O,O,O,X,X) = Lose
-	tictactoe(X,X,O,B,O,B,O,X,B) = Lose
-	tictactoe(X,X,O,B,O,B,O,B,X) = Lose
-	tictactoe(X,X,O,B,B,O,X,B,O) = Lose
-	tictactoe(X,X,O,B,B,O,B,X,O) = Lose
-	tictactoe(X,X,B,X,X,O,O,O,O) = Lose
-	tictactoe(X,X,B,X,O,X,O,O,O) = Lose
-	tictactoe(X,X,B,X,B,B,O,O,O) = Lose
-	tictactoe(X,X,B,O,X,X,O,O,O) = Lose
-	tictactoe(X,X,B,O,O,O,X,X,O) = Lose
-	tictactoe(X,X,B,O,O,O,X,O,X) = Lose
-	tictactoe(X,X,B,O,O,O,X,B,B) = Lose
-	tictactoe(X,X,B,O,O,O,O,X,X) = Lose
-	tictactoe(X,X,B,O,O,O,B,X,B) = Lose
-	tictactoe(X,X,B,O,O,O,B,B,X) = Lose
-	tictactoe(X,X,B,B,X,B,O,O,O) = Lose
-	tictactoe(X,X,B,B,B,X,O,O,O) = Lose
-	tictactoe(X,O,X,X,X,B,O,O,O) = Lose
-	tictactoe(X,O,X,X,O,X,O,O,B) = Lose
-	tictactoe(X,O,X,X,O,X,B,O,O) = Lose
-	tictactoe(X,O,X,X,O,O,B,O,X) = Lose
-	tictactoe(X,O,X,X,O,B,O,O,X) = Lose
-	tictactoe(X,O,X,X,O,B,B,O,B) = Lose
-	tictactoe(X,O,X,X,B,X,O,O,O) = Lose
-	tictactoe(X,O,X,O,O,X,X,O,B) = Lose
-	tictactoe(X,O,X,O,O,O,X,X,B) = Lose
-	tictactoe(X,O,X,O,O,O,X,B,X) = Lose
-	tictactoe(X,O,X,O,O,O,B,X,X) = Lose
-	tictactoe(X,O,X,O,O,B,X,O,X) = Lose
-	tictactoe(X,O,X,B,X,X,O,O,O) = Lose
-	tictactoe(X,O,X,B,O,X,X,O,O) = Lose
-	tictactoe(X,O,X,B,O,X,B,O,B) = Lose
-	tictactoe(X,O,X,B,O,O,X,O,X) = Lose
-	tictactoe(X,O,X,B,O,B,X,O,B) = Lose
-	tictactoe(X,O,X,B,O,B,B,O,X) = Lose
-	tictactoe(X,O,O,X,X,O,B,X,O) = Lose
-	tictactoe(X,O,O,X,O,X,O,X,B) = Lose
-	tictactoe(X,O,O,X,O,X,O,B,X) = Lose
-	tictactoe(X,O,O,X,O,X,B,O,X) = Lose
-	tictactoe(X,O,O,X,O,B,O,X,X) = Lose
-	tictactoe(X,O,O,B,X,O,X,X,O) = Lose
-	tictactoe(X,O,O,B,O,X,X,O,X) = Lose
-	tictactoe(X,O,O,B,O,X,O,X,X) = Lose
-	tictactoe(X,O,B,X,O,X,O,O,X) = Lose
-	tictactoe(X,O,B,X,O,X,B,O,B) = Lose
-	tictactoe(X,O,B,X,O,B,B,O,X) = Lose
-	tictactoe(X,O,B,O,O,X,X,O,X) = Lose
-	tictactoe(X,O,B,B,O,X,X,O,B) = Lose
-	tictactoe(X,O,B,B,O,X,B,O,X) = Lose
-	tictactoe(X,O,B,B,O,B,X,O,X) = Lose
-	tictactoe(X,B,X,X,X,O,O,O,O) = Lose
-	tictactoe(X,B,X,X,O,X,O,O,O) = Lose
-	tictactoe(X,B,X,X,B,B,O,O,O) = Lose
-	tictactoe(X,B,X,O,X,X,O,O,O) = Lose
-	tictactoe(X,B,X,O,O,O,X,X,O) = Lose
-	tictactoe(X,B,X,O,O,O,X,O,X) = Lose
-	tictactoe(X,B,X,O,O,O,X,B,B) = Lose
-	tictactoe(X,B,X,O,O,O,O,X,X) = Lose
-	tictactoe(X,B,X,O,O,O,B,X,B) = Lose
-	tictactoe(X,B,X,O,O,O,B,B,X) = Lose
-	tictactoe(X,B,X,B,X,B,O,O,O) = Lose
-	tictactoe(X,B,X,B,B,X,O,O,O) = Lose
-	tictactoe(X,B,O,X,X,O,O,X,O) = Lose
-	tictactoe(X,B,O,X,X,O,B,B,O) = Lose
-	tictactoe(X,B,O,X,O,X,O,X,O) = Lose
-	tictactoe(X,B,O,X,O,X,O,O,X) = Lose
-	tictactoe(X,B,O,X,O,X,O,B,B) = Lose
-	tictactoe(X,B,O,X,O,O,O,X,X) = Lose
-	tictactoe(X,B,O,X,O,B,O,X,B) = Lose
-	tictactoe(X,B,O,X,O,B,O,B,X) = Lose
-	tictactoe(X,B,O,X,B,O,B,X,O) = Lose
-	tictactoe(X,B,O,O,X,O,X,X,O) = Lose
-	tictactoe(X,B,O,O,O,X,O,X,X) = Lose
-	tictactoe(X,B,O,B,X,O,X,B,O) = Lose
-	tictactoe(X,B,O,B,X,O,B,X,O) = Lose
-	tictactoe(X,B,O,B,O,X,O,X,B) = Lose
-	tictactoe(X,B,O,B,O,X,O,B,X) = Lose
-	tictactoe(X,B,O,B,O,B,O,X,X) = Lose
-	tictactoe(X,B,O,B,B,O,X,X,O) = Lose
-	tictactoe(X,B,B,X,X,B,O,O,O) = Lose
-	tictactoe(X,B,B,X,B,X,O,O,O) = Lose
-	tictactoe(X,B,B,O,O,O,X,X,B) = Lose
-	tictactoe(X,B,B,O,O,O,X,B,X) = Lose
-	tictactoe(X,B,B,O,O,O,B,X,X) = Lose
-	tictactoe(X,B,B,B,X,X,O,O,O) = Lose
-	tictactoe(O,X,X,X,X,B,O,O,O) = Lose
-	tictactoe(O,X,X,X,O,X,O,B,O) = Lose
-	tictactoe(O,X,X,X,O,X,B,O,O) = Lose
-	tictactoe(O,X,X,X,O,O,X,B,O) = Lose
-	tictactoe(O,X,X,X,O,O,B,X,O) = Lose
-	tictactoe(O,X,X,X,O,B,X,O,O) = Lose
-	tictactoe(O,X,X,X,O,B,O,X,O) = Lose
-	tictactoe(O,X,X,X,O,B,B,B,O) = Lose
-	tictactoe(O,X,X,X,B,X,O,O,O) = Lose
-	tictactoe(O,X,X,O,X,X,O,O,B) = Lose
-	tictactoe(O,X,X,O,X,X,O,B,O) = Lose
-	tictactoe(O,X,X,O,X,O,O,B,X) = Lose
-	tictactoe(O,X,X,O,X,B,O,O,X) = Lose
-	tictactoe(O,X,X,O,X,B,O,B,B) = Lose
-	tictactoe(O,X,X,O,O,X,X,B,O) = Lose
-	tictactoe(O,X,X,O,O,X,O,X,B) = Lose
-	tictactoe(O,X,X,O,O,X,B,X,O) = Lose
-	tictactoe(O,X,X,O,O,O,X,X,B) = Lose
-	tictactoe(O,X,X,O,O,O,X,B,X) = Lose
-	tictactoe(O,X,X,O,O,O,B,X,X) = Lose
-	tictactoe(O,X,X,O,O,B,X,X,O) = Lose
-	tictactoe(O,X,X,O,O,B,O,X,X) = Lose
-	tictactoe(O,X,X,O,B,X,O,X,O) = Lose
-	tictactoe(O,X,X,O,B,X,O,B,B) = Lose
-	tictactoe(O,X,X,O,B,O,O,X,X) = Lose
-	tictactoe(O,X,X,O,B,B,O,X,B) = Lose
-	tictactoe(O,X,X,O,B,B,O,B,X) = Lose
-	tictactoe(O,X,X,B,X,X,O,O,O) = Lose
-	tictactoe(O,X,X,B,O,X,X,O,O) = Lose
-	tictactoe(O,X,X,B,O,X,O,X,O) = Lose
-	tictactoe(O,X,X,B,O,X,B,B,O) = Lose
-	tictactoe(O,X,X,B,O,O,X,X,O) = Lose
-	tictactoe(O,X,X,B,O,B,X,B,O) = Lose
-	tictactoe(O,X,X,B,O,B,B,X,O) = Lose
-	tictactoe(O,X,O,X,X,O,X,B,O) = Lose
-	tictactoe(O,X,O,X,O,X,X,B,O) = Lose
-	tictactoe(O,X,O,X,O,X,O,X,B) = Lose
-	tictactoe(O,X,O,X,O,X,O,B,X) = Lose
-	tictactoe(O,X,O,X,O,X,B,X,O) = Lose
-	tictactoe(O,X,O,X,O,B,X,X,O) = Lose
-	tictactoe(O,X,O,X,O,B,O,X,X) = Lose
-	tictactoe(O,X,O,X,B,O,X,X,O) = Lose
-	tictactoe(O,X,O,O,X,X,O,B,X) = Lose
-	tictactoe(O,X,O,O,B,X,O,X,X) = Lose
-	tictactoe(O,X,O,B,O,X,X,X,O) = Lose
-	tictactoe(O,X,O,B,O,X,O,X,X) = Lose
-	tictactoe(O,X,B,X,O,X,X,O,O) = Lose
-	tictactoe(O,X,B,X,O,X,O,X,O) = Lose
-	tictactoe(O,X,B,X,O,X,B,B,O) = Lose
-	tictactoe(O,X,B,X,O,O,X,X,O) = Lose
-	tictactoe(O,X,B,X,O,B,X,B,O) = Lose
-	tictactoe(O,X,B,X,O,B,B,X,O) = Lose
-	tictactoe(O,X,B,O,X,X,O,O,X) = Lose
-	tictactoe(O,X,B,O,X,X,O,B,B) = Lose
-	tictactoe(O,X,B,O,X,B,O,B,X) = Lose
-	tictactoe(O,X,B,O,O,X,X,X,O) = Lose
-	tictactoe(O,X,B,O,O,X,O,X,X) = Lose
-	tictactoe(O,X,B,O,B,X,O,X,B) = Lose
-	tictactoe(O,X,B,O,B,X,O,B,X) = Lose
-	tictactoe(O,X,B,O,B,B,O,X,X) = Lose
-	tictactoe(O,X,B,B,O,X,X,B,O) = Lose
-	tictactoe(O,X,B,B,O,X,B,X,O) = Lose
-	tictactoe(O,X,B,B,O,B,X,X,O) = Lose
-	tictactoe(O,O,X,X,O,X,X,O,B) = Lose
-	tictactoe(O,O,X,X,O,X,X,B,O) = Lose
-	tictactoe(O,O,X,X,O,X,B,X,O) = Lose
-	tictactoe(O,O,X,X,O,B,X,X,O) = Lose
-	tictactoe(O,O,X,X,O,B,X,O,X) = Lose
-	tictactoe(O,O,X,O,X,X,O,X,B) = Lose
-	tictactoe(O,O,X,O,X,B,O,X,X) = Lose
-	tictactoe(O,O,X,B,O,X,X,X,O) = Lose
-	tictactoe(O,O,O,X,X,O,X,X,B) = Lose
-	tictactoe(O,O,O,X,X,O,X,B,X) = Lose
-	tictactoe(O,O,O,X,X,O,B,X,X) = Lose
-	tictactoe(O,O,O,X,X,B,X,X,O) = Lose
-	tictactoe(O,O,O,X,X,B,X,O,X) = Lose
-	tictactoe(O,O,O,X,X,B,X,B,B) = Lose
-	tictactoe(O,O,O,X,X,B,O,X,X) = Lose
-	tictactoe(O,O,O,X,X,B,B,X,B) = Lose
-	tictactoe(O,O,O,X,X,B,B,B,X) = Lose
-	tictactoe(O,O,O,X,O,X,X,X,B) = Lose
-	tictactoe(O,O,O,X,O,X,X,B,X) = Lose
-	tictactoe(O,O,O,X,O,X,B,X,X) = Lose
-	tictactoe(O,O,O,X,B,X,X,X,O) = Lose
-	tictactoe(O,O,O,X,B,X,X,O,X) = Lose
-	tictactoe(O,O,O,X,B,X,X,B,B) = Lose
-	tictactoe(O,O,O,X,B,X,O,X,X) = Lose
-	tictactoe(O,O,O,X,B,X,B,X,B) = Lose
-	tictactoe(O,O,O,X,B,X,B,B,X) = Lose
-	tictactoe(O,O,O,X,B,B,X,X,B) = Lose
-	tictactoe(O,O,O,X,B,B,X,B,X) = Lose
-	tictactoe(O,O,O,X,B,B,B,X,X) = Lose
-	tictactoe(O,O,O,O,X,X,X,X,B) = Lose
-	tictactoe(O,O,O,O,X,X,X,B,X) = Lose
-	tictactoe(O,O,O,O,X,X,B,X,X) = Lose
-	tictactoe(O,O,O,B,X,X,X,X,O) = Lose
-	tictactoe(O,O,O,B,X,X,X,O,X) = Lose
-	tictactoe(O,O,O,B,X,X,X,B,B) = Lose
-	tictactoe(O,O,O,B,X,X,O,X,X) = Lose
-	tictactoe(O,O,O,B,X,X,B,X,B) = Lose
-	tictactoe(O,O,O,B,X,X,B,B,X) = Lose
-	tictactoe(O,O,O,B,X,B,X,X,B) = Lose
-	tictactoe(O,O,O,B,X,B,X,B,X) = Lose
-	tictactoe(O,O,O,B,X,B,B,X,X) = Lose
-	tictactoe(O,O,O,B,B,X,X,X,B) = Lose
-	tictactoe(O,O,O,B,B,X,X,B,X) = Lose
-	tictactoe(O,O,O,B,B,X,B,X,X) = Lose
-	tictactoe(O,O,B,X,O,X,X,X,O) = Lose
-	tictactoe(O,O,B,X,O,X,X,O,X) = Lose
-	tictactoe(O,O,B,O,X,X,O,X,X) = Lose
-	tictactoe(O,B,X,X,O,X,X,O,O) = Lose
-	tictactoe(O,B,X,X,O,X,O,X,O) = Lose
-	tictactoe(O,B,X,X,O,X,B,B,O) = Lose
-	tictactoe(O,B,X,X,O,O,X,X,O) = Lose
-	tictactoe(O,B,X,X,O,B,X,B,O) = Lose
-	tictactoe(O,B,X,X,O,B,B,X,O) = Lose
-	tictactoe(O,B,X,O,X,X,O,X,O) = Lose
-	tictactoe(O,B,X,O,X,X,O,B,B) = Lose
-	tictactoe(O,B,X,O,X,O,O,X,X) = Lose
-	tictactoe(O,B,X,O,X,B,O,X,B) = Lose
-	tictactoe(O,B,X,O,X,B,O,B,X) = Lose
-	tictactoe(O,B,X,O,O,X,X,X,O) = Lose
-	tictactoe(O,B,X,O,B,X,O,X,B) = Lose
-	tictactoe(O,B,X,O,B,B,O,X,X) = Lose
-	tictactoe(O,B,X,B,O,X,X,B,O) = Lose
-	tictactoe(O,B,X,B,O,X,B,X,O) = Lose
-	tictactoe(O,B,X,B,O,B,X,X,O) = Lose
-	tictactoe(O,B,O,X,X,O,X,X,O) = Lose
-	tictactoe(O,B,O,X,O,X,X,X,O) = Lose
-	tictactoe(O,B,O,X,O,X,O,X,X) = Lose
-	tictactoe(O,B,O,O,X,X,O,X,X) = Lose
-	tictactoe(O,B,B,X,O,X,X,B,O) = Lose
-	tictactoe(O,B,B,X,O,X,B,X,O) = Lose
-	tictactoe(O,B,B,X,O,B,X,X,O) = Lose
-	tictactoe(O,B,B,O,X,X,O,X,B) = Lose
-	tictactoe(O,B,B,O,X,X,O,B,X) = Lose
-	tictactoe(O,B,B,O,X,B,O,X,X) = Lose
-	tictactoe(O,B,B,O,B,X,O,X,X) = Lose
-	tictactoe(O,B,B,B,O,X,X,X,O) = Lose
-	tictactoe(B,X,X,X,X,O,O,O,O) = Lose
-	tictactoe(B,X,X,X,O,X,O,O,O) = Lose
-	tictactoe(B,X,X,X,B,B,O,O,O) = Lose
-	tictactoe(B,X,X,O,X,X,O,O,O) = Lose
-	tictactoe(B,X,X,O,O,O,X,X,O) = Lose
-	tictactoe(B,X,X,O,O,O,X,O,X) = Lose
-	tictactoe(B,X,X,O,O,O,X,B,B) = Lose
-	tictactoe(B,X,X,O,O,O,O,X,X) = Lose
-	tictactoe(B,X,X,O,O,O,B,X,B) = Lose
-	tictactoe(B,X,X,O,O,O,B,B,X) = Lose
-	tictactoe(B,X,X,B,X,B,O,O,O) = Lose
-	tictactoe(B,X,X,B,B,X,O,O,O) = Lose
-	tictactoe(B,X,O,X,X,O,X,O,O) = Lose
-	tictactoe(B,X,O,X,X,O,B,B,O) = Lose
-	tictactoe(B,X,O,X,O,X,O,X,O) = Lose
-	tictactoe(B,X,O,X,O,X,O,O,X) = Lose
-	tictactoe(B,X,O,X,O,X,O,B,B) = Lose
-	tictactoe(B,X,O,X,O,O,X,X,O) = Lose
-	tictactoe(B,X,O,X,O,O,O,X,X) = Lose
-	tictactoe(B,X,O,X,O,B,O,X,B) = Lose
-	tictactoe(B,X,O,X,O,B,O,B,X) = Lose
-	tictactoe(B,X,O,X,B,O,X,B,O) = Lose
-	tictactoe(B,X,O,X,B,O,B,X,O) = Lose
-	tictactoe(B,X,O,O,O,X,O,X,X) = Lose
-	tictactoe(B,X,O,B,X,O,X,B,O) = Lose
-	tictactoe(B,X,O,B,O,X,O,X,B) = Lose
-	tictactoe(B,X,O,B,O,X,O,B,X) = Lose
-	tictactoe(B,X,O,B,O,B,O,X,X) = Lose
-	tictactoe(B,X,O,B,B,O,X,X,O) = Lose
-	tictactoe(B,X,B,X,X,B,O,O,O) = Lose
-	tictactoe(B,X,B,X,B,X,O,O,O) = Lose
-	tictactoe(B,X,B,O,O,O,X,X,B) = Lose
-	tictactoe(B,X,B,O,O,O,X,B,X) = Lose
-	tictactoe(B,X,B,O,O,O,B,X,X) = Lose
-	tictactoe(B,X,B,B,X,X,O,O,O) = Lose
-	tictactoe(B,O,X,X,O,X,X,O,O) = Lose
-	tictactoe(B,O,X,X,O,X,B,O,B) = Lose
-	tictactoe(B,O,X,X,O,O,X,O,X) = Lose
-	tictactoe(B,O,X,X,O,B,X,O,B) = Lose
-	tictactoe(B,O,X,X,O,B,B,O,X) = Lose
-	tictactoe(B,O,X,B,O,X,X,O,B) = Lose
-	tictactoe(B,O,X,B,O,B,X,O,X) = Lose
-	tictactoe(B,O,O,X,X,O,X,X,O) = Lose
-	tictactoe(B,O,O,X,O,X,X,O,X) = Lose
-	tictactoe(B,O,O,X,O,X,O,X,X) = Lose
-	tictactoe(B,O,B,X,O,X,X,O,B) = Lose
-	tictactoe(B,O,B,X,O,X,B,O,X) = Lose
-	tictactoe(B,O,B,X,O,B,X,O,X) = Lose
-	tictactoe(B,O,B,B,O,X,X,O,X) = Lose
-	tictactoe(B,B,X,X,X,B,O,O,O) = Lose
-	tictactoe(B,B,X,X,B,X,O,O,O) = Lose
-	tictactoe(B,B,X,O,O,O,X,X,B) = Lose
-	tictactoe(B,B,X,O,O,O,X,B,X) = Lose
-	tictactoe(B,B,X,O,O,O,B,X,X) = Lose
-	tictactoe(B,B,X,B,X,X,O,O,O) = Lose
-	tictactoe(B,B,O,X,X,O,X,B,O) = Lose
-	tictactoe(B,B,O,X,X,O,B,X,O) = Lose
-	tictactoe(B,B,O,X,O,X,O,X,B) = Lose
-	tictactoe(B,B,O,X,O,X,O,B,X) = Lose
-	tictactoe(B,B,O,X,O,B,O,X,X) = Lose
-	tictactoe(B,B,O,X,B,O,X,X,O) = Lose
-	tictactoe(B,B,O,B,X,O,X,X,O) = Lose
-	tictactoe(B,B,O,B,O,X,O,X,X) = Lose
-	tictactoe(X,X,O,O,X,X,X,O,O) = Lose
-	tictactoe(X,X,O,O,O,X,X,X,O) = Lose
-	tictactoe(X,X,O,O,O,X,X,O,X) = Lose
-	tictactoe(X,O,X,X,X,O,O,X,O) = Lose
-	tictactoe(X,O,X,X,O,X,O,X,O) = Lose
-	tictactoe(X,O,X,X,O,O,O,X,X) = Lose
-	tictactoe(X,O,X,O,X,X,O,X,O) = Lose
-	tictactoe(X,O,X,O,O,X,X,X,O) = Lose
-	tictactoe(X,O,O,O,X,X,X,X,O) = Lose
-	tictactoe(O,X,X,X,X,O,O,O,X) = Lose
-	tictactoe(O,X,X,X,O,O,X,O,X) = Lose
-	tictactoe(O,X,X,X,O,O,O,X,X) = Lose
-	tictactoe(O,X,O,X,X,O,X,O,X) = Lose
-	tictactoe(O,X,O,X,O,X,X,O,X) = Lose
-	tictactoe(O,X,O,O,X,X,X,O,X) = Lose
-	tictactoe(O,O,X,X,X,O,O,X,X) = Lose
-	|]
-
-
-revdef = [d| rev [] = []
-             rev [x] = [x]
-             rev [x,y] = [y,x]
-             rev [x,y,z] = [z,y,x]
-             rev [w,x,y,z] = [z,y,x,w]
-          |]
-
-initdef = [d| ini [] = []
-              ini [w] = w
-              ini [x,w] = x 
-              ini [y,x,w] = y
-              ini [z,y,x,w] = z
-           |]
-
-lastdef = [d| lst [w] = w
-              lst [x,w] = w 
-              lst [y,x,w] = w
-              lst [z,y,x,w] = w
-           |]
-
-revinitdef = [d| rinit [w] = []
-                 rinit [x,w] = [x] 
-                 rinit [y,x,w] = [x,y]
-                 rinit [z,y,x,w] = [x,y,z]
-             |]
-           
-
-                               
-fundefs =    [d| rev [] = []
-                 rev [x] = [x]
-                 rev [x,y] = [y,x]
-                 rev [x,y,z] = [z,y,x]
-                 ini [w] = w
-                 ini [x,w] = x 
-                 ini [y,x,w] = y
-                 ini [z,y,x,w] = z
-              |]
-              
-data Weather = Sunny | Rain | Overcast
-             | Hot | Cool | Mild | Warm | Cold
-             | High |  Normal 
-             | Weak |Strong  
-             | Change | Same
-               
-playTennisDef = [d|          
-    playTennis (Sunny,Hot,High,Weak)         = False
-    playTennis (Sunny,Hot,High,Strong)       = False
-    playTennis (Overcast,Hot,High,Weak)      = True
-    playTennis (Rain,Mild,High,Weak)         = True
-    playTennis (Rain,Cool,Normal,Weak)       = True
-    playTennis (Rain,Cool,Normal,Strong)     = False
-    playTennis (Overcast,Cool,Normal,Strong) = True
-    playTennis (Sunny,Mild,High,Weak)        = False
-    playTennis (Sunny,Cool,Normal,Weak)      = True 
-    playTennis (Rain,Mild,Normal,Weak)       = True
-    playTennis (Sunny,Mild,Normal,Strong)    = True
-    playTennis (Overcast,Mild,High,Strong)   = True
-    playTennis (Overcast,Hot,Normal,Weak)    = True
-    playTennis (Rain,Mild,High,Strong)       = False
-    |]
-    
-enjoySportDef = [d|    
-    enjoySport(Sunny,Warm,Normal,Strong,Warm,Same) = True
-    enjoySport(Sunny,Warm,High,Strong,Warm,Same)   = True
-    enjoySport(Rain,Cold,High,Strong,Warm,Change) = False
-    enjoySport(Sunny,Warm,High,Strong,Cool,Change) = True
-    |]
-
-data LAge = Young | PrePresbyopic | Presbyopic
-data LPrespricption = Myope | Hypermetrope
-data LAstigmatic = No | Yes
-data LTears = Reduced | Norml
-data LCLType = None | Hard | Soft
-
-lensesDef = [d|
-
-	lenses (Young,Myope,No,Reduced) = None
-	lenses (Young,Myope,No,Norml) = Soft
-	lenses (Young,Myope,Yes,Reduced) = None
-	lenses (Young,Myope,Yes,Norml) = Hard
-	lenses (Young,Hypermetrope,No,Reduced) = None
-	lenses (Young,Hypermetrope,No,Norml) = Soft
-	lenses (Young,Hypermetrope,Yes,Reduced) = None
-	lenses (Young,Hypermetrope,Yes,Norml) = Hard
-	lenses (PrePresbyopic,Myope,No,Reduced) = None
-	lenses (PrePresbyopic,Myope,No,Norml) = Soft
-	lenses (PrePresbyopic,Myope,Yes,Reduced) = None
-	lenses (PrePresbyopic,Myope,Yes,Norml) = Hard
-	lenses (PrePresbyopic,Hypermetrope,No,Reduced) = None
-	lenses (PrePresbyopic,Hypermetrope,No,Norml) = Soft
-	lenses (PrePresbyopic,Hypermetrope,Yes,Reduced) = None
-	lenses (PrePresbyopic,Hypermetrope,Yes,Norml) = None
-	lenses (Presbyopic,Myope,No,Reduced) = None
-	lenses (Presbyopic,Myope,No,Norml) = None
-	lenses (Presbyopic,Myope,Yes,Reduced) = None
-	lenses (Presbyopic,Myope,Yes,Norml) = Hard
-	lenses (Presbyopic,Hypermetrope,No,Reduced) = None
-	lenses (Presbyopic,Hypermetrope,No,Norml) = Soft
-	lenses (Presbyopic,Hypermetrope,Yes,Reduced) = None
-	lenses (Presbyopic,Hypermetrope,Yes,Norml) = None	
-	|]
-	
+
rmfile ./src/ExampleDefs.hs
addfile ./src/Examples.hs
hunk ./src/Examples.hs 1
-
+{-# OPTIONS_GHC -fglasgow-exts #-}
+module Syntax.TestModule where
+
+data Peano = O | S Peano
+
+appenD, weave :: [a] -> [a] -> [a]
+appenD [][] = []
+appenD [a][] = [a]
+appenD [][c] = [c]
+appenD [a][c] = [a,c]
+appenD [a,b][] = [a,b]
+appenD [][c,d] = [c,d]
+appenD [a,b][c] = [a,b,c]
+appenD [a][c,d] = [a,c,d]
+appenD [a,b][c,d] = [a,b,c,d]
+
+weave [] [] = []
+weave [a][] = [a]
+weave [][c] = [c]
+weave [a][c] = [a,c]
+weave [a,b][] = [a,b]
+weave [][c,d] = [c,d]
+weave [a,b][c] = [a,c,b]
+weave [a][c,d] = [a,c,d]
+weave [a,b][c,d] = [a,c,b,d]
+
+oddpos, evenpos :: [a] -> [a]
+oddpos [] = []
+oddpos [a] = [a]
+oddpos [a,b] = [a]
+oddpos [a,b,c] = [a,c]
+oddpos [a,b,c,d] = [a,c]
+oddpos [a,b,c,d,e] = [a,c,e]
+
+evenpos [] = []
+evenpos [a] = []
+evenpos [a,b] = [b]
+evenpos [a,b,c] = [b]
+evenpos [a,b,c,d] = [b,d]
+evenpos [a,b,c,d,e] = [b,d]
+evenpos [a,b,c,d,e,f] = [b,d,f]
+
+reversE :: [a] -> [a]
+reversE [] = []
+reversE [a] =[a]
+reversE [a,b] = [b,a]
+reversE [a,b,c] = [c,b,a]
+reversE [a,b,c,d] = [d,c,b,a]
+--reversE [a,b,c,d,e] = [e,d,c,b,a]
+--reversE [a,b,c,d,e,f] = [f,e,d,c,b,a]
+
+lasT, heaD :: [a] -> a
+lasT [a] = a
+lasT [a,b] = b
+lasT [a,b,c] = c
+lasT [a,b,c,d] = d
+
+heaD [a] = a
+heaD [a,b] = a
+heaD [a,b,c] = a
+heaD [a,b,c,d] = a
+
+iniT, taiL :: [a] -> [a]
+iniT [a] = []
+iniT [a,b] = [a]
+iniT [a,b,c] = [a,b]
+iniT [a,b,c,d] = [a,b,c]
+
+taiL [a] = []
+taiL [a,b] = [b]
+taiL [a,b,c] = [b,c]
+taiL [a,b,c,d] = [b,c,d]
+
+swap, switch, repfst,replst :: [a] -> [a]
+swap [] = []
+swap [a] = [a]
+swap [a,b] = [b,a]
+swap [a,b,c] = [b,a,c]
+swap [a,b,c,d] = [b,a,d,c]
+--swap [a,b,c,d,e] = [b,a,d,c,e]
+--swap [a,b,c,d,e,f] = [b,a,d,c,f,e]
+
+switch [] = []
+switch [a] = [a]
+switch [a,b] = [b,a]
+switch [a,b,c] = [c,b,a]
+switch [a,b,c,d] = [d,b,c,a]
+--switch [a,b,c,d,e] = [e,b,c,d,a]
+--switch [a,b,c,d,e,f] = [f,b,c,d,e,a]
+
+repfst [] = []
+repfst [a] = [a]
+repfst [a,b] = [a,a]
+repfst [a,b,c] = [a,a,a]
+repfst [a,b,c,d] = [a,a,a,a]
+--repfst [a,b,c,d,e] = [a,a,a,a,a]
+--repfst [a,b,c,d,e,f] = [a,a,a,a,a,a]
+
+replst [] = []
+replst [a] = [a]
+replst [a,b] = [b,b]
+replst [a,b,c] = [c,c,c]
+replst [a,b,c,d] = [d,d,d,d]
+replst [a,b,c,d,e] = [e,e,e,e,e]
+--replst [a,b,c,d,e,f] = [f,f,f,f,f,f]
+
+snoc :: a -> [a] -> [a]
+snoc a []            = [a]
+snoc b [a]           = [a,b]
+snoc c [a,b]         = [a,b,c]
+snoc d [a,b,c]       = [a,b,c,d]
+--snoc e [a,b,c,d]   = [a,b,c,d,e]
+--snoc f [a,b,c,d,e] = [a,b,c,d,e,f]
+
+data Color = Purple | Yellow
+data Size = Large | Small
+data Act = Dip | Stretch
+data Age = Adult | Child
+data Inflate = FF | TT
+
+balloons :: (Color,Size,Act,Age) -> Inflate
+balloons(Yellow,Small,Stretch,Adult) = TT
+balloons(Yellow,Small,Stretch,Child) = TT
+balloons(Yellow,Small,Dip,Adult) = TT
+balloons(Yellow,Small,Dip,Child) = TT
+balloons(Yellow,Large,Stretch,Adult) = FF
+balloons(Yellow,Large,Stretch,Child) = FF
+balloons(Yellow,Large,Dip,Adult) = FF
+balloons(Yellow,Large,Dip,Child) = FF
+balloons(Purple,Small,Stretch,Adult) = FF
+balloons(Purple,Small,Stretch,Child) = FF
+balloons(Purple,Small,Dip,Adult) = FF
+balloons(Purple,Small,Dip,Child) = FF
+balloons(Purple,Large,Stretch,Adult) = FF
+balloons(Purple,Large,Stretch,Child) = FF
+balloons(Purple,Large,Dip,Adult) = FF
+balloons(Purple,Large,Dip,Child) = FF
+
+data Weather = Sunny | Rain | Overcast
+             | Hot | Cool | Mild | Warm | Cold
+             | High |  Normal 
+             | Weak |Strong  
+             | Change | Same
+               
+playTennis :: (Weather, Weather, Weather, Weather) -> Bool        
+playTennis (Sunny,Hot,High,Weak)         = False
+playTennis (Sunny,Hot,High,Strong)       = False
+playTennis (Overcast,Hot,High,Weak)      = True
+playTennis (Rain,Mild,High,Weak)         = True
+playTennis (Rain,Cool,Normal,Weak)       = True
+playTennis (Rain,Cool,Normal,Strong)     = False
+playTennis (Overcast,Cool,Normal,Strong) = True
+playTennis (Sunny,Mild,High,Weak)        = False
+playTennis (Sunny,Cool,Normal,Weak)      = True 
+playTennis (Rain,Mild,Normal,Weak)       = True
+playTennis (Sunny,Mild,Normal,Strong)    = True
+playTennis (Overcast,Mild,High,Strong)   = True
+playTennis (Overcast,Hot,Normal,Weak)    = True
+playTennis (Rain,Mild,High,Strong)       = False    
+
+enjoySport :: (Weather, Weather, Weather, Weather, Weather, Weather) -> Bool   
+enjoySport(Sunny,Warm,Normal,Strong,Warm,Same) = True
+enjoySport(Sunny,Warm,High,Strong,Warm,Same)   = True
+enjoySport(Rain,Cold,High,Strong,Warm,Change) = False
+enjoySport(Sunny,Warm,High,Strong,Cool,Change) = True
+
+data LAge = Young | PrePresbyopic | Presbyopic
+data LPrescription = Myope | Hypermetrope
+data LAstigmatic = No | Yes
+data LTears = Reduced | Norml
+data LCLType = None | Hard | Soft
+
+lenses :: (LAge, LPrescription, LAstigmatic, LTears) -> LCLType 
+lenses (Young,Myope,No,Reduced) = None
+lenses (Young,Myope,No,Norml) = Soft
+lenses (Young,Myope,Yes,Reduced) = None
+lenses (Young,Myope,Yes,Norml) = Hard
+lenses (Young,Hypermetrope,No,Reduced) = None
+lenses (Young,Hypermetrope,No,Norml) = Soft
+lenses (Young,Hypermetrope,Yes,Reduced) = None
+lenses (Young,Hypermetrope,Yes,Norml) = Hard
+lenses (PrePresbyopic,Myope,No,Reduced) = None
+lenses (PrePresbyopic,Myope,No,Norml) = Soft
+lenses (PrePresbyopic,Myope,Yes,Reduced) = None
+lenses (PrePresbyopic,Myope,Yes,Norml) = Hard
+lenses (PrePresbyopic,Hypermetrope,No,Reduced) = None
+lenses (PrePresbyopic,Hypermetrope,No,Norml) = Soft
+lenses (PrePresbyopic,Hypermetrope,Yes,Reduced) = None
+lenses (PrePresbyopic,Hypermetrope,Yes,Norml) = None
+lenses (Presbyopic,Myope,No,Reduced) = None
+lenses (Presbyopic,Myope,No,Norml) = None
+lenses (Presbyopic,Myope,Yes,Reduced) = None
+lenses (Presbyopic,Myope,Yes,Norml) = Hard
+lenses (Presbyopic,Hypermetrope,No,Reduced) = None
+lenses (Presbyopic,Hypermetrope,No,Norml) = Soft
+lenses (Presbyopic,Hypermetrope,Yes,Reduced) = None
+lenses (Presbyopic,Hypermetrope,Yes,Norml) = None   
+
+--
+--data Tile  = B | O | X
+--data Class = Lose | Win
+--
+--tictactoe :: [Tile]-> Class
+--tictactoe[X,X,X,X,O,O,X,O,O] = Win
+--tictactoe[X,X,X,X,O,O,O,X,O] = Win
+--tictactoe[X,X,X,X,O,O,O,O,X] = Win
+--tictactoe[X,X,X,X,O,O,O,B,B] = Win
+--tictactoe[X,X,X,X,O,O,B,O,B] = Win
+--tictactoe[X,X,X,X,O,O,B,B,O] = Win
+--tictactoe[X,X,X,X,O,B,O,O,B] = Win
+--tictactoe[X,X,X,X,O,B,O,B,O] = Win
+--tictactoe[X,X,X,X,O,B,B,O,O] = Win
+--tictactoe[X,X,X,X,B,O,O,O,B] = Win
+--tictactoe[X,X,X,X,B,O,O,B,O] = Win
+--tictactoe[X,X,X,X,B,O,B,O,O] = Win
+--tictactoe[X,X,X,O,X,O,X,O,O] = Win
+--tictactoe[X,X,X,O,X,O,O,X,O] = Win
+--tictactoe[X,X,X,O,X,O,O,O,X] = Win
+--tictactoe[X,X,X,O,X,O,O,B,B] = Win
+--tictactoe[X,X,X,O,X,O,B,O,B] = Win
+--tictactoe[X,X,X,O,X,O,B,B,O] = Win
+--tictactoe[X,X,X,O,X,B,O,O,B] = Win
+--tictactoe[X,X,X,O,X,B,O,B,O] = Win
+--tictactoe[X,X,X,O,X,B,B,O,O] = Win
+--tictactoe[X,X,X,O,O,X,X,O,O] = Win
+--tictactoe[X,X,X,O,O,X,O,X,O] = Win
+--tictactoe[X,X,X,O,O,X,O,O,X] = Win
+--tictactoe[X,X,X,O,O,X,O,B,B] = Win
+--tictactoe[X,X,X,O,O,X,B,O,B] = Win
+--tictactoe[X,X,X,O,O,X,B,B,O] = Win
+--tictactoe[X,X,X,O,O,B,X,O,B] = Win
+--tictactoe[X,X,X,O,O,B,X,B,O] = Win
+--tictactoe[X,X,X,O,O,B,O,X,B] = Win
+--tictactoe[X,X,X,O,O,B,O,B,X] = Win
+--tictactoe[X,X,X,O,O,B,B,X,O] = Win
+--tictactoe[X,X,X,O,O,B,B,O,X] = Win
+--tictactoe[X,X,X,O,O,B,B,B,B] = Win
+--tictactoe[X,X,X,O,B,X,O,O,B] = Win
+--tictactoe[X,X,X,O,B,X,O,B,O] = Win
+--tictactoe[X,X,X,O,B,X,B,O,O] = Win
+--tictactoe[X,X,X,O,B,O,X,O,B] = Win
+--tictactoe[X,X,X,O,B,O,X,B,O] = Win
+--tictactoe[X,X,X,O,B,O,O,X,B] = Win
+--tictactoe[X,X,X,O,B,O,O,B,X] = Win
+--tictactoe[X,X,X,O,B,O,B,X,O] = Win
+--tictactoe[X,X,X,O,B,O,B,O,X] = Win
+--tictactoe[X,X,X,O,B,O,B,B,B] = Win
+--tictactoe[X,X,X,O,B,B,X,O,O] = Win
+--tictactoe[X,X,X,O,B,B,O,X,O] = Win
+--tictactoe[X,X,X,O,B,B,O,O,X] = Win
+--tictactoe[X,X,X,O,B,B,O,B,B] = Win
+--tictactoe[X,X,X,O,B,B,B,O,B] = Win
+--tictactoe[X,X,X,O,B,B,B,B,O] = Win
+--tictactoe[X,X,X,B,X,O,O,O,B] = Win
+--tictactoe[X,X,X,B,X,O,O,B,O] = Win
+--tictactoe[X,X,X,B,X,O,B,O,O] = Win
+--tictactoe[X,X,X,B,O,X,O,O,B] = Win
+--tictactoe[X,X,X,B,O,X,O,B,O] = Win
+--tictactoe[X,X,X,B,O,X,B,O,O] = Win
+--tictactoe[X,X,X,B,O,O,X,O,B] = Win
+--tictactoe[X,X,X,B,O,O,X,B,O] = Win
+--tictactoe[X,X,X,B,O,O,O,X,B] = Win
+--tictactoe[X,X,X,B,O,O,O,B,X] = Win
+--tictactoe[X,X,X,B,O,O,B,X,O] = Win
+--tictactoe[X,X,X,B,O,O,B,O,X] = Win
+--tictactoe[X,X,X,B,O,O,B,B,B] = Win
+--tictactoe[X,X,X,B,O,B,X,O,O] = Win
+--tictactoe[X,X,X,B,O,B,O,X,O] = Win
+--tictactoe[X,X,X,B,O,B,O,O,X] = Win
+--tictactoe[X,X,X,B,O,B,O,B,B] = Win
+--tictactoe[X,X,X,B,O,B,B,O,B] = Win
+--tictactoe[X,X,X,B,O,B,B,B,O] = Win
+--tictactoe[X,X,X,B,B,O,X,O,O] = Win
+--tictactoe[X,X,X,B,B,O,O,X,O] = Win
+--tictactoe[X,X,X,B,B,O,O,O,X] = Win
+--tictactoe[X,X,X,B,B,O,O,B,B] = Win
+--tictactoe[X,X,X,B,B,O,B,O,B] = Win
+--tictactoe[X,X,X,B,B,O,B,B,O] = Win
+--tictactoe[X,X,X,B,B,B,O,O,B] = Win
+--tictactoe[X,X,X,B,B,B,O,B,O] = Win
+--tictactoe[X,X,X,B,B,B,B,O,O] = Win
+--tictactoe[X,X,O,X,X,O,O,O,X] = Win
+--tictactoe[X,X,O,X,O,X,X,O,O] = Win
+--tictactoe[X,X,O,X,O,O,X,O,X] = Win
+--tictactoe[X,X,O,X,O,O,X,B,B] = Win
+--tictactoe[X,X,O,X,O,B,X,O,B] = Win
+--tictactoe[X,X,O,X,O,B,X,B,O] = Win
+--tictactoe[X,X,O,X,B,O,X,O,B] = Win
+--tictactoe[X,X,O,X,B,B,X,O,O] = Win
+--tictactoe[X,X,O,O,X,X,O,X,O] = Win
+--tictactoe[X,X,O,O,X,X,O,O,X] = Win
+--tictactoe[X,X,O,O,X,O,X,O,X] = Win
+--tictactoe[X,X,O,O,X,O,O,X,X] = Win
+--tictactoe[X,X,O,O,X,O,B,X,B] = Win
+--tictactoe[X,X,O,O,X,O,B,B,X] = Win
+--tictactoe[X,X,O,O,X,B,O,X,B] = Win
+--tictactoe[X,X,O,O,X,B,O,B,X] = Win
+--tictactoe[X,X,O,O,X,B,B,X,O] = Win
+--tictactoe[X,X,O,O,X,B,B,O,X] = Win
+--tictactoe[X,X,O,B,X,O,O,X,B] = Win
+--tictactoe[X,X,O,B,X,O,O,B,X] = Win
+--tictactoe[X,X,O,B,X,O,B,O,X] = Win
+--tictactoe[X,X,O,B,X,B,O,X,O] = Win
+--tictactoe[X,X,O,B,X,B,O,O,X] = Win
+--tictactoe[X,X,B,X,O,O,X,O,B] = Win
+--tictactoe[X,X,B,X,O,O,X,B,O] = Win
+--tictactoe[X,X,B,X,O,B,X,O,O] = Win
+--tictactoe[X,X,B,X,B,O,X,O,O] = Win
+--tictactoe[X,X,B,O,X,O,O,X,B] = Win
+--tictactoe[X,X,B,O,X,O,O,B,X] = Win
+--tictactoe[X,X,B,O,X,O,B,X,O] = Win
+--tictactoe[X,X,B,O,X,O,B,O,X] = Win
+--tictactoe[X,X,B,O,X,B,O,X,O] = Win
+--tictactoe[X,X,B,O,X,B,O,O,X] = Win
+--tictactoe[X,X,B,B,X,O,O,X,O] = Win
+--tictactoe[X,X,B,B,X,O,O,O,X] = Win
+--tictactoe[X,O,X,X,X,O,X,O,O] = Win
+--tictactoe[X,O,X,X,X,O,O,O,X] = Win
+--tictactoe[X,O,X,X,O,O,X,X,O] = Win
+--tictactoe[X,O,X,X,O,O,X,B,B] = Win
+--tictactoe[X,O,X,X,O,B,X,B,O] = Win
+--tictactoe[X,O,X,X,B,O,X,O,B] = Win
+--tictactoe[X,O,X,X,B,O,X,B,O] = Win
+--tictactoe[X,O,X,X,B,B,X,O,O] = Win
+--tictactoe[X,O,X,O,X,X,X,O,O] = Win
+--tictactoe[X,O,X,O,X,X,O,O,X] = Win
+--tictactoe[X,O,X,O,X,O,X,X,O] = Win
+--tictactoe[X,O,X,O,X,O,X,O,X] = Win
+--tictactoe[X,O,X,O,X,O,X,B,B] = Win
+--tictactoe[X,O,X,O,X,O,O,X,X] = Win
+--tictactoe[X,O,X,O,X,O,B,B,X] = Win
+--tictactoe[X,O,X,O,X,B,X,O,B] = Win
+--tictactoe[X,O,X,O,X,B,X,B,O] = Win
+--tictactoe[X,O,X,O,X,B,O,B,X] = Win
+--tictactoe[X,O,X,O,X,B,B,O,X] = Win
+--tictactoe[X,O,X,O,O,X,O,X,X] = Win
+--tictactoe[X,O,X,O,O,X,B,B,X] = Win
+--tictactoe[X,O,X,O,B,X,O,B,X] = Win
+--tictactoe[X,O,X,O,B,X,B,O,X] = Win
+--tictactoe[X,O,X,B,X,O,X,O,B] = Win
+--tictactoe[X,O,X,B,X,O,X,B,O] = Win
+--tictactoe[X,O,X,B,X,O,O,B,X] = Win
+--tictactoe[X,O,X,B,X,O,B,O,X] = Win
+--tictactoe[X,O,X,B,X,B,X,O,O] = Win
+--tictactoe[X,O,X,B,X,B,O,O,X] = Win
+--tictactoe[X,O,X,B,O,X,O,B,X] = Win
+--tictactoe[X,O,X,B,B,X,O,O,X] = Win
+--tictactoe[X,O,O,X,X,X,X,O,O] = Win
+--tictactoe[X,O,O,X,X,X,O,X,O] = Win
+--tictactoe[X,O,O,X,X,X,O,O,X] = Win
+--tictactoe[X,O,O,X,X,X,O,B,B] = Win
+--tictactoe[X,O,O,X,X,X,B,O,B] = Win
+--tictactoe[X,O,O,X,X,X,B,B,O] = Win
+--tictactoe[X,O,O,X,X,O,X,O,X] = Win
+--tictactoe[X,O,O,X,X,O,X,B,B] = Win
+--tictactoe[X,O,O,X,X,O,O,X,X] = Win
+--tictactoe[X,O,O,X,X,O,B,B,X] = Win
+--tictactoe[X,O,O,X,X,B,X,O,B] = Win
+--tictactoe[X,O,O,X,X,B,X,B,O] = Win
+--tictactoe[X,O,O,X,X,B,O,B,X] = Win
+--tictactoe[X,O,O,X,X,B,B,O,X] = Win
+--tictactoe[X,O,O,X,O,X,X,X,O] = Win
+--tictactoe[X,O,O,X,O,X,X,B,B] = Win
+--tictactoe[X,O,O,X,O,O,X,X,X] = Win
+--tictactoe[X,O,O,X,O,B,X,X,B] = Win
+--tictactoe[X,O,O,X,O,B,X,B,X] = Win
+--tictactoe[X,O,O,X,B,X,X,O,B] = Win
+--tictactoe[X,O,O,X,B,X,X,B,O] = Win
+--tictactoe[X,O,O,X,B,O,X,X,B] = Win
+--tictactoe[X,O,O,X,B,O,X,B,X] = Win
+--tictactoe[X,O,O,X,B,B,X,X,O] = Win
+--tictactoe[X,O,O,X,B,B,X,O,X] = Win
+--tictactoe[X,O,O,X,B,B,X,B,B] = Win
+--tictactoe[X,O,O,O,X,X,X,O,X] = Win
+--tictactoe[X,O,O,O,X,X,O,X,X] = Win
+--tictactoe[X,O,O,O,X,X,B,B,X] = Win
+--tictactoe[X,O,O,O,X,O,X,X,X] = Win
+--tictactoe[X,O,O,O,X,B,X,B,X] = Win
+--tictactoe[X,O,O,O,X,B,B,X,X] = Win
+--tictactoe[X,O,O,O,O,X,X,X,X] = Win
+--tictactoe[X,O,O,O,B,B,X,X,X] = Win
+--tictactoe[X,O,O,B,X,X,O,B,X] = Win
+--tictactoe[X,O,O,B,X,X,B,O,X] = Win
+--tictactoe[X,O,O,B,X,O,X,B,X] = Win
+--tictactoe[X,O,O,B,X,O,B,X,X] = Win
+--tictactoe[X,O,O,B,X,B,X,O,X] = Win
+--tictactoe[X,O,O,B,X,B,O,X,X] = Win
+--tictactoe[X,O,O,B,X,B,B,B,X] = Win
+--tictactoe[X,O,O,B,O,B,X,X,X] = Win
+--tictactoe[X,O,O,B,B,O,X,X,X] = Win
+--tictactoe[X,O,B,X,X,X,O,O,B] = Win
+--tictactoe[X,O,B,X,X,X,O,B,O] = Win
+--tictactoe[X,O,B,X,X,X,B,O,O] = Win
+--tictactoe[X,O,B,X,X,O,X,O,B] = Win
+--tictactoe[X,O,B,X,X,O,X,B,O] = Win
+--tictactoe[X,O,B,X,X,O,O,B,X] = Win
+--tictactoe[X,O,B,X,X,O,B,O,X] = Win
+--tictactoe[X,O,B,X,X,B,X,O,O] = Win
+--tictactoe[X,O,B,X,X,B,O,O,X] = Win
+--tictactoe[X,O,B,X,O,X,X,B,O] = Win
+--tictactoe[X,O,B,X,O,O,X,X,B] = Win
+--tictactoe[X,O,B,X,O,O,X,B,X] = Win
+--tictactoe[X,O,B,X,O,B,X,X,O] = Win
+--tictactoe[X,O,B,X,O,B,X,B,B] = Win
+--tictactoe[X,O,B,X,B,X,X,O,O] = Win
+--tictactoe[X,O,B,X,B,O,X,X,O] = Win
+--tictactoe[X,O,B,X,B,O,X,O,X] = Win
+--tictactoe[X,O,B,X,B,O,X,B,B] = Win
+--tictactoe[X,O,B,X,B,B,X,O,B] = Win
+--tictactoe[X,O,B,X,B,B,X,B,O] = Win
+--tictactoe[X,O,B,O,X,X,O,B,X] = Win
+--tictactoe[X,O,B,O,X,X,B,O,X] = Win
+--tictactoe[X,O,B,O,X,O,X,B,X] = Win
+--tictactoe[X,O,B,O,X,O,B,X,X] = Win
+--tictactoe[X,O,B,O,X,B,X,O,X] = Win
+--tictactoe[X,O,B,O,X,B,O,X,X] = Win
+--tictactoe[X,O,B,O,X,B,B,B,X] = Win
+--tictactoe[X,O,B,O,O,B,X,X,X] = Win
+--tictactoe[X,O,B,O,B,O,X,X,X] = Win
+--tictactoe[X,O,B,B,X,X,O,O,X] = Win
+--tictactoe[X,O,B,B,X,O,X,O,X] = Win
+--tictactoe[X,O,B,B,X,O,O,X,X] = Win
+--tictactoe[X,O,B,B,X,O,B,B,X] = Win
+--tictactoe[X,O,B,B,X,B,O,B,X] = Win
+--tictactoe[X,O,B,B,X,B,B,O,X] = Win
+--tictactoe[X,O,B,B,O,O,X,X,X] = Win
+--tictactoe[X,B,X,X,O,O,X,O,B] = Win
+--tictactoe[X,B,X,X,O,O,X,B,O] = Win
+--tictactoe[X,B,X,X,O,B,X,O,O] = Win
+--tictactoe[X,B,X,X,B,O,X,O,O] = Win
+--tictactoe[X,B,X,O,X,O,X,O,B] = Win
+--tictactoe[X,B,X,O,X,O,X,B,O] = Win
+--tictactoe[X,B,X,O,X,O,O,B,X] = Win
+--tictactoe[X,B,X,O,X,O,B,O,X] = Win
+--tictactoe[X,B,X,O,X,B,X,O,O] = Win
+--tictactoe[X,B,X,O,X,B,O,O,X] = Win
+--tictactoe[X,B,X,O,O,X,O,B,X] = Win
+--tictactoe[X,B,X,O,O,X,B,O,X] = Win
+--tictactoe[X,B,X,O,B,X,O,O,X] = Win
+--tictactoe[X,B,X,B,X,O,X,O,O] = Win
+--tictactoe[X,B,X,B,X,O,O,O,X] = Win
+--tictactoe[X,B,X,B,O,X,O,O,X] = Win
+--tictactoe[X,B,O,X,X,X,O,O,B] = Win
+--tictactoe[X,B,O,X,X,X,O,B,O] = Win
+--tictactoe[X,B,O,X,X,X,B,O,O] = Win
+--tictactoe[X,B,O,X,X,O,X,O,B] = Win
+--tictactoe[X,B,O,X,X,O,O,B,X] = Win
+--tictactoe[X,B,O,X,X,O,B,O,X] = Win
+--tictactoe[X,B,O,X,X,B,X,O,O] = Win
+--tictactoe[X,B,O,X,X,B,O,O,X] = Win
+--tictactoe[X,B,O,X,O,X,X,O,B] = Win
+--tictactoe[X,B,O,X,O,X,X,B,O] = Win
+--tictactoe[X,B,O,X,O,O,X,X,B] = Win
+--tictactoe[X,B,O,X,O,O,X,B,X] = Win
+--tictactoe[X,B,O,X,O,B,X,X,O] = Win
+--tictactoe[X,B,O,X,O,B,X,O,X] = Win
+--tictactoe[X,B,O,X,O,B,X,B,B] = Win
+--tictactoe[X,B,O,X,B,X,X,O,O] = Win
+--tictactoe[X,B,O,X,B,O,X,O,X] = Win
+--tictactoe[X,B,O,X,B,O,X,B,B] = Win
+--tictactoe[X,B,O,X,B,B,X,O,B] = Win
+--tictactoe[X,B,O,X,B,B,X,B,O] = Win
+--tictactoe[X,B,O,O,X,X,O,B,X] = Win
+--tictactoe[X,B,O,O,X,X,B,O,X] = Win
+--tictactoe[X,B,O,O,X,O,X,B,X] = Win
+--tictactoe[X,B,O,O,X,O,B,X,X] = Win
+--tictactoe[X,B,O,O,X,B,X,O,X] = Win
+--tictactoe[X,B,O,O,X,B,O,X,X] = Win
+--tictactoe[X,B,O,O,X,B,B,B,X] = Win
+--tictactoe[X,B,O,O,O,B,X,X,X] = Win
+--tictactoe[X,B,O,O,B,O,X,X,X] = Win
+--tictactoe[X,B,O,B,X,X,O,O,X] = Win
+--tictactoe[X,B,O,B,X,O,X,O,X] = Win
+--tictactoe[X,B,O,B,X,O,O,X,X] = Win
+--tictactoe[X,B,O,B,X,O,B,B,X] = Win
+--tictactoe[X,B,O,B,X,B,O,B,X] = Win
+--tictactoe[X,B,O,B,X,B,B,O,X] = Win
+--tictactoe[X,B,O,B,O,O,X,X,X] = Win
+--tictactoe[X,B,B,X,X,O,X,O,O] = Win
+--tictactoe[X,B,B,X,X,O,O,O,X] = Win
+--tictactoe[X,B,B,X,O,X,X,O,O] = Win
+--tictactoe[X,B,B,X,O,O,X,X,O] = Win
+--tictactoe[X,B,B,X,O,O,X,O,X] = Win
+--tictactoe[X,B,B,X,O,O,X,B,B] = Win
+--tictactoe[X,B,B,X,O,B,X,O,B] = Win
+--tictactoe[X,B,B,X,O,B,X,B,O] = Win
+--tictactoe[X,B,B,X,B,O,X,O,B] = Win
+--tictactoe[X,B,B,X,B,O,X,B,O] = Win
+--tictactoe[X,B,B,X,B,B,X,O,O] = Win
+--tictactoe[X,B,B,O,X,X,O,O,X] = Win
+--tictactoe[X,B,B,O,X,O,X,O,X] = Win
+--tictactoe[X,B,B,O,X,O,O,X,X] = Win
+--tictactoe[X,B,B,O,X,O,B,B,X] = Win
+--tictactoe[X,B,B,O,X,B,O,B,X] = Win
+--tictactoe[X,B,B,O,X,B,B,O,X] = Win
+--tictactoe[X,B,B,B,X,O,O,B,X] = Win
+--tictactoe[X,B,B,B,X,O,B,O,X] = Win
+--tictactoe[X,B,B,B,X,B,O,O,X] = Win
+--tictactoe[O,X,X,X,X,O,X,O,O] = Win
+--tictactoe[O,X,X,X,X,O,O,X,O] = Win
+--tictactoe[O,X,X,X,O,X,O,O,X] = Win
+--tictactoe[O,X,X,O,X,X,X,O,O] = Win
+--tictactoe[O,X,X,O,X,O,X,X,O] = Win
+--tictactoe[O,X,X,O,X,O,X,O,X] = Win
+--tictactoe[O,X,X,O,X,O,X,B,B] = Win
+--tictactoe[O,X,X,O,X,O,B,X,B] = Win
+--tictactoe[O,X,X,O,X,B,X,O,B] = Win
+--tictactoe[O,X,X,O,X,B,X,B,O] = Win
+--tictactoe[O,X,X,O,X,B,B,X,O] = Win
+--tictactoe[O,X,X,O,O,X,X,O,X] = Win
+--tictactoe[O,X,X,O,O,X,B,B,X] = Win
+--tictactoe[O,X,X,O,B,X,B,O,X] = Win
+--tictactoe[O,X,X,B,X,O,X,O,B] = Win
+--tictactoe[O,X,X,B,X,O,X,B,O] = Win
+--tictactoe[O,X,X,B,X,O,O,X,B] = Win
+--tictactoe[O,X,X,B,X,O,B,X,O] = Win
+--tictactoe[O,X,X,B,X,B,X,O,O] = Win
+--tictactoe[O,X,X,B,X,B,O,X,O] = Win
+--tictactoe[O,X,X,B,O,X,O,B,X] = Win
+--tictactoe[O,X,X,B,O,X,B,O,X] = Win
+--tictactoe[O,X,X,B,B,X,O,O,X] = Win
+--tictactoe[O,X,O,X,X,X,X,O,O] = Win
+--tictactoe[O,X,O,X,X,X,O,X,O] = Win
+--tictactoe[O,X,O,X,X,X,O,O,X] = Win
+--tictactoe[O,X,O,X,X,X,O,B,B] = Win
+--tictactoe[O,X,O,X,X,X,B,O,B] = Win
+--tictactoe[O,X,O,X,X,X,B,B,O] = Win
+--tictactoe[O,X,O,X,X,O,O,X,X] = Win
+--tictactoe[O,X,O,X,X,O,B,X,B] = Win
+--tictactoe[O,X,O,X,X,B,O,X,B] = Win
+--tictactoe[O,X,O,X,X,B,B,X,O] = Win
+--tictactoe[O,X,O,X,O,O,X,X,X] = Win
+--tictactoe[O,X,O,O,X,X,X,X,O] = Win
+--tictactoe[O,X,O,O,X,X,B,X,B] = Win
+--tictactoe[O,X,O,O,X,O,X,X,X] = Win
+--tictactoe[O,X,O,O,X,B,X,X,B] = Win
+--tictactoe[O,X,O,O,X,B,B,X,X] = Win
+--tictactoe[O,X,O,O,O,X,X,X,X] = Win
+--tictactoe[O,X,O,O,B,B,X,X,X] = Win
+--tictactoe[O,X,O,B,X,X,O,X,B] = Win
+--tictactoe[O,X,O,B,X,X,B,X,O] = Win
+--tictactoe[O,X,O,B,X,O,X,X,B] = Win
+--tictactoe[O,X,O,B,X,O,B,X,X] = Win
+--tictactoe[O,X,O,B,X,B,X,X,O] = Win
+--tictactoe[O,X,O,B,X,B,O,X,X] = Win
+--tictactoe[O,X,O,B,X,B,B,X,B] = Win
+--tictactoe[O,X,O,B,O,B,X,X,X] = Win
+--tictactoe[O,X,O,B,B,O,X,X,X] = Win
+--tictactoe[O,X,B,X,X,X,O,O,B] = Win
+--tictactoe[O,X,B,X,X,X,O,B,O] = Win
+--tictactoe[O,X,B,X,X,X,B,O,O] = Win
+--tictactoe[O,X,B,X,X,O,O,X,B] = Win
+--tictactoe[O,X,B,X,X,O,B,X,O] = Win
+--tictactoe[O,X,B,X,X,B,O,X,O] = Win
+--tictactoe[O,X,B,O,X,X,B,X,O] = Win
+--tictactoe[O,X,B,O,X,O,X,X,B] = Win
+--tictactoe[O,X,B,O,X,O,B,X,X] = Win
+--tictactoe[O,X,B,O,X,B,X,X,O] = Win
+--tictactoe[O,X,B,O,X,B,B,X,B] = Win
+--tictactoe[O,X,B,O,O,B,X,X,X] = Win
+--tictactoe[O,X,B,O,B,O,X,X,X] = Win
+--tictactoe[O,X,B,B,X,X,O,X,O] = Win
+--tictactoe[O,X,B,B,X,O,X,X,O] = Win
+--tictactoe[O,X,B,B,X,O,O,X,X] = Win
+--tictactoe[O,X,B,B,X,O,B,X,B] = Win
+--tictactoe[O,X,B,B,X,B,O,X,B] = Win
+--tictactoe[O,X,B,B,X,B,B,X,O] = Win
+--tictactoe[O,X,B,B,O,O,X,X,X] = Win
+--tictactoe[O,O,X,X,X,X,X,O,O] = Win
+--tictactoe[O,O,X,X,X,X,O,X,O] = Win
+--tictactoe[O,O,X,X,X,X,O,O,X] = Win
+--tictactoe[O,O,X,X,X,X,O,B,B] = Win
+--tictactoe[O,O,X,X,X,X,B,O,B] = Win
+--tictactoe[O,O,X,X,X,X,B,B,O] = Win
+--tictactoe[O,O,X,X,X,O,X,X,O] = Win
+--tictactoe[O,O,X,X,X,O,X,O,X] = Win
+--tictactoe[O,O,X,X,X,O,X,B,B] = Win
+--tictactoe[O,O,X,X,X,B,X,O,B] = Win
+--tictactoe[O,O,X,X,X,B,X,B,O] = Win
+--tictactoe[O,O,X,X,O,X,O,X,X] = Win
+--tictactoe[O,O,X,X,O,X,B,B,X] = Win
+--tictactoe[O,O,X,X,O,O,X,X,X] = Win
+--tictactoe[O,O,X,X,B,X,O,B,X] = Win
+--tictactoe[O,O,X,X,B,X,B,O,X] = Win
+--tictactoe[O,O,X,O,X,X,X,X,O] = Win
+--tictactoe[O,O,X,O,X,X,X,O,X] = Win
+--tictactoe[O,O,X,O,X,X,X,B,B] = Win
+--tictactoe[O,O,X,O,X,X,B,B,X] = Win
+--tictactoe[O,O,X,O,X,O,X,X,X] = Win
+--tictactoe[O,O,X,O,X,B,X,X,B] = Win
+--tictactoe[O,O,X,O,X,B,X,B,X] = Win
+--tictactoe[O,O,X,O,O,X,X,X,X] = Win
+--tictactoe[O,O,X,O,B,X,X,B,X] = Win
+--tictactoe[O,O,X,O,B,X,B,X,X] = Win
+--tictactoe[O,O,X,O,B,B,X,X,X] = Win
+--tictactoe[O,O,X,B,X,X,X,O,B] = Win
+--tictactoe[O,O,X,B,X,X,X,B,O] = Win
+--tictactoe[O,O,X,B,X,X,O,B,X] = Win
+--tictactoe[O,O,X,B,X,X,B,O,X] = Win
+--tictactoe[O,O,X,B,X,O,X,X,B] = Win
+--tictactoe[O,O,X,B,X,O,X,B,X] = Win
+--tictactoe[O,O,X,B,X,B,X,X,O] = Win
+--tictactoe[O,O,X,B,X,B,X,O,X] = Win
+--tictactoe[O,O,X,B,X,B,X,B,B] = Win
+--tictactoe[O,O,X,B,O,X,X,B,X] = Win
+--tictactoe[O,O,X,B,O,X,B,X,X] = Win
+--tictactoe[O,O,X,B,O,B,X,X,X] = Win
+--tictactoe[O,O,X,B,B,X,X,O,X] = Win
+--tictactoe[O,O,X,B,B,X,O,X,X] = Win
+--tictactoe[O,O,X,B,B,X,B,B,X] = Win
+--tictactoe[O,O,X,B,B,O,X,X,X] = Win
+--tictactoe[O,O,B,X,X,X,X,O,B] = Win
+--tictactoe[O,O,B,X,X,X,X,B,O] = Win
+--tictactoe[O,O,B,X,X,X,O,X,B] = Win
+--tictactoe[O,O,B,X,X,X,O,B,X] = Win
+--tictactoe[O,O,B,X,X,X,B,X,O] = Win
+--tictactoe[O,O,B,X,X,X,B,O,X] = Win
+--tictactoe[O,O,B,X,X,X,B,B,B] = Win
+--tictactoe[O,O,B,X,O,B,X,X,X] = Win
+--tictactoe[O,O,B,X,B,O,X,X,X] = Win
+--tictactoe[O,O,B,O,X,B,X,X,X] = Win
+--tictactoe[O,O,B,O,B,X,X,X,X] = Win
+--tictactoe[O,O,B,B,X,O,X,X,X] = Win
+--tictactoe[O,O,B,B,O,X,X,X,X] = Win
+--tictactoe[O,O,B,B,B,B,X,X,X] = Win
+--tictactoe[O,B,X,X,X,X,O,O,B] = Win
+--tictactoe[O,B,X,X,X,X,O,B,O] = Win
+--tictactoe[O,B,X,X,X,X,B,O,O] = Win
+--tictactoe[O,B,X,X,X,O,X,O,B] = Win
+--tictactoe[O,B,X,X,X,O,X,B,O] = Win
+--tictactoe[O,B,X,X,X,B,X,O,O] = Win
+--tictactoe[O,B,X,X,O,X,O,B,X] = Win
+--tictactoe[O,B,X,X,O,X,B,O,X] = Win
+--tictactoe[O,B,X,X,B,X,O,O,X] = Win
+--tictactoe[O,B,X,O,X,X,X,O,B] = Win
+--tictactoe[O,B,X,O,X,X,X,B,O] = Win
+--tictactoe[O,B,X,O,X,X,B,O,X] = Win
+--tictactoe[O,B,X,O,X,O,X,X,B] = Win
+--tictactoe[O,B,X,O,X,O,X,B,X] = Win
+--tictactoe[O,B,X,O,X,B,X,X,O] = Win
+--tictactoe[O,B,X,O,X,B,X,O,X] = Win
+--tictactoe[O,B,X,O,X,B,X,B,B] = Win
+--tictactoe[O,B,X,O,O,X,X,B,X] = Win
+--tictactoe[O,B,X,O,O,X,B,X,X] = Win
+--tictactoe[O,B,X,O,O,B,X,X,X] = Win
+--tictactoe[O,B,X,O,B,X,X,O,X] = Win
+--tictactoe[O,B,X,O,B,X,B,B,X] = Win
+--tictactoe[O,B,X,O,B,O,X,X,X] = Win
+--tictactoe[O,B,X,B,X,X,X,O,O] = Win
+--tictactoe[O,B,X,B,X,X,O,O,X] = Win
+--tictactoe[O,B,X,B,X,O,X,X,O] = Win
+--tictactoe[O,B,X,B,X,O,X,O,X] = Win
+--tictactoe[O,B,X,B,X,O,X,B,B] = Win
+--tictactoe[O,B,X,B,X,B,X,O,B] = Win
+--tictactoe[O,B,X,B,X,B,X,B,O] = Win
+--tictactoe[O,B,X,B,O,X,X,O,X] = Win
+--tictactoe[O,B,X,B,O,X,O,X,X] = Win
+--tictactoe[O,B,X,B,O,X,B,B,X] = Win
+--tictactoe[O,B,X,B,O,O,X,X,X] = Win
+--tictactoe[O,B,X,B,B,X,O,B,X] = Win
+--tictactoe[O,B,X,B,B,X,B,O,X] = Win
+--tictactoe[O,B,O,X,X,X,X,O,B] = Win
+--tictactoe[O,B,O,X,X,X,X,B,O] = Win
+--tictactoe[O,B,O,X,X,X,O,X,B] = Win
+--tictactoe[O,B,O,X,X,X,O,B,X] = Win
+--tictactoe[O,B,O,X,X,X,B,X,O] = Win
+--tictactoe[O,B,O,X,X,X,B,O,X] = Win
+--tictactoe[O,B,O,X,X,X,B,B,B] = Win
+--tictactoe[O,B,O,X,O,B,X,X,X] = Win
+--tictactoe[O,B,O,X,B,O,X,X,X] = Win
+--tictactoe[O,B,O,O,X,B,X,X,X] = Win
+--tictactoe[O,B,O,O,B,X,X,X,X] = Win
+--tictactoe[O,B,O,B,X,O,X,X,X] = Win
+--tictactoe[O,B,O,B,O,X,X,X,X] = Win
+--tictactoe[O,B,O,B,B,B,X,X,X] = Win
+--tictactoe[O,B,B,X,X,X,X,O,O] = Win
+--tictactoe[O,B,B,X,X,X,O,X,O] = Win
+--tictactoe[O,B,B,X,X,X,O,O,X] = Win
+--tictactoe[O,B,B,X,X,X,O,B,B] = Win
+--tictactoe[O,B,B,X,X,X,B,O,B] = Win
+--tictactoe[O,B,B,X,X,X,B,B,O] = Win
+--tictactoe[O,B,B,X,O,O,X,X,X] = Win
+--tictactoe[O,B,B,O,X,O,X,X,X] = Win
+--tictactoe[O,B,B,O,O,X,X,X,X] = Win
+--tictactoe[O,B,B,O,B,B,X,X,X] = Win
+--tictactoe[O,B,B,B,O,B,X,X,X] = Win
+--tictactoe[O,B,B,B,B,O,X,X,X] = Win
+--tictactoe[B,X,X,O,X,O,X,O,B] = Win
+--tictactoe[B,X,X,O,X,O,X,B,O] = Win
+--tictactoe[B,X,X,O,X,O,O,X,B] = Win
+--tictactoe[B,X,X,O,X,O,B,X,O] = Win
+--tictactoe[B,X,X,O,X,B,X,O,O] = Win
+--tictactoe[B,X,X,O,X,B,O,X,O] = Win
+--tictactoe[B,X,X,O,O,X,O,B,X] = Win
+--tictactoe[B,X,X,O,O,X,B,O,X] = Win
+--tictactoe[B,X,X,O,B,X,O,O,X] = Win
+--tictactoe[B,X,X,B,X,O,X,O,O] = Win
+--tictactoe[B,X,X,B,X,O,O,X,O] = Win
+--tictactoe[B,X,X,B,O,X,O,O,X] = Win
+--tictactoe[B,X,O,X,X,X,O,O,B] = Win
+--tictactoe[B,X,O,X,X,X,O,B,O] = Win
+--tictactoe[B,X,O,X,X,X,B,O,O] = Win
+--tictactoe[B,X,O,X,X,O,O,X,B] = Win
+--tictactoe[B,X,O,X,X,B,O,X,O] = Win
+--tictactoe[B,X,O,O,X,X,O,X,B] = Win
+--tictactoe[B,X,O,O,X,X,B,X,O] = Win
+--tictactoe[B,X,O,O,X,O,X,X,B] = Win
+--tictactoe[B,X,O,O,X,O,B,X,X] = Win
+--tictactoe[B,X,O,O,X,B,X,X,O] = Win
+--tictactoe[B,X,O,O,X,B,O,X,X] = Win
+--tictactoe[B,X,O,O,X,B,B,X,B] = Win
+--tictactoe[B,X,O,O,O,B,X,X,X] = Win
+--tictactoe[B,X,O,O,B,O,X,X,X] = Win
+--tictactoe[B,X,O,B,X,X,O,X,O] = Win
+--tictactoe[B,X,O,B,X,O,O,X,X] = Win
+--tictactoe[B,X,O,B,X,O,B,X,B] = Win
+--tictactoe[B,X,O,B,X,B,O,X,B] = Win
+--tictactoe[B,X,O,B,X,B,B,X,O] = Win
+--tictactoe[B,X,O,B,O,O,X,X,X] = Win
+--tictactoe[B,X,B,X,X,O,O,X,O] = Win
+--tictactoe[B,X,B,O,X,X,O,X,O] = Win
+--tictactoe[B,X,B,O,X,O,X,X,O] = Win
+--tictactoe[B,X,B,O,X,O,O,X,X] = Win
+--tictactoe[B,X,B,O,X,O,B,X,B] = Win
+--tictactoe[B,X,B,O,X,B,O,X,B] = Win
+--tictactoe[B,X,B,O,X,B,B,X,O] = Win
+--tictactoe[B,X,B,B,X,O,O,X,B] = Win
+--tictactoe[B,X,B,B,X,O,B,X,O] = Win
+--tictactoe[B,X,B,B,X,B,O,X,O] = Win
+--tictactoe[B,O,X,X,X,X,O,O,B] = Win
+--tictactoe[B,O,X,X,X,X,O,B,O] = Win
+--tictactoe[B,O,X,X,X,X,B,O,O] = Win
+--tictactoe[B,O,X,X,X,O,X,O,B] = Win
+--tictactoe[B,O,X,X,X,O,X,B,O] = Win
+--tictactoe[B,O,X,X,X,B,X,O,O] = Win
+--tictactoe[B,O,X,X,O,X,O,B,X] = Win
+--tictactoe[B,O,X,X,B,X,O,O,X] = Win
+--tictactoe[B,O,X,O,X,X,X,O,B] = Win
+--tictactoe[B,O,X,O,X,X,X,B,O] = Win
+--tictactoe[B,O,X,O,X,X,O,B,X] = Win
+--tictactoe[B,O,X,O,X,X,B,O,X] = Win
+--tictactoe[B,O,X,O,X,O,X,X,B] = Win
+--tictactoe[B,O,X,O,X,O,X,B,X] = Win
+--tictactoe[B,O,X,O,X,B,X,X,O] = Win
+--tictactoe[B,O,X,O,X,B,X,O,X] = Win
+--tictactoe[B,O,X,O,X,B,X,B,B] = Win
+--tictactoe[B,O,X,O,O,X,X,B,X] = Win
+--tictactoe[B,O,X,O,O,X,B,X,X] = Win
+--tictactoe[B,O,X,O,O,B,X,X,X] = Win
+--tictactoe[B,O,X,O,B,X,X,O,X] = Win
+--tictactoe[B,O,X,O,B,X,O,X,X] = Win
+--tictactoe[B,O,X,O,B,X,B,B,X] = Win
+--tictactoe[B,O,X,O,B,O,X,X,X] = Win
+--tictactoe[B,O,X,B,X,X,X,O,O] = Win
+--tictactoe[B,O,X,B,X,X,O,O,X] = Win
+--tictactoe[B,O,X,B,X,O,X,X,O] = Win
+--tictactoe[B,O,X,B,X,O,X,O,X] = Win
+--tictactoe[B,O,X,B,X,O,X,B,B] = Win
+--tictactoe[B,O,X,B,X,B,X,O,B] = Win
+--tictactoe[B,O,X,B,X,B,X,B,O] = Win
+--tictactoe[B,O,X,B,O,X,O,X,X] = Win
+--tictactoe[B,O,X,B,O,X,B,B,X] = Win
+--tictactoe[B,O,X,B,O,O,X,X,X] = Win
+--tictactoe[B,O,X,B,B,X,O,B,X] = Win
+--tictactoe[B,O,X,B,B,X,B,O,X] = Win
+--tictactoe[B,O,O,X,X,X,X,O,B] = Win
+--tictactoe[B,O,O,X,X,X,X,B,O] = Win
+--tictactoe[B,O,O,X,X,X,O,X,B] = Win
+--tictactoe[B,O,O,X,X,X,O,B,X] = Win
+--tictactoe[B,O,O,X,X,X,B,X,O] = Win
+--tictactoe[B,O,O,X,X,X,B,O,X] = Win
+--tictactoe[B,O,O,X,X,X,B,B,B] = Win
+--tictactoe[B,O,O,X,O,B,X,X,X] = Win
+--tictactoe[B,O,O,X,B,O,X,X,X] = Win
+--tictactoe[B,O,O,O,X,B,X,X,X] = Win
+--tictactoe[B,O,O,O,B,X,X,X,X] = Win
+--tictactoe[B,O,O,B,X,O,X,X,X] = Win
+--tictactoe[B,O,O,B,O,X,X,X,X] = Win
+--tictactoe[B,O,O,B,B,B,X,X,X] = Win
+--tictactoe[B,O,B,X,X,X,X,O,O] = Win
+--tictactoe[B,O,B,X,X,X,O,X,O] = Win
+--tictactoe[B,O,B,X,X,X,O,O,X] = Win
+--tictactoe[B,O,B,X,X,X,O,B,B] = Win
+--tictactoe[B,O,B,X,X,X,B,O,B] = Win
+--tictactoe[B,O,B,X,X,X,B,B,O] = Win
+--tictactoe[B,O,B,X,O,O,X,X,X] = Win
+--tictactoe[B,O,B,O,X,O,X,X,X] = Win
+--tictactoe[B,O,B,O,O,X,X,X,X] = Win
+--tictactoe[B,O,B,O,B,B,X,X,X] = Win
+--tictactoe[B,O,B,B,O,B,X,X,X] = Win
+--tictactoe[B,O,B,B,B,O,X,X,X] = Win
+--tictactoe[B,B,X,X,X,O,X,O,O] = Win
+--tictactoe[B,B,X,X,O,X,O,O,X] = Win
+--tictactoe[B,B,X,O,X,X,X,O,O] = Win
+--tictactoe[B,B,X,O,X,X,O,O,X] = Win
+--tictactoe[B,B,X,O,X,O,X,X,O] = Win
+--tictactoe[B,B,X,O,X,O,X,O,X] = Win
+--tictactoe[B,B,X,O,X,O,X,B,B] = Win
+--tictactoe[B,B,X,O,X,B,X,O,B] = Win
+--tictactoe[B,B,X,O,X,B,X,B,O] = Win
+--tictactoe[B,B,X,O,O,X,X,O,X] = Win
+--tictactoe[B,B,X,O,O,X,O,X,X] = Win
+--tictactoe[B,B,X,O,O,X,B,B,X] = Win
+--tictactoe[B,B,X,O,B,X,O,B,X] = Win
+--tictactoe[B,B,X,O,B,X,B,O,X] = Win
+--tictactoe[B,B,X,B,X,O,X,O,B] = Win
+--tictactoe[B,B,X,B,X,O,X,B,O] = Win
+--tictactoe[B,B,X,B,X,B,X,O,O] = Win
+--tictactoe[B,B,X,B,O,X,O,B,X] = Win
+--tictactoe[B,B,X,B,O,X,B,O,X] = Win
+--tictactoe[B,B,X,B,B,X,O,O,X] = Win
+--tictactoe[B,B,O,X,X,X,X,O,O] = Win
+--tictactoe[B,B,O,X,X,X,O,X,O] = Win
+--tictactoe[B,B,O,X,X,X,O,O,X] = Win
+--tictactoe[B,B,O,X,X,X,O,B,B] = Win
+--tictactoe[B,B,O,X,X,X,B,O,B] = Win
+--tictactoe[B,B,O,X,X,X,B,B,O] = Win
+--tictactoe[B,B,O,X,O,O,X,X,X] = Win
+--tictactoe[B,B,O,O,X,O,X,X,X] = Win
+--tictactoe[B,B,O,O,O,X,X,X,X] = Win
+--tictactoe[B,B,O,O,B,B,X,X,X] = Win
+--tictactoe[B,B,O,B,O,B,X,X,X] = Win
+--tictactoe[B,B,O,B,B,O,X,X,X] = Win
+--tictactoe[B,B,B,X,X,X,O,O,B] = Win
+--tictactoe[B,B,B,X,X,X,O,B,O] = Win
+--tictactoe[B,B,B,X,X,X,B,O,O] = Win
+--tictactoe[B,B,B,O,O,B,X,X,X] = Win
+--tictactoe[B,B,B,O,B,O,X,X,X] = Win
+--tictactoe[B,B,B,B,O,O,X,X,X] = Win
+--tictactoe[X,X,O,X,X,O,O,B,O] = Lose
+--tictactoe[X,X,O,X,X,O,B,O,O] = Lose
+--tictactoe[X,X,O,X,X,B,O,O,O] = Lose
+--tictactoe[X,X,O,X,O,X,O,O,B] = Lose
+--tictactoe[X,X,O,X,O,X,O,B,O] = Lose
+--tictactoe[X,X,O,X,O,O,O,X,B] = Lose
+--tictactoe[X,X,O,X,O,O,O,B,X] = Lose
+--tictactoe[X,X,O,X,O,O,B,X,O] = Lose
+--tictactoe[X,X,O,X,O,B,O,X,O] = Lose
+--tictactoe[X,X,O,X,O,B,O,O,X] = Lose
+--tictactoe[X,X,O,X,O,B,O,B,B] = Lose
+--tictactoe[X,X,O,X,B,X,O,O,O] = Lose
+--tictactoe[X,X,O,X,B,O,O,X,O] = Lose
+--tictactoe[X,X,O,X,B,O,B,B,O] = Lose
+--tictactoe[X,X,O,O,X,O,X,B,O] = Lose
+--tictactoe[X,X,O,O,O,X,O,X,B] = Lose
+--tictactoe[X,X,O,O,O,X,O,B,X] = Lose
+--tictactoe[X,X,O,O,O,O,X,X,B] = Lose
+--tictactoe[X,X,O,O,O,O,X,B,X] = Lose
+--tictactoe[X,X,O,O,O,O,B,X,X] = Lose
+--tictactoe[X,X,O,O,O,B,O,X,X] = Lose
+--tictactoe[X,X,O,O,B,O,X,X,O] = Lose
+--tictactoe[X,X,O,B,X,X,O,O,O] = Lose
+--tictactoe[X,X,O,B,X,O,X,O,O] = Lose
+--tictactoe[X,X,O,B,X,O,B,B,O] = Lose
+--tictactoe[X,X,O,B,O,X,O,X,O] = Lose
+--tictactoe[X,X,O,B,O,X,O,O,X] = Lose
+--tictactoe[X,X,O,B,O,X,O,B,B] = Lose
+--tictactoe[X,X,O,B,O,O,X,X,O] = Lose
+--tictactoe[X,X,O,B,O,O,O,X,X] = Lose
+--tictactoe[X,X,O,B,O,B,O,X,B] = Lose
+--tictactoe[X,X,O,B,O,B,O,B,X] = Lose
+--tictactoe[X,X,O,B,B,O,X,B,O] = Lose
+--tictactoe[X,X,O,B,B,O,B,X,O] = Lose
+--tictactoe[X,X,B,X,X,O,O,O,O] = Lose
+--tictactoe[X,X,B,X,O,X,O,O,O] = Lose
+--tictactoe[X,X,B,X,B,B,O,O,O] = Lose
+--tictactoe[X,X,B,O,X,X,O,O,O] = Lose
+--tictactoe[X,X,B,O,O,O,X,X,O] = Lose
+--tictactoe[X,X,B,O,O,O,X,O,X] = Lose
+--tictactoe[X,X,B,O,O,O,X,B,B] = Lose
+--tictactoe[X,X,B,O,O,O,O,X,X] = Lose
+--tictactoe[X,X,B,O,O,O,B,X,B] = Lose
+--tictactoe[X,X,B,O,O,O,B,B,X] = Lose
+--tictactoe[X,X,B,B,X,B,O,O,O] = Lose
+--tictactoe[X,X,B,B,B,X,O,O,O] = Lose
+--tictactoe[X,O,X,X,X,B,O,O,O] = Lose
+--tictactoe[X,O,X,X,O,X,O,O,B] = Lose
+--tictactoe[X,O,X,X,O,X,B,O,O] = Lose
+--tictactoe[X,O,X,X,O,O,B,O,X] = Lose
+--tictactoe[X,O,X,X,O,B,O,O,X] = Lose
+--tictactoe[X,O,X,X,O,B,B,O,B] = Lose
+--tictactoe[X,O,X,X,B,X,O,O,O] = Lose
+--tictactoe[X,O,X,O,O,X,X,O,B] = Lose
+--tictactoe[X,O,X,O,O,O,X,X,B] = Lose
+--tictactoe[X,O,X,O,O,O,X,B,X] = Lose
+--tictactoe[X,O,X,O,O,O,B,X,X] = Lose
+--tictactoe[X,O,X,O,O,B,X,O,X] = Lose
+--tictactoe[X,O,X,B,X,X,O,O,O] = Lose
+--tictactoe[X,O,X,B,O,X,X,O,O] = Lose
+--tictactoe[X,O,X,B,O,X,B,O,B] = Lose
+--tictactoe[X,O,X,B,O,O,X,O,X] = Lose
+--tictactoe[X,O,X,B,O,B,X,O,B] = Lose
+--tictactoe[X,O,X,B,O,B,B,O,X] = Lose
+--tictactoe[X,O,O,X,X,O,B,X,O] = Lose
+--tictactoe[X,O,O,X,O,X,O,X,B] = Lose
+--tictactoe[X,O,O,X,O,X,O,B,X] = Lose
+--tictactoe[X,O,O,X,O,X,B,O,X] = Lose
+--tictactoe[X,O,O,X,O,B,O,X,X] = Lose
+--tictactoe[X,O,O,B,X,O,X,X,O] = Lose
+--tictactoe[X,O,O,B,O,X,X,O,X] = Lose
+--tictactoe[X,O,O,B,O,X,O,X,X] = Lose
+--tictactoe[X,O,B,X,O,X,O,O,X] = Lose
+--tictactoe[X,O,B,X,O,X,B,O,B] = Lose
+--tictactoe[X,O,B,X,O,B,B,O,X] = Lose
+--tictactoe[X,O,B,O,O,X,X,O,X] = Lose
+--tictactoe[X,O,B,B,O,X,X,O,B] = Lose
+--tictactoe[X,O,B,B,O,X,B,O,X] = Lose
+--tictactoe[X,O,B,B,O,B,X,O,X] = Lose
+--tictactoe[X,B,X,X,X,O,O,O,O] = Lose
+--tictactoe[X,B,X,X,O,X,O,O,O] = Lose
+--tictactoe[X,B,X,X,B,B,O,O,O] = Lose
+--tictactoe[X,B,X,O,X,X,O,O,O] = Lose
+--tictactoe[X,B,X,O,O,O,X,X,O] = Lose
+--tictactoe[X,B,X,O,O,O,X,O,X] = Lose
+--tictactoe[X,B,X,O,O,O,X,B,B] = Lose
+--tictactoe[X,B,X,O,O,O,O,X,X] = Lose
+--tictactoe[X,B,X,O,O,O,B,X,B] = Lose
+--tictactoe[X,B,X,O,O,O,B,B,X] = Lose
+--tictactoe[X,B,X,B,X,B,O,O,O] = Lose
+--tictactoe[X,B,X,B,B,X,O,O,O] = Lose
+--tictactoe[X,B,O,X,X,O,O,X,O] = Lose
+--tictactoe[X,B,O,X,X,O,B,B,O] = Lose
+--tictactoe[X,B,O,X,O,X,O,X,O] = Lose
+--tictactoe[X,B,O,X,O,X,O,O,X] = Lose
+--tictactoe[X,B,O,X,O,X,O,B,B] = Lose
+--tictactoe[X,B,O,X,O,O,O,X,X] = Lose
+--tictactoe[X,B,O,X,O,B,O,X,B] = Lose
+--tictactoe[X,B,O,X,O,B,O,B,X] = Lose
+--tictactoe[X,B,O,X,B,O,B,X,O] = Lose
+--tictactoe[X,B,O,O,X,O,X,X,O] = Lose
+--tictactoe[X,B,O,O,O,X,O,X,X] = Lose
+--tictactoe[X,B,O,B,X,O,X,B,O] = Lose
+--tictactoe[X,B,O,B,X,O,B,X,O] = Lose
+--tictactoe[X,B,O,B,O,X,O,X,B] = Lose
+--tictactoe[X,B,O,B,O,X,O,B,X] = Lose
+--tictactoe[X,B,O,B,O,B,O,X,X] = Lose
+--tictactoe[X,B,O,B,B,O,X,X,O] = Lose
+--tictactoe[X,B,B,X,X,B,O,O,O] = Lose
+--tictactoe[X,B,B,X,B,X,O,O,O] = Lose
+--tictactoe[X,B,B,O,O,O,X,X,B] = Lose
+--tictactoe[X,B,B,O,O,O,X,B,X] = Lose
+--tictactoe[X,B,B,O,O,O,B,X,X] = Lose
+--tictactoe[X,B,B,B,X,X,O,O,O] = Lose
+--tictactoe[O,X,X,X,X,B,O,O,O] = Lose
+--tictactoe[O,X,X,X,O,X,O,B,O] = Lose
+--tictactoe[O,X,X,X,O,X,B,O,O] = Lose
+--tictactoe[O,X,X,X,O,O,X,B,O] = Lose
+--tictactoe[O,X,X,X,O,O,B,X,O] = Lose
+--tictactoe[O,X,X,X,O,B,X,O,O] = Lose
+--tictactoe[O,X,X,X,O,B,O,X,O] = Lose
+--tictactoe[O,X,X,X,O,B,B,B,O] = Lose
+--tictactoe[O,X,X,X,B,X,O,O,O] = Lose
+--tictactoe[O,X,X,O,X,X,O,O,B] = Lose
+--tictactoe[O,X,X,O,X,X,O,B,O] = Lose
+--tictactoe[O,X,X,O,X,O,O,B,X] = Lose
+--tictactoe[O,X,X,O,X,B,O,O,X] = Lose
+--tictactoe[O,X,X,O,X,B,O,B,B] = Lose
+--tictactoe[O,X,X,O,O,X,X,B,O] = Lose
+--tictactoe[O,X,X,O,O,X,O,X,B] = Lose
+--tictactoe[O,X,X,O,O,X,B,X,O] = Lose
+--tictactoe[O,X,X,O,O,O,X,X,B] = Lose
+--tictactoe[O,X,X,O,O,O,X,B,X] = Lose
+--tictactoe[O,X,X,O,O,O,B,X,X] = Lose
+--tictactoe[O,X,X,O,O,B,X,X,O] = Lose
+--tictactoe[O,X,X,O,O,B,O,X,X] = Lose
+--tictactoe[O,X,X,O,B,X,O,X,O] = Lose
+--tictactoe[O,X,X,O,B,X,O,B,B] = Lose
+--tictactoe[O,X,X,O,B,O,O,X,X] = Lose
+--tictactoe[O,X,X,O,B,B,O,X,B] = Lose
+--tictactoe[O,X,X,O,B,B,O,B,X] = Lose
+--tictactoe[O,X,X,B,X,X,O,O,O] = Lose
+--tictactoe[O,X,X,B,O,X,X,O,O] = Lose
+--tictactoe[O,X,X,B,O,X,O,X,O] = Lose
+--tictactoe[O,X,X,B,O,X,B,B,O] = Lose
+--tictactoe[O,X,X,B,O,O,X,X,O] = Lose
+--tictactoe[O,X,X,B,O,B,X,B,O] = Lose
+--tictactoe[O,X,X,B,O,B,B,X,O] = Lose
+--tictactoe[O,X,O,X,X,O,X,B,O] = Lose
+--tictactoe[O,X,O,X,O,X,X,B,O] = Lose
+--tictactoe[O,X,O,X,O,X,O,X,B] = Lose
+--tictactoe[O,X,O,X,O,X,O,B,X] = Lose
+--tictactoe[O,X,O,X,O,X,B,X,O] = Lose
+--tictactoe[O,X,O,X,O,B,X,X,O] = Lose
+--tictactoe[O,X,O,X,O,B,O,X,X] = Lose
+--tictactoe[O,X,O,X,B,O,X,X,O] = Lose
+--tictactoe[O,X,O,O,X,X,O,B,X] = Lose
+--tictactoe[O,X,O,O,B,X,O,X,X] = Lose
+--tictactoe[O,X,O,B,O,X,X,X,O] = Lose
+--tictactoe[O,X,O,B,O,X,O,X,X] = Lose
+--tictactoe[O,X,B,X,O,X,X,O,O] = Lose
+--tictactoe[O,X,B,X,O,X,O,X,O] = Lose
+--tictactoe[O,X,B,X,O,X,B,B,O] = Lose
+--tictactoe[O,X,B,X,O,O,X,X,O] = Lose
+--tictactoe[O,X,B,X,O,B,X,B,O] = Lose
+--tictactoe[O,X,B,X,O,B,B,X,O] = Lose
+--tictactoe[O,X,B,O,X,X,O,O,X] = Lose
+--tictactoe[O,X,B,O,X,X,O,B,B] = Lose
+--tictactoe[O,X,B,O,X,B,O,B,X] = Lose
+--tictactoe[O,X,B,O,O,X,X,X,O] = Lose
+--tictactoe[O,X,B,O,O,X,O,X,X] = Lose
+--tictactoe[O,X,B,O,B,X,O,X,B] = Lose
+--tictactoe[O,X,B,O,B,X,O,B,X] = Lose
+--tictactoe[O,X,B,O,B,B,O,X,X] = Lose
+--tictactoe[O,X,B,B,O,X,X,B,O] = Lose
+--tictactoe[O,X,B,B,O,X,B,X,O] = Lose
+--tictactoe[O,X,B,B,O,B,X,X,O] = Lose
+--tictactoe[O,O,X,X,O,X,X,O,B] = Lose
+--tictactoe[O,O,X,X,O,X,X,B,O] = Lose
+--tictactoe[O,O,X,X,O,X,B,X,O] = Lose
+--tictactoe[O,O,X,X,O,B,X,X,O] = Lose
+--tictactoe[O,O,X,X,O,B,X,O,X] = Lose
+--tictactoe[O,O,X,O,X,X,O,X,B] = Lose
+--tictactoe[O,O,X,O,X,B,O,X,X] = Lose
+--tictactoe[O,O,X,B,O,X,X,X,O] = Lose
+--tictactoe[O,O,O,X,X,O,X,X,B] = Lose
+--tictactoe[O,O,O,X,X,O,X,B,X] = Lose
+--tictactoe[O,O,O,X,X,O,B,X,X] = Lose
+--tictactoe[O,O,O,X,X,B,X,X,O] = Lose
+--tictactoe[O,O,O,X,X,B,X,O,X] = Lose
+--tictactoe[O,O,O,X,X,B,X,B,B] = Lose
+--tictactoe[O,O,O,X,X,B,O,X,X] = Lose
+--tictactoe[O,O,O,X,X,B,B,X,B] = Lose
+--tictactoe[O,O,O,X,X,B,B,B,X] = Lose
+--tictactoe[O,O,O,X,O,X,X,X,B] = Lose
+--tictactoe[O,O,O,X,O,X,X,B,X] = Lose
+--tictactoe[O,O,O,X,O,X,B,X,X] = Lose
+--tictactoe[O,O,O,X,B,X,X,X,O] = Lose
+--tictactoe[O,O,O,X,B,X,X,O,X] = Lose
+--tictactoe[O,O,O,X,B,X,X,B,B] = Lose
+--tictactoe[O,O,O,X,B,X,O,X,X] = Lose
+--tictactoe[O,O,O,X,B,X,B,X,B] = Lose
+--tictactoe[O,O,O,X,B,X,B,B,X] = Lose
+--tictactoe[O,O,O,X,B,B,X,X,B] = Lose
+--tictactoe[O,O,O,X,B,B,X,B,X] = Lose
+--tictactoe[O,O,O,X,B,B,B,X,X] = Lose
+--tictactoe[O,O,O,O,X,X,X,X,B] = Lose
+--tictactoe[O,O,O,O,X,X,X,B,X] = Lose
+--tictactoe[O,O,O,O,X,X,B,X,X] = Lose
+--tictactoe[O,O,O,B,X,X,X,X,O] = Lose
+--tictactoe[O,O,O,B,X,X,X,O,X] = Lose
+--tictactoe[O,O,O,B,X,X,X,B,B] = Lose
+--tictactoe[O,O,O,B,X,X,O,X,X] = Lose
+--tictactoe[O,O,O,B,X,X,B,X,B] = Lose
+--tictactoe[O,O,O,B,X,X,B,B,X] = Lose
+--tictactoe[O,O,O,B,X,B,X,X,B] = Lose
+--tictactoe[O,O,O,B,X,B,X,B,X] = Lose
+--tictactoe[O,O,O,B,X,B,B,X,X] = Lose
+--tictactoe[O,O,O,B,B,X,X,X,B] = Lose
+--tictactoe[O,O,O,B,B,X,X,B,X] = Lose
+--tictactoe[O,O,O,B,B,X,B,X,X] = Lose
+--tictactoe[O,O,B,X,O,X,X,X,O] = Lose
+--tictactoe[O,O,B,X,O,X,X,O,X] = Lose
+--tictactoe[O,O,B,O,X,X,O,X,X] = Lose
+--tictactoe[O,B,X,X,O,X,X,O,O] = Lose
+--tictactoe[O,B,X,X,O,X,O,X,O] = Lose
+--tictactoe[O,B,X,X,O,X,B,B,O] = Lose
+--tictactoe[O,B,X,X,O,O,X,X,O] = Lose
+--tictactoe[O,B,X,X,O,B,X,B,O] = Lose
+--tictactoe[O,B,X,X,O,B,B,X,O] = Lose
+--tictactoe[O,B,X,O,X,X,O,X,O] = Lose
+--tictactoe[O,B,X,O,X,X,O,B,B] = Lose
+--tictactoe[O,B,X,O,X,O,O,X,X] = Lose
+--tictactoe[O,B,X,O,X,B,O,X,B] = Lose
+--tictactoe[O,B,X,O,X,B,O,B,X] = Lose
+--tictactoe[O,B,X,O,O,X,X,X,O] = Lose
+--tictactoe[O,B,X,O,B,X,O,X,B] = Lose
+--tictactoe[O,B,X,O,B,B,O,X,X] = Lose
+--tictactoe[O,B,X,B,O,X,X,B,O] = Lose
+--tictactoe[O,B,X,B,O,X,B,X,O] = Lose
+--tictactoe[O,B,X,B,O,B,X,X,O] = Lose
+--tictactoe[O,B,O,X,X,O,X,X,O] = Lose
+--tictactoe[O,B,O,X,O,X,X,X,O] = Lose
+--tictactoe[O,B,O,X,O,X,O,X,X] = Lose
+--tictactoe[O,B,O,O,X,X,O,X,X] = Lose
+--tictactoe[O,B,B,X,O,X,X,B,O] = Lose
+--tictactoe[O,B,B,X,O,X,B,X,O] = Lose
+--tictactoe[O,B,B,X,O,B,X,X,O] = Lose
+--tictactoe[O,B,B,O,X,X,O,X,B] = Lose
+--tictactoe[O,B,B,O,X,X,O,B,X] = Lose
+--tictactoe[O,B,B,O,X,B,O,X,X] = Lose
+--tictactoe[O,B,B,O,B,X,O,X,X] = Lose
+--tictactoe[O,B,B,B,O,X,X,X,O] = Lose
+--tictactoe[B,X,X,X,X,O,O,O,O] = Lose
+--tictactoe[B,X,X,X,O,X,O,O,O] = Lose
+--tictactoe[B,X,X,X,B,B,O,O,O] = Lose
+--tictactoe[B,X,X,O,X,X,O,O,O] = Lose
+--tictactoe[B,X,X,O,O,O,X,X,O] = Lose
+--tictactoe[B,X,X,O,O,O,X,O,X] = Lose
+--tictactoe[B,X,X,O,O,O,X,B,B] = Lose
+--tictactoe[B,X,X,O,O,O,O,X,X] = Lose
+--tictactoe[B,X,X,O,O,O,B,X,B] = Lose
+--tictactoe[B,X,X,O,O,O,B,B,X] = Lose
+--tictactoe[B,X,X,B,X,B,O,O,O] = Lose
+--tictactoe[B,X,X,B,B,X,O,O,O] = Lose
+--tictactoe[B,X,O,X,X,O,X,O,O] = Lose
+--tictactoe[B,X,O,X,X,O,B,B,O] = Lose
+--tictactoe[B,X,O,X,O,X,O,X,O] = Lose
+--tictactoe[B,X,O,X,O,X,O,O,X] = Lose
+--tictactoe[B,X,O,X,O,X,O,B,B] = Lose
+--tictactoe[B,X,O,X,O,O,X,X,O] = Lose
+--tictactoe[B,X,O,X,O,O,O,X,X] = Lose
+--tictactoe[B,X,O,X,O,B,O,X,B] = Lose
+--tictactoe[B,X,O,X,O,B,O,B,X] = Lose
+--tictactoe[B,X,O,X,B,O,X,B,O] = Lose
+--tictactoe[B,X,O,X,B,O,B,X,O] = Lose
+--tictactoe[B,X,O,O,O,X,O,X,X] = Lose
+--tictactoe[B,X,O,B,X,O,X,B,O] = Lose
+--tictactoe[B,X,O,B,O,X,O,X,B] = Lose
+--tictactoe[B,X,O,B,O,X,O,B,X] = Lose
+--tictactoe[B,X,O,B,O,B,O,X,X] = Lose
+--tictactoe[B,X,O,B,B,O,X,X,O] = Lose
+--tictactoe[B,X,B,X,X,B,O,O,O] = Lose
+--tictactoe[B,X,B,X,B,X,O,O,O] = Lose
+--tictactoe[B,X,B,O,O,O,X,X,B] = Lose
+--tictactoe[B,X,B,O,O,O,X,B,X] = Lose
+--tictactoe[B,X,B,O,O,O,B,X,X] = Lose
+--tictactoe[B,X,B,B,X,X,O,O,O] = Lose
+--tictactoe[B,O,X,X,O,X,X,O,O] = Lose
+--tictactoe[B,O,X,X,O,X,B,O,B] = Lose
+--tictactoe[B,O,X,X,O,O,X,O,X] = Lose
+--tictactoe[B,O,X,X,O,B,X,O,B] = Lose
+--tictactoe[B,O,X,X,O,B,B,O,X] = Lose
+--tictactoe[B,O,X,B,O,X,X,O,B] = Lose
+--tictactoe[B,O,X,B,O,B,X,O,X] = Lose
+--tictactoe[B,O,O,X,X,O,X,X,O] = Lose
+--tictactoe[B,O,O,X,O,X,X,O,X] = Lose
+--tictactoe[B,O,O,X,O,X,O,X,X] = Lose
+--tictactoe[B,O,B,X,O,X,X,O,B] = Lose
+--tictactoe[B,O,B,X,O,X,B,O,X] = Lose
+--tictactoe[B,O,B,X,O,B,X,O,X] = Lose
+--tictactoe[B,O,B,B,O,X,X,O,X] = Lose
+--tictactoe[B,B,X,X,X,B,O,O,O] = Lose
+--tictactoe[B,B,X,X,B,X,O,O,O] = Lose
+--tictactoe[B,B,X,O,O,O,X,X,B] = Lose
+--tictactoe[B,B,X,O,O,O,X,B,X] = Lose
+--tictactoe[B,B,X,O,O,O,B,X,X] = Lose
+--tictactoe[B,B,X,B,X,X,O,O,O] = Lose
+--tictactoe[B,B,O,X,X,O,X,B,O] = Lose
+--tictactoe[B,B,O,X,X,O,B,X,O] = Lose
+--tictactoe[B,B,O,X,O,X,O,X,B] = Lose
+--tictactoe[B,B,O,X,O,X,O,B,X] = Lose
+--tictactoe[B,B,O,X,O,B,O,X,X] = Lose
+--tictactoe[B,B,O,X,B,O,X,X,O] = Lose
+--tictactoe[B,B,O,B,X,O,X,X,O] = Lose
+--tictactoe[B,B,O,B,O,X,O,X,X] = Lose
+--tictactoe[X,X,O,O,X,X,X,O,O] = Lose
+--tictactoe[X,X,O,O,O,X,X,X,O] = Lose
+--tictactoe[X,X,O,O,O,X,X,O,X] = Lose
+--tictactoe[X,O,X,X,X,O,O,X,O] = Lose
+--tictactoe[X,O,X,X,O,X,O,X,O] = Lose
+--tictactoe[X,O,X,X,O,O,O,X,X] = Lose
+--tictactoe[X,O,X,O,X,X,O,X,O] = Lose
+--tictactoe[X,O,X,O,O,X,X,X,O] = Lose
+--tictactoe[X,O,O,O,X,X,X,X,O] = Lose
+--tictactoe[O,X,X,X,X,O,O,O,X] = Lose
+--tictactoe[O,X,X,X,O,O,X,O,X] = Lose
+--tictactoe[O,X,X,X,O,O,O,X,X] = Lose
+--tictactoe[O,X,O,X,X,O,X,O,X] = Lose
+--tictactoe[O,X,O,X,O,X,X,O,X] = Lose
+--tictactoe[O,X,O,O,X,X,X,O,X] = Lose
+--tictactoe[O,O,X,X,X,O,O,X,X] = Lose
+--   
hunk ./src/ExpEvaluator.hs 1
-{-# OPTIONS_GHC -fglasgow-exts -XTemplateHaskell   #-}
-module ExpEvaluator where
-
-import Control.Monad
-import Control.Monad.Trans ( liftIO )
-import Language.Haskell.Interpreter
-import Language.Haskell.TH
-import Language.Haskell.TH.Syntax
-import Language.Haskell.TH.Lib
-import Data.Typeable
-
-import Control.Monad.Error ( catchError )
-
-evalExpQ :: (Lift a, Typeable a) => ExpQ -> a -> ExpQ
-evalExpQ e a = do e' <- e
-                  evalExp e' a
-      --       `catchDyn` printInterpreterError
-
-evalExp :: (Lift a, Typeable a) => Exp -> a -> ExpQ
-evalExp e a = do s  <- runIO newSession
-                 join.runIO $ withSession s (interpExp e a)
-      --       `catchDyn` printInterpreterError
-      
-interpExp :: (Lift a, Typeable a) => Exp -> a -> Interpreter ExpQ
-interpExp e a =
-    do  setImports         ["Prelude"]
-        r <- interpret (pprint e) a
-        return [|r|]
---      say "Load SomeModule.hs"
---      --loadModules ["SomeModule.hs"]
---      --
---      say "Put the Prelude and *SomeModule in scope"
---      setTopLevelModules ["SomeModule"]
---      setImports         ["Prelude"]
---      --
---      say "Now we can query the type of an expression"
---      let expr1 = "(f, g, h, 42)"
---      say $ "e.g. typeOf " ++ expr1
---      say =<< typeOf expr1
---      --
---      say $ "Observe that f, g and h are defined in SomeModule.hs, " ++
---            "but f is not exported. Let's check it..."
---      exports <- getModuleExports "SomeModule"
---      say (show exports)
---      --
---      say "We can also evaluate an expression; the result will be a string"
---      let expr2 = "length $ concat [[f,g],[h]]"
---      say $ concat ["e.g. eval ", show expr1]
---      a <- eval expr2
---      say (show a)
---      --
---      say "Or we can interpret it as a proper, say, int value!"
---      a_int <- interpret expr2 (as :: Int)
---      say (show a_int)
---      --
---      say "This works for any monomorphic type, even for function types"
---      let expr3 = "\\(Just x) -> succ x"
---      say $ "e.g. we interpret " ++ expr3 ++
---            " with type Maybe Int -> Int and apply it on Just 7"
---      fun <- interpret expr3 (as :: Maybe Int -> Int)
---      say . show $ fun (Just 7)
---      --
---      say "And sometimes we can even use the type system to infer the expected type (eg Maybe Bool -> Bool)!"
---      bool_val <- (interpret expr3 infer `ap` (return $ Just False))
---      say (show $ not bool_val)
---      --
---      say "Here we evaluate an expression of type string, that when evaluated (again) leads to a string"
---      res <- interpret "head $ map show [\"Worked!\", \"Didn't work\"]" infer >>= flip interpret infer
---      say res
-
-
-say :: String -> Interpreter ()
-say = liftIO . putStrLn
-
-printInterpreterError :: InterpreterError -> IO ()
-printInterpreterError e = putStrLn $ "Ups... " ++ (show e)
rmfile ./src/ExpEvaluator.hs