main = do
	   test $ (true :: Node Int) /= false
	   test $ x == not x'
	   test $ x' == ite x false true
	   test $ (x && y) == (not (x' || y'))
	   test $ (x && z || y && z') == (x && y || x && z || y && z')
	   setCacheSize 65536
	   test $ ((x `xor` y) `xor` (x `xor` y')) == true
	   test $ (x && y) < x
	   test $ x' < (x' || y')
	   test $ iteTrue (x && x') false true
	   putStrLn "GC..."
	   runGC
	   putStrLn "Clearing..."
	   clear
	   putStrLn "Done"
main = do
	   test $ (true :: Node Int) /= false
	   test $ x == not x'
	   test $ x' == ite x false true
	   test $ (x && y) == (not (x' || y'))
	   test $ (x && z || y && z') == (x && y || x && z || y && z')
	   setCacheSize 65536
	   test $ ((x `xor` y) `xor` (x `xor` y')) == true
	   test $ (x && y) < x
	   test $ x' < (x' || y')
	   test $ iteTrue (x && x') false true
	   putStrLn "GC..."
	   runGC
	   putStrLn "Clearing..."
	   clear
	   putStrLn "Done"
main = do
	   test $ (true :: Node Int) /= false
	   test $ x == not x'
	   test $ x' == ite x false true
	   test $ (x && y) == (not (x' || y'))
	   test $ (x && z || y && z') == (x && y || x && z || y && z')
	   setCacheSize 65536
	   test $ ((x `xor` y) `xor` (x `xor` y')) == true
	   test $ (x && y) < x
	   test $ x' < (x' || y')
	   test $ iteTrue (x && x') false true
	   putStrLn "GC..."
	   runGC
	   putStrLn "Clearing..."
	   clear
	   putStrLn "Done"