packages feed

express 1.0.12 → 1.0.14

raw patch · 99 files changed

+30941/−28331 lines, 99 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.Express.Fixtures: (-...) :: Expr -> Expr -> Expr
- Data.Express.Fixtures: (-...-) :: Expr -> Expr -> Expr -> Expr
- Data.Express.Triexpr: data Triexpr a
+ Data.Express: ($$<) :: Expr -> [Expr] -> [Expr]
+ Data.Express: (>$$) :: [Expr] -> Expr -> [Expr]
+ Data.Express: (>$$<) :: [Expr] -> [Expr] -> [Expr]
+ Data.Express.Basic: ($$<) :: Expr -> [Expr] -> [Expr]
+ Data.Express.Basic: (>$$) :: [Expr] -> Expr -> [Expr]
+ Data.Express.Basic: (>$$<) :: [Expr] -> [Expr] -> [Expr]
+ Data.Express.Fixtures: (--..) :: (Expr, Expr) -> () -> Expr
+ Data.Express.Fixtures: (--..-) :: (Expr, Expr) -> Expr -> Expr
+ Data.Express.Triexpr: newtype Triexpr a
+ Data.Express.Utils.List: none :: (a -> Bool) -> [a] -> Bool
- Data.Express.Fixtures: (-..) :: Expr -> Expr
+ Data.Express.Fixtures: (-..) :: Expr -> () -> Expr

Files

.github/workflows/build.yml view
@@ -1,8 +1,8 @@ # Builds and tests this Haskell project on "GitHub Actions" #-# 2021-2023  Rudy Matela+# 2021-2024  Rudy Matela #-# some docs: https://github.com/haskell/actions/tree/main/setup+# some docs: https://github.com/haskell-actions/setup # # The official haskell docker image: https://hub.docker.com/_/haskell name: build@@ -63,6 +63,8 @@     strategy:       matrix:         ghc:+          - '9.8'+          - '9.6'           - '9.4'           - '9.2'           - '9.0'@@ -117,7 +119,7 @@     needs: build-and-test     steps:       - name: Setup Haskell's GHC and Cabal as required by current Stackage LTS-        uses: haskell/actions/setup@v2+        uses: haskell-actions/setup@v2         with: # lts-19.19           ghc-version: '9.0.2'           cabal-version: '3.4'
.gitignore view
@@ -25,8 +25,10 @@ bench/pairs bench/sort bench/tiers+bench/tiers-complete test/canon test/core+test/basic test/express test/express-derive test/fixtures
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2019-2021, Rudy Matela+Copyright (c) 2019-2024, Rudy Matela  All rights reserved. 
Makefile view
@@ -1,11 +1,12 @@ # Makefile for express #-# Copyright:   (c) 2015-2021 Rudy Matela+# Copyright:   (c) 2015-2024 Rudy Matela # License:     3-Clause BSD  (see the file LICENSE) # Maintainer:  Rudy Matela <rudy@matela.com.br> TESTS = \   test/main \   test/core \+  test/basic \   test/map \   test/instances \   test/fixtures \@@ -34,6 +35,7 @@   bench/pairs \   bench/sort \   bench/tiers \+  bench/tiers-complete \   $(EGS) GHCIMPORTDIRS = src:test GHCFLAGS = -O2 -v0 $(shell grep -q "Arch Linux" /etc/lsb-release && echo -dynamic)@@ -41,8 +43,13 @@ HUGSFLAGS = -98 -h32M RUNPARAMETERS = LIB_DEPS = base template-haskell-INSTALL_DEPS = leancheck+INSTALL_DEPS = leancheck template-haskell +# to run a specific test suite under a specific GHC, do:+# $ make clean+# $ make GHC=ghc-9.6 GHCIMPORTDIRS=src:test:../leancheck/src test/utils.run+# this is useful for troubleshooting CI failures+ all: mk/toplibs  all-all: mk/All.o@@ -91,15 +98,15 @@ test-via-stack: 	stack test express:test:main --ghc-options="$(GHCFLAGS) -O0" --system-ghc --no-install-ghc --no-terminal -diff-test: $(patsubst %,%.diff-test,$(BENCHS))+diff-test: $(patsubst %,%.diff,$(BENCHS)) -update-diff-test: $(patsubst %,%.update-diff-test,$(BENCHS))+txt: $(patsubst %,%.txt,$(BENCHS)) -%.diff-test: %-	./$< | diff -rud test/model/$<.out -+%.diff: %+	./$< | diff -rud $<.txt - -%.update-diff-test: %-	./$< >           test/model/$<.out+%.txt: %+	./$< >$<.txt  test-via-everything: test test-via-cabal test-via-stack @@ -138,11 +145,20 @@ 	cabal-ghc-7.8  v1-install $(ALL_DEPS) 	# (v2-) library installation is supported on GHC 8.0+ only) -hlint:-	hlint \+hlint: ..hlint++test.hlint:  HLINT_EXTRA = --ignore "Redundant ==" \+                           --ignore "Use null" \+                           --ignore "Redundant $$" \+                           --ignore "Use isNothing"++%.hlint:+	hlint $(HLINT_EXTRA) \ 	  --ignore "Use import/export shortcut" \ 	  --ignore "Redundant bracket" \-	  .+	  --ignore "Use lambda-case" \+	  --ignore "Use typeRep" \+	  $*  markdown: README.html 
bench/compare.hs view
@@ -1,6 +1,6 @@ -- ord.hs -- prints results of the Ord Expr's instance ----- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test import System.Environment (getArgs)@@ -13,7 +13,7 @@           (n:_) -> read n   putStrLn . unlines . map showCompare $ take n (list :: [(Expr,Expr)])   where-  showCompare (e1,e2) = concat+  showCompare (e1,e2)  =  concat     [ show e1     , " `compare` "     , show e2
+ bench/compare.txt view
@@ -0,0 +1,5041 @@+_ :: Int `compare` _ :: Int  =  EQ+_ :: Int `compare` x :: Int  =  LT+_ :: Int `compare` 0 :: Int  =  LT+_ :: Int `compare` id _ :: Int  =  LT+_ :: Int `compare` _ :: Bool  =  GT+_ :: Int `compare` _ :: Char  =  GT+_ :: Int `compare` _ :: [Int]  =  LT+x :: Int `compare` _ :: Int  =  GT+0 :: Int `compare` _ :: Int  =  GT+id _ :: Int `compare` _ :: Int  =  GT+_ :: Bool `compare` _ :: Int  =  LT+_ :: Char `compare` _ :: Int  =  LT+_ :: [Int] `compare` _ :: Int  =  GT+_ :: Int `compare` y :: Int  =  LT+_ :: Int `compare` 1 :: Int  =  LT+_ :: Int `compare` id x :: Int  =  LT+_ :: Int `compare` id 0 :: Int  =  LT+_ :: Int `compare` id (id _) :: Int  =  LT+_ :: Int `compare` negate _ :: Int  =  LT+_ :: Int `compare` abs _ :: Int  =  LT+_ :: Int `compare` _ + _ :: Int  =  LT+_ :: Int `compare` head _ :: Int  =  LT+_ :: Int `compare` ord _ :: Int  =  LT+_ :: Int `compare` p :: Bool  =  GT+_ :: Int `compare` False :: Bool  =  LT+_ :: Int `compare` True :: Bool  =  LT+_ :: Int `compare` not _ :: Bool  =  LT+_ :: Int `compare` c :: Char  =  GT+_ :: Int `compare` 'a' :: Char  =  LT+_ :: Int `compare` xs :: [Int]  =  LT+_ :: Int `compare` [] :: [Int]  =  LT+_ :: Int `compare` _:_ :: [Int]  =  LT+_ :: Int `compare` id :: Int -> Int  =  LT+_ :: Int `compare` (+) :: Int -> Int -> Int  =  LT+x :: Int `compare` x :: Int  =  EQ+x :: Int `compare` 0 :: Int  =  LT+x :: Int `compare` id _ :: Int  =  LT+x :: Int `compare` _ :: Bool  =  GT+x :: Int `compare` _ :: Char  =  GT+x :: Int `compare` _ :: [Int]  =  LT+0 :: Int `compare` x :: Int  =  GT+0 :: Int `compare` 0 :: Int  =  EQ+0 :: Int `compare` id _ :: Int  =  LT+0 :: Int `compare` _ :: Bool  =  GT+0 :: Int `compare` _ :: Char  =  GT+0 :: Int `compare` _ :: [Int]  =  GT+id _ :: Int `compare` x :: Int  =  GT+id _ :: Int `compare` 0 :: Int  =  GT+id _ :: Int `compare` id _ :: Int  =  EQ+id _ :: Int `compare` _ :: Bool  =  GT+id _ :: Int `compare` _ :: Char  =  GT+id _ :: Int `compare` _ :: [Int]  =  GT+_ :: Bool `compare` x :: Int  =  LT+_ :: Bool `compare` 0 :: Int  =  LT+_ :: Bool `compare` id _ :: Int  =  LT+_ :: Bool `compare` _ :: Bool  =  EQ+_ :: Bool `compare` _ :: Char  =  LT+_ :: Bool `compare` _ :: [Int]  =  LT+_ :: Char `compare` x :: Int  =  LT+_ :: Char `compare` 0 :: Int  =  LT+_ :: Char `compare` id _ :: Int  =  LT+_ :: Char `compare` _ :: Bool  =  GT+_ :: Char `compare` _ :: Char  =  EQ+_ :: Char `compare` _ :: [Int]  =  LT+_ :: [Int] `compare` x :: Int  =  GT+_ :: [Int] `compare` 0 :: Int  =  LT+_ :: [Int] `compare` id _ :: Int  =  LT+_ :: [Int] `compare` _ :: Bool  =  GT+_ :: [Int] `compare` _ :: Char  =  GT+_ :: [Int] `compare` _ :: [Int]  =  EQ+y :: Int `compare` _ :: Int  =  GT+1 :: Int `compare` _ :: Int  =  GT+id x :: Int `compare` _ :: Int  =  GT+id 0 :: Int `compare` _ :: Int  =  GT+id (id _) :: Int `compare` _ :: Int  =  GT+negate _ :: Int `compare` _ :: Int  =  GT+abs _ :: Int `compare` _ :: Int  =  GT+_ + _ :: Int `compare` _ :: Int  =  GT+head _ :: Int `compare` _ :: Int  =  GT+ord _ :: Int `compare` _ :: Int  =  GT+p :: Bool `compare` _ :: Int  =  LT+False :: Bool `compare` _ :: Int  =  GT+True :: Bool `compare` _ :: Int  =  GT+not _ :: Bool `compare` _ :: Int  =  GT+c :: Char `compare` _ :: Int  =  LT+'a' :: Char `compare` _ :: Int  =  GT+xs :: [Int] `compare` _ :: Int  =  GT+[] :: [Int] `compare` _ :: Int  =  GT+_:_ :: [Int] `compare` _ :: Int  =  GT+id :: Int -> Int `compare` _ :: Int  =  GT+(+) :: Int -> Int -> Int `compare` _ :: Int  =  GT+_ :: Int `compare` z :: Int  =  LT+_ :: Int `compare` -1 :: Int  =  LT+_ :: Int `compare` id y :: Int  =  LT+_ :: Int `compare` id 1 :: Int  =  LT+_ :: Int `compare` id (id x) :: Int  =  LT+_ :: Int `compare` id (id 0) :: Int  =  LT+_ :: Int `compare` id (id (id _)) :: Int  =  LT+_ :: Int `compare` id (negate _) :: Int  =  LT+_ :: Int `compare` id (abs _) :: Int  =  LT+_ :: Int `compare` id (_ + _) :: Int  =  LT+_ :: Int `compare` id (head _) :: Int  =  LT+_ :: Int `compare` id (ord _) :: Int  =  LT+_ :: Int `compare` negate x :: Int  =  LT+_ :: Int `compare` negate 0 :: Int  =  LT+_ :: Int `compare` negate (id _) :: Int  =  LT+_ :: Int `compare` abs x :: Int  =  LT+_ :: Int `compare` abs 0 :: Int  =  LT+_ :: Int `compare` abs (id _) :: Int  =  LT+_ :: Int `compare` _ + x :: Int  =  LT+_ :: Int `compare` _ + 0 :: Int  =  LT+_ :: Int `compare` _ + id _ :: Int  =  LT+_ :: Int `compare` x + _ :: Int  =  LT+_ :: Int `compare` 0 + _ :: Int  =  LT+_ :: Int `compare` id _ + _ :: Int  =  LT+_ :: Int `compare` _ * _ :: Int  =  LT+_ :: Int `compare` f _ :: Int  =  LT+_ :: Int `compare` head xs :: Int  =  LT+_ :: Int `compare` head [] :: Int  =  LT+_ :: Int `compare` head (_:_) :: Int  =  LT+_ :: Int `compare` ord c :: Int  =  LT+_ :: Int `compare` ord 'a' :: Int  =  LT+_ :: Int `compare` q :: Bool  =  GT+_ :: Int `compare` not p :: Bool  =  LT+_ :: Int `compare` not False :: Bool  =  LT+_ :: Int `compare` not True :: Bool  =  LT+_ :: Int `compare` not (not _) :: Bool  =  LT+_ :: Int `compare` _ || _ :: Bool  =  LT+_ :: Int `compare` d :: Char  =  GT+_ :: Int `compare` ' ' :: Char  =  LT+_ :: Int `compare` ys :: [Int]  =  LT+_ :: Int `compare` [0] :: [Int]  =  LT+_ :: Int `compare` _:xs :: [Int]  =  LT+_ :: Int `compare` [_] :: [Int]  =  LT+_ :: Int `compare` _:_:_ :: [Int]  =  LT+_ :: Int `compare` x:_ :: [Int]  =  LT+_ :: Int `compare` 0:_ :: [Int]  =  LT+_ :: Int `compare` id _:_ :: [Int]  =  LT+_ :: Int `compare` tail _ :: [Int]  =  LT+_ :: Int `compare` _ ++ _ :: [Int]  =  LT+_ :: Int `compare` negate :: Int -> Int  =  LT+_ :: Int `compare` abs :: Int -> Int  =  LT+_ :: Int `compare` (_ +) :: Int -> Int  =  LT+_ :: Int `compare` (*) :: Int -> Int -> Int  =  LT+_ :: Int `compare` not :: Bool -> Bool  =  LT+_ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT+x :: Int `compare` y :: Int  =  LT+x :: Int `compare` 1 :: Int  =  LT+x :: Int `compare` id x :: Int  =  LT+x :: Int `compare` id 0 :: Int  =  LT+x :: Int `compare` id (id _) :: Int  =  LT+x :: Int `compare` negate _ :: Int  =  LT+x :: Int `compare` abs _ :: Int  =  LT+x :: Int `compare` _ + _ :: Int  =  LT+x :: Int `compare` head _ :: Int  =  LT+x :: Int `compare` ord _ :: Int  =  LT+x :: Int `compare` p :: Bool  =  GT+x :: Int `compare` False :: Bool  =  LT+x :: Int `compare` True :: Bool  =  LT+x :: Int `compare` not _ :: Bool  =  LT+x :: Int `compare` c :: Char  =  GT+x :: Int `compare` 'a' :: Char  =  LT+x :: Int `compare` xs :: [Int]  =  LT+x :: Int `compare` [] :: [Int]  =  LT+x :: Int `compare` _:_ :: [Int]  =  LT+x :: Int `compare` id :: Int -> Int  =  LT+x :: Int `compare` (+) :: Int -> Int -> Int  =  LT+0 :: Int `compare` y :: Int  =  GT+0 :: Int `compare` 1 :: Int  =  LT+0 :: Int `compare` id x :: Int  =  LT+0 :: Int `compare` id 0 :: Int  =  LT+0 :: Int `compare` id (id _) :: Int  =  LT+0 :: Int `compare` negate _ :: Int  =  LT+0 :: Int `compare` abs _ :: Int  =  LT+0 :: Int `compare` _ + _ :: Int  =  LT+0 :: Int `compare` head _ :: Int  =  LT+0 :: Int `compare` ord _ :: Int  =  LT+0 :: Int `compare` p :: Bool  =  GT+0 :: Int `compare` False :: Bool  =  GT+0 :: Int `compare` True :: Bool  =  GT+0 :: Int `compare` not _ :: Bool  =  LT+0 :: Int `compare` c :: Char  =  GT+0 :: Int `compare` 'a' :: Char  =  GT+0 :: Int `compare` xs :: [Int]  =  GT+0 :: Int `compare` [] :: [Int]  =  LT+0 :: Int `compare` _:_ :: [Int]  =  LT+0 :: Int `compare` id :: Int -> Int  =  LT+0 :: Int `compare` (+) :: Int -> Int -> Int  =  LT+id _ :: Int `compare` y :: Int  =  GT+id _ :: Int `compare` 1 :: Int  =  GT+id _ :: Int `compare` id x :: Int  =  LT+id _ :: Int `compare` id 0 :: Int  =  LT+id _ :: Int `compare` id (id _) :: Int  =  LT+id _ :: Int `compare` negate _ :: Int  =  LT+id _ :: Int `compare` abs _ :: Int  =  LT+id _ :: Int `compare` _ + _ :: Int  =  LT+id _ :: Int `compare` head _ :: Int  =  LT+id _ :: Int `compare` ord _ :: Int  =  GT+id _ :: Int `compare` p :: Bool  =  GT+id _ :: Int `compare` False :: Bool  =  GT+id _ :: Int `compare` True :: Bool  =  GT+id _ :: Int `compare` not _ :: Bool  =  GT+id _ :: Int `compare` c :: Char  =  GT+id _ :: Int `compare` 'a' :: Char  =  GT+id _ :: Int `compare` xs :: [Int]  =  GT+id _ :: Int `compare` [] :: [Int]  =  GT+id _ :: Int `compare` _:_ :: [Int]  =  LT+id _ :: Int `compare` id :: Int -> Int  =  GT+id _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT+_ :: Bool `compare` y :: Int  =  LT+_ :: Bool `compare` 1 :: Int  =  LT+_ :: Bool `compare` id x :: Int  =  LT+_ :: Bool `compare` id 0 :: Int  =  LT+_ :: Bool `compare` id (id _) :: Int  =  LT+_ :: Bool `compare` negate _ :: Int  =  LT+_ :: Bool `compare` abs _ :: Int  =  LT+_ :: Bool `compare` _ + _ :: Int  =  LT+_ :: Bool `compare` head _ :: Int  =  LT+_ :: Bool `compare` ord _ :: Int  =  LT+_ :: Bool `compare` p :: Bool  =  LT+_ :: Bool `compare` False :: Bool  =  LT+_ :: Bool `compare` True :: Bool  =  LT+_ :: Bool `compare` not _ :: Bool  =  LT+_ :: Bool `compare` c :: Char  =  LT+_ :: Bool `compare` 'a' :: Char  =  LT+_ :: Bool `compare` xs :: [Int]  =  LT+_ :: Bool `compare` [] :: [Int]  =  LT+_ :: Bool `compare` _:_ :: [Int]  =  LT+_ :: Bool `compare` id :: Int -> Int  =  LT+_ :: Bool `compare` (+) :: Int -> Int -> Int  =  LT+_ :: Char `compare` y :: Int  =  LT+_ :: Char `compare` 1 :: Int  =  LT+_ :: Char `compare` id x :: Int  =  LT+_ :: Char `compare` id 0 :: Int  =  LT+_ :: Char `compare` id (id _) :: Int  =  LT+_ :: Char `compare` negate _ :: Int  =  LT+_ :: Char `compare` abs _ :: Int  =  LT+_ :: Char `compare` _ + _ :: Int  =  LT+_ :: Char `compare` head _ :: Int  =  LT+_ :: Char `compare` ord _ :: Int  =  LT+_ :: Char `compare` p :: Bool  =  GT+_ :: Char `compare` False :: Bool  =  LT+_ :: Char `compare` True :: Bool  =  LT+_ :: Char `compare` not _ :: Bool  =  LT+_ :: Char `compare` c :: Char  =  LT+_ :: Char `compare` 'a' :: Char  =  LT+_ :: Char `compare` xs :: [Int]  =  LT+_ :: Char `compare` [] :: [Int]  =  LT+_ :: Char `compare` _:_ :: [Int]  =  LT+_ :: Char `compare` id :: Int -> Int  =  LT+_ :: Char `compare` (+) :: Int -> Int -> Int  =  LT+_ :: [Int] `compare` y :: Int  =  GT+_ :: [Int] `compare` 1 :: Int  =  LT+_ :: [Int] `compare` id x :: Int  =  LT+_ :: [Int] `compare` id 0 :: Int  =  LT+_ :: [Int] `compare` id (id _) :: Int  =  LT+_ :: [Int] `compare` negate _ :: Int  =  LT+_ :: [Int] `compare` abs _ :: Int  =  LT+_ :: [Int] `compare` _ + _ :: Int  =  LT+_ :: [Int] `compare` head _ :: Int  =  LT+_ :: [Int] `compare` ord _ :: Int  =  LT+_ :: [Int] `compare` p :: Bool  =  GT+_ :: [Int] `compare` False :: Bool  =  LT+_ :: [Int] `compare` True :: Bool  =  LT+_ :: [Int] `compare` not _ :: Bool  =  LT+_ :: [Int] `compare` c :: Char  =  GT+_ :: [Int] `compare` 'a' :: Char  =  LT+_ :: [Int] `compare` xs :: [Int]  =  LT+_ :: [Int] `compare` [] :: [Int]  =  LT+_ :: [Int] `compare` _:_ :: [Int]  =  LT+_ :: [Int] `compare` id :: Int -> Int  =  LT+_ :: [Int] `compare` (+) :: Int -> Int -> Int  =  LT+y :: Int `compare` x :: Int  =  GT+y :: Int `compare` 0 :: Int  =  LT+y :: Int `compare` id _ :: Int  =  LT+y :: Int `compare` _ :: Bool  =  GT+y :: Int `compare` _ :: Char  =  GT+y :: Int `compare` _ :: [Int]  =  LT+1 :: Int `compare` x :: Int  =  GT+1 :: Int `compare` 0 :: Int  =  GT+1 :: Int `compare` id _ :: Int  =  LT+1 :: Int `compare` _ :: Bool  =  GT+1 :: Int `compare` _ :: Char  =  GT+1 :: Int `compare` _ :: [Int]  =  GT+id x :: Int `compare` x :: Int  =  GT+id x :: Int `compare` 0 :: Int  =  GT+id x :: Int `compare` id _ :: Int  =  GT+id x :: Int `compare` _ :: Bool  =  GT+id x :: Int `compare` _ :: Char  =  GT+id x :: Int `compare` _ :: [Int]  =  GT+id 0 :: Int `compare` x :: Int  =  GT+id 0 :: Int `compare` 0 :: Int  =  GT+id 0 :: Int `compare` id _ :: Int  =  GT+id 0 :: Int `compare` _ :: Bool  =  GT+id 0 :: Int `compare` _ :: Char  =  GT+id 0 :: Int `compare` _ :: [Int]  =  GT+id (id _) :: Int `compare` x :: Int  =  GT+id (id _) :: Int `compare` 0 :: Int  =  GT+id (id _) :: Int `compare` id _ :: Int  =  GT+id (id _) :: Int `compare` _ :: Bool  =  GT+id (id _) :: Int `compare` _ :: Char  =  GT+id (id _) :: Int `compare` _ :: [Int]  =  GT+negate _ :: Int `compare` x :: Int  =  GT+negate _ :: Int `compare` 0 :: Int  =  GT+negate _ :: Int `compare` id _ :: Int  =  GT+negate _ :: Int `compare` _ :: Bool  =  GT+negate _ :: Int `compare` _ :: Char  =  GT+negate _ :: Int `compare` _ :: [Int]  =  GT+abs _ :: Int `compare` x :: Int  =  GT+abs _ :: Int `compare` 0 :: Int  =  GT+abs _ :: Int `compare` id _ :: Int  =  GT+abs _ :: Int `compare` _ :: Bool  =  GT+abs _ :: Int `compare` _ :: Char  =  GT+abs _ :: Int `compare` _ :: [Int]  =  GT+_ + _ :: Int `compare` x :: Int  =  GT+_ + _ :: Int `compare` 0 :: Int  =  GT+_ + _ :: Int `compare` id _ :: Int  =  GT+_ + _ :: Int `compare` _ :: Bool  =  GT+_ + _ :: Int `compare` _ :: Char  =  GT+_ + _ :: Int `compare` _ :: [Int]  =  GT+head _ :: Int `compare` x :: Int  =  GT+head _ :: Int `compare` 0 :: Int  =  GT+head _ :: Int `compare` id _ :: Int  =  GT+head _ :: Int `compare` _ :: Bool  =  GT+head _ :: Int `compare` _ :: Char  =  GT+head _ :: Int `compare` _ :: [Int]  =  GT+ord _ :: Int `compare` x :: Int  =  GT+ord _ :: Int `compare` 0 :: Int  =  GT+ord _ :: Int `compare` id _ :: Int  =  LT+ord _ :: Int `compare` _ :: Bool  =  GT+ord _ :: Int `compare` _ :: Char  =  GT+ord _ :: Int `compare` _ :: [Int]  =  GT+p :: Bool `compare` x :: Int  =  LT+p :: Bool `compare` 0 :: Int  =  LT+p :: Bool `compare` id _ :: Int  =  LT+p :: Bool `compare` _ :: Bool  =  GT+p :: Bool `compare` _ :: Char  =  LT+p :: Bool `compare` _ :: [Int]  =  LT+False :: Bool `compare` x :: Int  =  GT+False :: Bool `compare` 0 :: Int  =  LT+False :: Bool `compare` id _ :: Int  =  LT+False :: Bool `compare` _ :: Bool  =  GT+False :: Bool `compare` _ :: Char  =  GT+False :: Bool `compare` _ :: [Int]  =  GT+True :: Bool `compare` x :: Int  =  GT+True :: Bool `compare` 0 :: Int  =  LT+True :: Bool `compare` id _ :: Int  =  LT+True :: Bool `compare` _ :: Bool  =  GT+True :: Bool `compare` _ :: Char  =  GT+True :: Bool `compare` _ :: [Int]  =  GT+not _ :: Bool `compare` x :: Int  =  GT+not _ :: Bool `compare` 0 :: Int  =  GT+not _ :: Bool `compare` id _ :: Int  =  LT+not _ :: Bool `compare` _ :: Bool  =  GT+not _ :: Bool `compare` _ :: Char  =  GT+not _ :: Bool `compare` _ :: [Int]  =  GT+c :: Char `compare` x :: Int  =  LT+c :: Char `compare` 0 :: Int  =  LT+c :: Char `compare` id _ :: Int  =  LT+c :: Char `compare` _ :: Bool  =  GT+c :: Char `compare` _ :: Char  =  GT+c :: Char `compare` _ :: [Int]  =  LT+'a' :: Char `compare` x :: Int  =  GT+'a' :: Char `compare` 0 :: Int  =  LT+'a' :: Char `compare` id _ :: Int  =  LT+'a' :: Char `compare` _ :: Bool  =  GT+'a' :: Char `compare` _ :: Char  =  GT+'a' :: Char `compare` _ :: [Int]  =  GT+xs :: [Int] `compare` x :: Int  =  GT+xs :: [Int] `compare` 0 :: Int  =  LT+xs :: [Int] `compare` id _ :: Int  =  LT+xs :: [Int] `compare` _ :: Bool  =  GT+xs :: [Int] `compare` _ :: Char  =  GT+xs :: [Int] `compare` _ :: [Int]  =  GT+[] :: [Int] `compare` x :: Int  =  GT+[] :: [Int] `compare` 0 :: Int  =  GT+[] :: [Int] `compare` id _ :: Int  =  LT+[] :: [Int] `compare` _ :: Bool  =  GT+[] :: [Int] `compare` _ :: Char  =  GT+[] :: [Int] `compare` _ :: [Int]  =  GT+_:_ :: [Int] `compare` x :: Int  =  GT+_:_ :: [Int] `compare` 0 :: Int  =  GT+_:_ :: [Int] `compare` id _ :: Int  =  GT+_:_ :: [Int] `compare` _ :: Bool  =  GT+_:_ :: [Int] `compare` _ :: Char  =  GT+_:_ :: [Int] `compare` _ :: [Int]  =  GT+id :: Int -> Int `compare` x :: Int  =  GT+id :: Int -> Int `compare` 0 :: Int  =  GT+id :: Int -> Int `compare` id _ :: Int  =  LT+id :: Int -> Int `compare` _ :: Bool  =  GT+id :: Int -> Int `compare` _ :: Char  =  GT+id :: Int -> Int `compare` _ :: [Int]  =  GT+(+) :: Int -> Int -> Int `compare` x :: Int  =  GT+(+) :: Int -> Int -> Int `compare` 0 :: Int  =  GT+(+) :: Int -> Int -> Int `compare` id _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` _ :: Bool  =  GT+(+) :: Int -> Int -> Int `compare` _ :: Char  =  GT+(+) :: Int -> Int -> Int `compare` _ :: [Int]  =  GT+z :: Int `compare` _ :: Int  =  GT+-1 :: Int `compare` _ :: Int  =  GT+id y :: Int `compare` _ :: Int  =  GT+id 1 :: Int `compare` _ :: Int  =  GT+id (id x) :: Int `compare` _ :: Int  =  GT+id (id 0) :: Int `compare` _ :: Int  =  GT+id (id (id _)) :: Int `compare` _ :: Int  =  GT+id (negate _) :: Int `compare` _ :: Int  =  GT+id (abs _) :: Int `compare` _ :: Int  =  GT+id (_ + _) :: Int `compare` _ :: Int  =  GT+id (head _) :: Int `compare` _ :: Int  =  GT+id (ord _) :: Int `compare` _ :: Int  =  GT+negate x :: Int `compare` _ :: Int  =  GT+negate 0 :: Int `compare` _ :: Int  =  GT+negate (id _) :: Int `compare` _ :: Int  =  GT+abs x :: Int `compare` _ :: Int  =  GT+abs 0 :: Int `compare` _ :: Int  =  GT+abs (id _) :: Int `compare` _ :: Int  =  GT+_ + x :: Int `compare` _ :: Int  =  GT+_ + 0 :: Int `compare` _ :: Int  =  GT+_ + id _ :: Int `compare` _ :: Int  =  GT+x + _ :: Int `compare` _ :: Int  =  GT+0 + _ :: Int `compare` _ :: Int  =  GT+id _ + _ :: Int `compare` _ :: Int  =  GT+_ * _ :: Int `compare` _ :: Int  =  GT+f _ :: Int `compare` _ :: Int  =  GT+head xs :: Int `compare` _ :: Int  =  GT+head [] :: Int `compare` _ :: Int  =  GT+head (_:_) :: Int `compare` _ :: Int  =  GT+ord c :: Int `compare` _ :: Int  =  GT+ord 'a' :: Int `compare` _ :: Int  =  GT+q :: Bool `compare` _ :: Int  =  LT+not p :: Bool `compare` _ :: Int  =  GT+not False :: Bool `compare` _ :: Int  =  GT+not True :: Bool `compare` _ :: Int  =  GT+not (not _) :: Bool `compare` _ :: Int  =  GT+_ || _ :: Bool `compare` _ :: Int  =  GT+d :: Char `compare` _ :: Int  =  LT+' ' :: Char `compare` _ :: Int  =  GT+ys :: [Int] `compare` _ :: Int  =  GT+[0] :: [Int] `compare` _ :: Int  =  GT+_:xs :: [Int] `compare` _ :: Int  =  GT+[_] :: [Int] `compare` _ :: Int  =  GT+_:_:_ :: [Int] `compare` _ :: Int  =  GT+x:_ :: [Int] `compare` _ :: Int  =  GT+0:_ :: [Int] `compare` _ :: Int  =  GT+id _:_ :: [Int] `compare` _ :: Int  =  GT+tail _ :: [Int] `compare` _ :: Int  =  GT+_ ++ _ :: [Int] `compare` _ :: Int  =  GT+negate :: Int -> Int `compare` _ :: Int  =  GT+abs :: Int -> Int `compare` _ :: Int  =  GT+(_ +) :: Int -> Int `compare` _ :: Int  =  GT+(*) :: Int -> Int -> Int `compare` _ :: Int  =  GT+not :: Bool -> Bool `compare` _ :: Int  =  GT+(||) :: Bool -> Bool -> Bool `compare` _ :: Int  =  GT+_ :: Int `compare` x' :: Int  =  LT+_ :: Int `compare` 2 :: Int  =  LT+_ :: Int `compare` id z :: Int  =  LT+_ :: Int `compare` id (-1) :: Int  =  LT+_ :: Int `compare` id (id y) :: Int  =  LT+_ :: Int `compare` id (id 1) :: Int  =  LT+_ :: Int `compare` id (id (id x)) :: Int  =  LT+_ :: Int `compare` id (id (id 0)) :: Int  =  LT+_ :: Int `compare` id (id (id (id _))) :: Int  =  LT+_ :: Int `compare` id (id (negate _)) :: Int  =  LT+_ :: Int `compare` id (id (abs _)) :: Int  =  LT+_ :: Int `compare` id (id (_ + _)) :: Int  =  LT+_ :: Int `compare` id (id (head _)) :: Int  =  LT+_ :: Int `compare` id (id (ord _)) :: Int  =  LT+_ :: Int `compare` id (negate x) :: Int  =  LT+_ :: Int `compare` id (negate 0) :: Int  =  LT+_ :: Int `compare` id (negate (id _)) :: Int  =  LT+_ :: Int `compare` id (abs x) :: Int  =  LT+_ :: Int `compare` id (abs 0) :: Int  =  LT+_ :: Int `compare` id (abs (id _)) :: Int  =  LT+_ :: Int `compare` id (_ + x) :: Int  =  LT+_ :: Int `compare` id (_ + 0) :: Int  =  LT+_ :: Int `compare` id (_ + id _) :: Int  =  LT+_ :: Int `compare` id (x + _) :: Int  =  LT+_ :: Int `compare` id (0 + _) :: Int  =  LT+_ :: Int `compare` id (id _ + _) :: Int  =  LT+_ :: Int `compare` id (_ * _) :: Int  =  LT+_ :: Int `compare` id (f _) :: Int  =  LT+_ :: Int `compare` id (head xs) :: Int  =  LT+_ :: Int `compare` id (head []) :: Int  =  LT+_ :: Int `compare` id (head (_:_)) :: Int  =  LT+_ :: Int `compare` id (ord c) :: Int  =  LT+_ :: Int `compare` id (ord 'a') :: Int  =  LT+_ :: Int `compare` negate y :: Int  =  LT+_ :: Int `compare` negate 1 :: Int  =  LT+_ :: Int `compare` negate (id x) :: Int  =  LT+_ :: Int `compare` negate (id 0) :: Int  =  LT+_ :: Int `compare` negate (id (id _)) :: Int  =  LT+_ :: Int `compare` negate (negate _) :: Int  =  LT+_ :: Int `compare` negate (abs _) :: Int  =  LT+_ :: Int `compare` negate (_ + _) :: Int  =  LT+_ :: Int `compare` negate (head _) :: Int  =  LT+_ :: Int `compare` negate (ord _) :: Int  =  LT+_ :: Int `compare` abs y :: Int  =  LT+_ :: Int `compare` abs 1 :: Int  =  LT+_ :: Int `compare` abs (id x) :: Int  =  LT+_ :: Int `compare` abs (id 0) :: Int  =  LT+_ :: Int `compare` abs (id (id _)) :: Int  =  LT+_ :: Int `compare` abs (negate _) :: Int  =  LT+_ :: Int `compare` abs (abs _) :: Int  =  LT+_ :: Int `compare` abs (_ + _) :: Int  =  LT+_ :: Int `compare` abs (head _) :: Int  =  LT+_ :: Int `compare` abs (ord _) :: Int  =  LT+_ :: Int `compare` _ + y :: Int  =  LT+_ :: Int `compare` _ + 1 :: Int  =  LT+_ :: Int `compare` _ + id x :: Int  =  LT+_ :: Int `compare` _ + id 0 :: Int  =  LT+_ :: Int `compare` _ + id (id _) :: Int  =  LT+_ :: Int `compare` _ + negate _ :: Int  =  LT+_ :: Int `compare` _ + abs _ :: Int  =  LT+_ :: Int `compare` _ + (_ + _) :: Int  =  LT+_ :: Int `compare` _ + head _ :: Int  =  LT+_ :: Int `compare` _ + ord _ :: Int  =  LT+_ :: Int `compare` x + x :: Int  =  LT+_ :: Int `compare` x + 0 :: Int  =  LT+_ :: Int `compare` x + id _ :: Int  =  LT+_ :: Int `compare` 0 + x :: Int  =  LT+_ :: Int `compare` 0 + 0 :: Int  =  LT+_ :: Int `compare` 0 + id _ :: Int  =  LT+_ :: Int `compare` id _ + x :: Int  =  LT+_ :: Int `compare` id _ + 0 :: Int  =  LT+_ :: Int `compare` id _ + id _ :: Int  =  LT+_ :: Int `compare` _ * x :: Int  =  LT+_ :: Int `compare` _ * 0 :: Int  =  LT+_ :: Int `compare` _ * id _ :: Int  =  LT+_ :: Int `compare` f x :: Int  =  LT+_ :: Int `compare` f 0 :: Int  =  LT+_ :: Int `compare` f (id _) :: Int  =  LT+_ :: Int `compare` y + _ :: Int  =  LT+_ :: Int `compare` 1 + _ :: Int  =  LT+_ :: Int `compare` id x + _ :: Int  =  LT+_ :: Int `compare` id 0 + _ :: Int  =  LT+_ :: Int `compare` id (id _) + _ :: Int  =  LT+_ :: Int `compare` negate _ + _ :: Int  =  LT+_ :: Int `compare` abs _ + _ :: Int  =  LT+_ :: Int `compare` (_ + _) + _ :: Int  =  LT+_ :: Int `compare` head _ + _ :: Int  =  LT+_ :: Int `compare` ord _ + _ :: Int  =  LT+_ :: Int `compare` x * _ :: Int  =  LT+_ :: Int `compare` 0 * _ :: Int  =  LT+_ :: Int `compare` id _ * _ :: Int  =  LT+_ :: Int `compare` g _ :: Int  =  LT+_ :: Int `compare` head ys :: Int  =  LT+_ :: Int `compare` head [0] :: Int  =  LT+_ :: Int `compare` head (_:xs) :: Int  =  LT+_ :: Int `compare` head [_] :: Int  =  LT+_ :: Int `compare` head (_:_:_) :: Int  =  LT+_ :: Int `compare` head (x:_) :: Int  =  LT+_ :: Int `compare` head (0:_) :: Int  =  LT+_ :: Int `compare` head (id _:_) :: Int  =  LT+_ :: Int `compare` head (tail _) :: Int  =  LT+_ :: Int `compare` head (_ ++ _) :: Int  =  LT+_ :: Int `compare` ord d :: Int  =  LT+_ :: Int `compare` ord ' ' :: Int  =  LT+_ :: Int `compare` r :: Bool  =  GT+_ :: Int `compare` not q :: Bool  =  LT+_ :: Int `compare` not (not p) :: Bool  =  LT+_ :: Int `compare` not (not False) :: Bool  =  LT+_ :: Int `compare` not (not True) :: Bool  =  LT+_ :: Int `compare` not (not (not _)) :: Bool  =  LT+_ :: Int `compare` not (_ || _) :: Bool  =  LT+_ :: Int `compare` _ || p :: Bool  =  LT+_ :: Int `compare` _ || False :: Bool  =  LT+_ :: Int `compare` _ || True :: Bool  =  LT+_ :: Int `compare` _ || not _ :: Bool  =  LT+_ :: Int `compare` p || _ :: Bool  =  LT+_ :: Int `compare` False || _ :: Bool  =  LT+_ :: Int `compare` True || _ :: Bool  =  LT+_ :: Int `compare` not _ || _ :: Bool  =  LT+_ :: Int `compare` _ && _ :: Bool  =  LT+_ :: Int `compare` _ == _ :: Bool  =  LT+_ :: Int `compare` _ == _ :: Bool  =  LT+_ :: Int `compare` odd _ :: Bool  =  LT+_ :: Int `compare` even _ :: Bool  =  LT+_ :: Int `compare` elem _ _ :: Bool  =  LT+_ :: Int `compare` e :: Char  =  GT+_ :: Int `compare` 'b' :: Char  =  LT+_ :: Int `compare` zs :: [Int]  =  LT+_ :: Int `compare` [0,0] :: [Int]  =  LT+_ :: Int `compare` [1] :: [Int]  =  LT+_ :: Int `compare` _:ys :: [Int]  =  LT+_ :: Int `compare` _:[0] :: [Int]  =  LT+_ :: Int `compare` _:_:xs :: [Int]  =  LT+_ :: Int `compare` [_,_] :: [Int]  =  LT+_ :: Int `compare` _:_:_:_ :: [Int]  =  LT+_ :: Int `compare` _:x:_ :: [Int]  =  LT+_ :: Int `compare` _:0:_ :: [Int]  =  LT+_ :: Int `compare` _:id _:_ :: [Int]  =  LT+_ :: Int `compare` _:tail _ :: [Int]  =  LT+_ :: Int `compare` _:(_ ++ _) :: [Int]  =  LT+_ :: Int `compare` x:xs :: [Int]  =  LT+_ :: Int `compare` [x] :: [Int]  =  LT+_ :: Int `compare` x:_:_ :: [Int]  =  LT+_ :: Int `compare` 0:xs :: [Int]  =  LT+_ :: Int `compare` [0] :: [Int]  =  LT+_ :: Int `compare` 0:_:_ :: [Int]  =  LT+_ :: Int `compare` id _:xs :: [Int]  =  LT+_ :: Int `compare` [id _] :: [Int]  =  LT+_ :: Int `compare` id _:_:_ :: [Int]  =  LT+_ :: Int `compare` y:_ :: [Int]  =  LT+_ :: Int `compare` 1:_ :: [Int]  =  LT+_ :: Int `compare` id x:_ :: [Int]  =  LT+_ :: Int `compare` id 0:_ :: [Int]  =  LT+_ :: Int `compare` id (id _):_ :: [Int]  =  LT+_ :: Int `compare` negate _:_ :: [Int]  =  LT+_ :: Int `compare` abs _:_ :: [Int]  =  LT+_ :: Int `compare` _ + _:_ :: [Int]  =  LT+_ :: Int `compare` head _:_ :: [Int]  =  LT+_ :: Int `compare` ord _:_ :: [Int]  =  LT+_ :: Int `compare` tail xs :: [Int]  =  LT+_ :: Int `compare` tail [] :: [Int]  =  LT+_ :: Int `compare` tail (_:_) :: [Int]  =  LT+_ :: Int `compare` _ ++ xs :: [Int]  =  LT+_ :: Int `compare` _ ++ [] :: [Int]  =  LT+_ :: Int `compare` _ ++ (_:_) :: [Int]  =  LT+_ :: Int `compare` xs ++ _ :: [Int]  =  LT+_ :: Int `compare` [] ++ _ :: [Int]  =  LT+_ :: Int `compare` (_:_) ++ _ :: [Int]  =  LT+_ :: Int `compare` sort _ :: [Int]  =  LT+_ :: Int `compare` insert _ _ :: [Int]  =  LT+_ :: Int `compare` (x +) :: Int -> Int  =  LT+_ :: Int `compare` (0 +) :: Int -> Int  =  LT+_ :: Int `compare` (id _ +) :: Int -> Int  =  LT+_ :: Int `compare` (_ *) :: Int -> Int  =  LT+_ :: Int `compare` f :: Int -> Int  =  LT+_ :: Int `compare` (_ ||) :: Bool -> Bool  =  LT+_ :: Int `compare` (&&) :: Bool -> Bool -> Bool  =  LT+x :: Int `compare` z :: Int  =  LT+x :: Int `compare` -1 :: Int  =  LT+x :: Int `compare` id y :: Int  =  LT+x :: Int `compare` id 1 :: Int  =  LT+x :: Int `compare` id (id x) :: Int  =  LT+x :: Int `compare` id (id 0) :: Int  =  LT+x :: Int `compare` id (id (id _)) :: Int  =  LT+x :: Int `compare` id (negate _) :: Int  =  LT+x :: Int `compare` id (abs _) :: Int  =  LT+x :: Int `compare` id (_ + _) :: Int  =  LT+x :: Int `compare` id (head _) :: Int  =  LT+x :: Int `compare` id (ord _) :: Int  =  LT+x :: Int `compare` negate x :: Int  =  LT+x :: Int `compare` negate 0 :: Int  =  LT+x :: Int `compare` negate (id _) :: Int  =  LT+x :: Int `compare` abs x :: Int  =  LT+x :: Int `compare` abs 0 :: Int  =  LT+x :: Int `compare` abs (id _) :: Int  =  LT+x :: Int `compare` _ + x :: Int  =  LT+x :: Int `compare` _ + 0 :: Int  =  LT+x :: Int `compare` _ + id _ :: Int  =  LT+x :: Int `compare` x + _ :: Int  =  LT+x :: Int `compare` 0 + _ :: Int  =  LT+x :: Int `compare` id _ + _ :: Int  =  LT+x :: Int `compare` _ * _ :: Int  =  LT+x :: Int `compare` f _ :: Int  =  LT+x :: Int `compare` head xs :: Int  =  LT+x :: Int `compare` head [] :: Int  =  LT+x :: Int `compare` head (_:_) :: Int  =  LT+x :: Int `compare` ord c :: Int  =  LT+x :: Int `compare` ord 'a' :: Int  =  LT+x :: Int `compare` q :: Bool  =  GT+x :: Int `compare` not p :: Bool  =  LT+x :: Int `compare` not False :: Bool  =  LT+x :: Int `compare` not True :: Bool  =  LT+x :: Int `compare` not (not _) :: Bool  =  LT+x :: Int `compare` _ || _ :: Bool  =  LT+x :: Int `compare` d :: Char  =  GT+x :: Int `compare` ' ' :: Char  =  LT+x :: Int `compare` ys :: [Int]  =  LT+x :: Int `compare` [0] :: [Int]  =  LT+x :: Int `compare` _:xs :: [Int]  =  LT+x :: Int `compare` [_] :: [Int]  =  LT+x :: Int `compare` _:_:_ :: [Int]  =  LT+x :: Int `compare` x:_ :: [Int]  =  LT+x :: Int `compare` 0:_ :: [Int]  =  LT+x :: Int `compare` id _:_ :: [Int]  =  LT+x :: Int `compare` tail _ :: [Int]  =  LT+x :: Int `compare` _ ++ _ :: [Int]  =  LT+x :: Int `compare` negate :: Int -> Int  =  LT+x :: Int `compare` abs :: Int -> Int  =  LT+x :: Int `compare` (_ +) :: Int -> Int  =  LT+x :: Int `compare` (*) :: Int -> Int -> Int  =  LT+x :: Int `compare` not :: Bool -> Bool  =  LT+x :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT+0 :: Int `compare` z :: Int  =  GT+0 :: Int `compare` -1 :: Int  =  LT+0 :: Int `compare` id y :: Int  =  LT+0 :: Int `compare` id 1 :: Int  =  LT+0 :: Int `compare` id (id x) :: Int  =  LT+0 :: Int `compare` id (id 0) :: Int  =  LT+0 :: Int `compare` id (id (id _)) :: Int  =  LT+0 :: Int `compare` id (negate _) :: Int  =  LT+0 :: Int `compare` id (abs _) :: Int  =  LT+0 :: Int `compare` id (_ + _) :: Int  =  LT+0 :: Int `compare` id (head _) :: Int  =  LT+0 :: Int `compare` id (ord _) :: Int  =  LT+0 :: Int `compare` negate x :: Int  =  LT+0 :: Int `compare` negate 0 :: Int  =  LT+0 :: Int `compare` negate (id _) :: Int  =  LT+0 :: Int `compare` abs x :: Int  =  LT+0 :: Int `compare` abs 0 :: Int  =  LT+0 :: Int `compare` abs (id _) :: Int  =  LT+0 :: Int `compare` _ + x :: Int  =  LT+0 :: Int `compare` _ + 0 :: Int  =  LT+0 :: Int `compare` _ + id _ :: Int  =  LT+0 :: Int `compare` x + _ :: Int  =  LT+0 :: Int `compare` 0 + _ :: Int  =  LT+0 :: Int `compare` id _ + _ :: Int  =  LT+0 :: Int `compare` _ * _ :: Int  =  LT+0 :: Int `compare` f _ :: Int  =  LT+0 :: Int `compare` head xs :: Int  =  LT+0 :: Int `compare` head [] :: Int  =  LT+0 :: Int `compare` head (_:_) :: Int  =  LT+0 :: Int `compare` ord c :: Int  =  LT+0 :: Int `compare` ord 'a' :: Int  =  LT+0 :: Int `compare` q :: Bool  =  GT+0 :: Int `compare` not p :: Bool  =  LT+0 :: Int `compare` not False :: Bool  =  LT+0 :: Int `compare` not True :: Bool  =  LT+0 :: Int `compare` not (not _) :: Bool  =  LT+0 :: Int `compare` _ || _ :: Bool  =  LT+0 :: Int `compare` d :: Char  =  GT+0 :: Int `compare` ' ' :: Char  =  GT+0 :: Int `compare` ys :: [Int]  =  GT+0 :: Int `compare` [0] :: [Int]  =  LT+0 :: Int `compare` _:xs :: [Int]  =  LT+0 :: Int `compare` [_] :: [Int]  =  LT+0 :: Int `compare` _:_:_ :: [Int]  =  LT+0 :: Int `compare` x:_ :: [Int]  =  LT+0 :: Int `compare` 0:_ :: [Int]  =  LT+0 :: Int `compare` id _:_ :: [Int]  =  LT+0 :: Int `compare` tail _ :: [Int]  =  LT+0 :: Int `compare` _ ++ _ :: [Int]  =  LT+0 :: Int `compare` negate :: Int -> Int  =  LT+0 :: Int `compare` abs :: Int -> Int  =  LT+0 :: Int `compare` (_ +) :: Int -> Int  =  LT+0 :: Int `compare` (*) :: Int -> Int -> Int  =  LT+0 :: Int `compare` not :: Bool -> Bool  =  LT+0 :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT+id _ :: Int `compare` z :: Int  =  GT+id _ :: Int `compare` -1 :: Int  =  GT+id _ :: Int `compare` id y :: Int  =  LT+id _ :: Int `compare` id 1 :: Int  =  LT+id _ :: Int `compare` id (id x) :: Int  =  LT+id _ :: Int `compare` id (id 0) :: Int  =  LT+id _ :: Int `compare` id (id (id _)) :: Int  =  LT+id _ :: Int `compare` id (negate _) :: Int  =  LT+id _ :: Int `compare` id (abs _) :: Int  =  LT+id _ :: Int `compare` id (_ + _) :: Int  =  LT+id _ :: Int `compare` id (head _) :: Int  =  LT+id _ :: Int `compare` id (ord _) :: Int  =  LT+id _ :: Int `compare` negate x :: Int  =  LT+id _ :: Int `compare` negate 0 :: Int  =  LT+id _ :: Int `compare` negate (id _) :: Int  =  LT+id _ :: Int `compare` abs x :: Int  =  LT+id _ :: Int `compare` abs 0 :: Int  =  LT+id _ :: Int `compare` abs (id _) :: Int  =  LT+id _ :: Int `compare` _ + x :: Int  =  LT+id _ :: Int `compare` _ + 0 :: Int  =  LT+id _ :: Int `compare` _ + id _ :: Int  =  LT+id _ :: Int `compare` x + _ :: Int  =  LT+id _ :: Int `compare` 0 + _ :: Int  =  LT+id _ :: Int `compare` id _ + _ :: Int  =  LT+id _ :: Int `compare` _ * _ :: Int  =  LT+id _ :: Int `compare` f _ :: Int  =  GT+id _ :: Int `compare` head xs :: Int  =  LT+id _ :: Int `compare` head [] :: Int  =  LT+id _ :: Int `compare` head (_:_) :: Int  =  LT+id _ :: Int `compare` ord c :: Int  =  GT+id _ :: Int `compare` ord 'a' :: Int  =  LT+id _ :: Int `compare` q :: Bool  =  GT+id _ :: Int `compare` not p :: Bool  =  GT+id _ :: Int `compare` not False :: Bool  =  LT+id _ :: Int `compare` not True :: Bool  =  LT+id _ :: Int `compare` not (not _) :: Bool  =  LT+id _ :: Int `compare` _ || _ :: Bool  =  LT+id _ :: Int `compare` d :: Char  =  GT+id _ :: Int `compare` ' ' :: Char  =  GT+id _ :: Int `compare` ys :: [Int]  =  GT+id _ :: Int `compare` [0] :: [Int]  =  GT+id _ :: Int `compare` _:xs :: [Int]  =  LT+id _ :: Int `compare` [_] :: [Int]  =  LT+id _ :: Int `compare` _:_:_ :: [Int]  =  LT+id _ :: Int `compare` x:_ :: [Int]  =  LT+id _ :: Int `compare` 0:_ :: [Int]  =  LT+id _ :: Int `compare` id _:_ :: [Int]  =  LT+id _ :: Int `compare` tail _ :: [Int]  =  LT+id _ :: Int `compare` _ ++ _ :: [Int]  =  LT+id _ :: Int `compare` negate :: Int -> Int  =  GT+id _ :: Int `compare` abs :: Int -> Int  =  GT+id _ :: Int `compare` (_ +) :: Int -> Int  =  LT+id _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT+id _ :: Int `compare` not :: Bool -> Bool  =  GT+id _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+_ :: Bool `compare` z :: Int  =  LT+_ :: Bool `compare` -1 :: Int  =  LT+_ :: Bool `compare` id y :: Int  =  LT+_ :: Bool `compare` id 1 :: Int  =  LT+_ :: Bool `compare` id (id x) :: Int  =  LT+_ :: Bool `compare` id (id 0) :: Int  =  LT+_ :: Bool `compare` id (id (id _)) :: Int  =  LT+_ :: Bool `compare` id (negate _) :: Int  =  LT+_ :: Bool `compare` id (abs _) :: Int  =  LT+_ :: Bool `compare` id (_ + _) :: Int  =  LT+_ :: Bool `compare` id (head _) :: Int  =  LT+_ :: Bool `compare` id (ord _) :: Int  =  LT+_ :: Bool `compare` negate x :: Int  =  LT+_ :: Bool `compare` negate 0 :: Int  =  LT+_ :: Bool `compare` negate (id _) :: Int  =  LT+_ :: Bool `compare` abs x :: Int  =  LT+_ :: Bool `compare` abs 0 :: Int  =  LT+_ :: Bool `compare` abs (id _) :: Int  =  LT+_ :: Bool `compare` _ + x :: Int  =  LT+_ :: Bool `compare` _ + 0 :: Int  =  LT+_ :: Bool `compare` _ + id _ :: Int  =  LT+_ :: Bool `compare` x + _ :: Int  =  LT+_ :: Bool `compare` 0 + _ :: Int  =  LT+_ :: Bool `compare` id _ + _ :: Int  =  LT+_ :: Bool `compare` _ * _ :: Int  =  LT+_ :: Bool `compare` f _ :: Int  =  LT+_ :: Bool `compare` head xs :: Int  =  LT+_ :: Bool `compare` head [] :: Int  =  LT+_ :: Bool `compare` head (_:_) :: Int  =  LT+_ :: Bool `compare` ord c :: Int  =  LT+_ :: Bool `compare` ord 'a' :: Int  =  LT+_ :: Bool `compare` q :: Bool  =  LT+_ :: Bool `compare` not p :: Bool  =  LT+_ :: Bool `compare` not False :: Bool  =  LT+_ :: Bool `compare` not True :: Bool  =  LT+_ :: Bool `compare` not (not _) :: Bool  =  LT+_ :: Bool `compare` _ || _ :: Bool  =  LT+_ :: Bool `compare` d :: Char  =  LT+_ :: Bool `compare` ' ' :: Char  =  LT+_ :: Bool `compare` ys :: [Int]  =  LT+_ :: Bool `compare` [0] :: [Int]  =  LT+_ :: Bool `compare` _:xs :: [Int]  =  LT+_ :: Bool `compare` [_] :: [Int]  =  LT+_ :: Bool `compare` _:_:_ :: [Int]  =  LT+_ :: Bool `compare` x:_ :: [Int]  =  LT+_ :: Bool `compare` 0:_ :: [Int]  =  LT+_ :: Bool `compare` id _:_ :: [Int]  =  LT+_ :: Bool `compare` tail _ :: [Int]  =  LT+_ :: Bool `compare` _ ++ _ :: [Int]  =  LT+_ :: Bool `compare` negate :: Int -> Int  =  LT+_ :: Bool `compare` abs :: Int -> Int  =  LT+_ :: Bool `compare` (_ +) :: Int -> Int  =  LT+_ :: Bool `compare` (*) :: Int -> Int -> Int  =  LT+_ :: Bool `compare` not :: Bool -> Bool  =  LT+_ :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  LT+_ :: Char `compare` z :: Int  =  LT+_ :: Char `compare` -1 :: Int  =  LT+_ :: Char `compare` id y :: Int  =  LT+_ :: Char `compare` id 1 :: Int  =  LT+_ :: Char `compare` id (id x) :: Int  =  LT+_ :: Char `compare` id (id 0) :: Int  =  LT+_ :: Char `compare` id (id (id _)) :: Int  =  LT+_ :: Char `compare` id (negate _) :: Int  =  LT+_ :: Char `compare` id (abs _) :: Int  =  LT+_ :: Char `compare` id (_ + _) :: Int  =  LT+_ :: Char `compare` id (head _) :: Int  =  LT+_ :: Char `compare` id (ord _) :: Int  =  LT+_ :: Char `compare` negate x :: Int  =  LT+_ :: Char `compare` negate 0 :: Int  =  LT+_ :: Char `compare` negate (id _) :: Int  =  LT+_ :: Char `compare` abs x :: Int  =  LT+_ :: Char `compare` abs 0 :: Int  =  LT+_ :: Char `compare` abs (id _) :: Int  =  LT+_ :: Char `compare` _ + x :: Int  =  LT+_ :: Char `compare` _ + 0 :: Int  =  LT+_ :: Char `compare` _ + id _ :: Int  =  LT+_ :: Char `compare` x + _ :: Int  =  LT+_ :: Char `compare` 0 + _ :: Int  =  LT+_ :: Char `compare` id _ + _ :: Int  =  LT+_ :: Char `compare` _ * _ :: Int  =  LT+_ :: Char `compare` f _ :: Int  =  LT+_ :: Char `compare` head xs :: Int  =  LT+_ :: Char `compare` head [] :: Int  =  LT+_ :: Char `compare` head (_:_) :: Int  =  LT+_ :: Char `compare` ord c :: Int  =  LT+_ :: Char `compare` ord 'a' :: Int  =  LT+_ :: Char `compare` q :: Bool  =  GT+_ :: Char `compare` not p :: Bool  =  LT+_ :: Char `compare` not False :: Bool  =  LT+_ :: Char `compare` not True :: Bool  =  LT+_ :: Char `compare` not (not _) :: Bool  =  LT+_ :: Char `compare` _ || _ :: Bool  =  LT+_ :: Char `compare` d :: Char  =  LT+_ :: Char `compare` ' ' :: Char  =  LT+_ :: Char `compare` ys :: [Int]  =  LT+_ :: Char `compare` [0] :: [Int]  =  LT+_ :: Char `compare` _:xs :: [Int]  =  LT+_ :: Char `compare` [_] :: [Int]  =  LT+_ :: Char `compare` _:_:_ :: [Int]  =  LT+_ :: Char `compare` x:_ :: [Int]  =  LT+_ :: Char `compare` 0:_ :: [Int]  =  LT+_ :: Char `compare` id _:_ :: [Int]  =  LT+_ :: Char `compare` tail _ :: [Int]  =  LT+_ :: Char `compare` _ ++ _ :: [Int]  =  LT+_ :: Char `compare` negate :: Int -> Int  =  LT+_ :: Char `compare` abs :: Int -> Int  =  LT+_ :: Char `compare` (_ +) :: Int -> Int  =  LT+_ :: Char `compare` (*) :: Int -> Int -> Int  =  LT+_ :: Char `compare` not :: Bool -> Bool  =  LT+_ :: Char `compare` (||) :: Bool -> Bool -> Bool  =  LT+_ :: [Int] `compare` z :: Int  =  GT+_ :: [Int] `compare` -1 :: Int  =  LT+_ :: [Int] `compare` id y :: Int  =  LT+_ :: [Int] `compare` id 1 :: Int  =  LT+_ :: [Int] `compare` id (id x) :: Int  =  LT+_ :: [Int] `compare` id (id 0) :: Int  =  LT+_ :: [Int] `compare` id (id (id _)) :: Int  =  LT+_ :: [Int] `compare` id (negate _) :: Int  =  LT+_ :: [Int] `compare` id (abs _) :: Int  =  LT+_ :: [Int] `compare` id (_ + _) :: Int  =  LT+_ :: [Int] `compare` id (head _) :: Int  =  LT+_ :: [Int] `compare` id (ord _) :: Int  =  LT+_ :: [Int] `compare` negate x :: Int  =  LT+_ :: [Int] `compare` negate 0 :: Int  =  LT+_ :: [Int] `compare` negate (id _) :: Int  =  LT+_ :: [Int] `compare` abs x :: Int  =  LT+_ :: [Int] `compare` abs 0 :: Int  =  LT+_ :: [Int] `compare` abs (id _) :: Int  =  LT+_ :: [Int] `compare` _ + x :: Int  =  LT+_ :: [Int] `compare` _ + 0 :: Int  =  LT+_ :: [Int] `compare` _ + id _ :: Int  =  LT+_ :: [Int] `compare` x + _ :: Int  =  LT+_ :: [Int] `compare` 0 + _ :: Int  =  LT+_ :: [Int] `compare` id _ + _ :: Int  =  LT+_ :: [Int] `compare` _ * _ :: Int  =  LT+_ :: [Int] `compare` f _ :: Int  =  LT+_ :: [Int] `compare` head xs :: Int  =  LT+_ :: [Int] `compare` head [] :: Int  =  LT+_ :: [Int] `compare` head (_:_) :: Int  =  LT+_ :: [Int] `compare` ord c :: Int  =  LT+_ :: [Int] `compare` ord 'a' :: Int  =  LT+_ :: [Int] `compare` q :: Bool  =  GT+_ :: [Int] `compare` not p :: Bool  =  LT+_ :: [Int] `compare` not False :: Bool  =  LT+_ :: [Int] `compare` not True :: Bool  =  LT+_ :: [Int] `compare` not (not _) :: Bool  =  LT+_ :: [Int] `compare` _ || _ :: Bool  =  LT+_ :: [Int] `compare` d :: Char  =  GT+_ :: [Int] `compare` ' ' :: Char  =  LT+_ :: [Int] `compare` ys :: [Int]  =  LT+_ :: [Int] `compare` [0] :: [Int]  =  LT+_ :: [Int] `compare` _:xs :: [Int]  =  LT+_ :: [Int] `compare` [_] :: [Int]  =  LT+_ :: [Int] `compare` _:_:_ :: [Int]  =  LT+_ :: [Int] `compare` x:_ :: [Int]  =  LT+_ :: [Int] `compare` 0:_ :: [Int]  =  LT+_ :: [Int] `compare` id _:_ :: [Int]  =  LT+_ :: [Int] `compare` tail _ :: [Int]  =  LT+_ :: [Int] `compare` _ ++ _ :: [Int]  =  LT+_ :: [Int] `compare` negate :: Int -> Int  =  LT+_ :: [Int] `compare` abs :: Int -> Int  =  LT+_ :: [Int] `compare` (_ +) :: Int -> Int  =  LT+_ :: [Int] `compare` (*) :: Int -> Int -> Int  =  LT+_ :: [Int] `compare` not :: Bool -> Bool  =  LT+_ :: [Int] `compare` (||) :: Bool -> Bool -> Bool  =  LT+y :: Int `compare` y :: Int  =  EQ+y :: Int `compare` 1 :: Int  =  LT+y :: Int `compare` id x :: Int  =  LT+y :: Int `compare` id 0 :: Int  =  LT+y :: Int `compare` id (id _) :: Int  =  LT+y :: Int `compare` negate _ :: Int  =  LT+y :: Int `compare` abs _ :: Int  =  LT+y :: Int `compare` _ + _ :: Int  =  LT+y :: Int `compare` head _ :: Int  =  LT+y :: Int `compare` ord _ :: Int  =  LT+y :: Int `compare` p :: Bool  =  GT+y :: Int `compare` False :: Bool  =  LT+y :: Int `compare` True :: Bool  =  LT+y :: Int `compare` not _ :: Bool  =  LT+y :: Int `compare` c :: Char  =  GT+y :: Int `compare` 'a' :: Char  =  LT+y :: Int `compare` xs :: [Int]  =  LT+y :: Int `compare` [] :: [Int]  =  LT+y :: Int `compare` _:_ :: [Int]  =  LT+y :: Int `compare` id :: Int -> Int  =  LT+y :: Int `compare` (+) :: Int -> Int -> Int  =  LT+1 :: Int `compare` y :: Int  =  GT+1 :: Int `compare` 1 :: Int  =  EQ+1 :: Int `compare` id x :: Int  =  LT+1 :: Int `compare` id 0 :: Int  =  LT+1 :: Int `compare` id (id _) :: Int  =  LT+1 :: Int `compare` negate _ :: Int  =  LT+1 :: Int `compare` abs _ :: Int  =  LT+1 :: Int `compare` _ + _ :: Int  =  LT+1 :: Int `compare` head _ :: Int  =  LT+1 :: Int `compare` ord _ :: Int  =  LT+1 :: Int `compare` p :: Bool  =  GT+1 :: Int `compare` False :: Bool  =  GT+1 :: Int `compare` True :: Bool  =  GT+1 :: Int `compare` not _ :: Bool  =  LT+1 :: Int `compare` c :: Char  =  GT+1 :: Int `compare` 'a' :: Char  =  GT+1 :: Int `compare` xs :: [Int]  =  GT+1 :: Int `compare` [] :: [Int]  =  LT+1 :: Int `compare` _:_ :: [Int]  =  LT+1 :: Int `compare` id :: Int -> Int  =  LT+1 :: Int `compare` (+) :: Int -> Int -> Int  =  LT+id x :: Int `compare` y :: Int  =  GT+id x :: Int `compare` 1 :: Int  =  GT+id x :: Int `compare` id x :: Int  =  EQ+id x :: Int `compare` id 0 :: Int  =  LT+id x :: Int `compare` id (id _) :: Int  =  LT+id x :: Int `compare` negate _ :: Int  =  LT+id x :: Int `compare` abs _ :: Int  =  LT+id x :: Int `compare` _ + _ :: Int  =  LT+id x :: Int `compare` head _ :: Int  =  LT+id x :: Int `compare` ord _ :: Int  =  GT+id x :: Int `compare` p :: Bool  =  GT+id x :: Int `compare` False :: Bool  =  GT+id x :: Int `compare` True :: Bool  =  GT+id x :: Int `compare` not _ :: Bool  =  GT+id x :: Int `compare` c :: Char  =  GT+id x :: Int `compare` 'a' :: Char  =  GT+id x :: Int `compare` xs :: [Int]  =  GT+id x :: Int `compare` [] :: [Int]  =  GT+id x :: Int `compare` _:_ :: [Int]  =  LT+id x :: Int `compare` id :: Int -> Int  =  GT+id x :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id 0 :: Int `compare` y :: Int  =  GT+id 0 :: Int `compare` 1 :: Int  =  GT+id 0 :: Int `compare` id x :: Int  =  GT+id 0 :: Int `compare` id 0 :: Int  =  EQ+id 0 :: Int `compare` id (id _) :: Int  =  LT+id 0 :: Int `compare` negate _ :: Int  =  GT+id 0 :: Int `compare` abs _ :: Int  =  GT+id 0 :: Int `compare` _ + _ :: Int  =  LT+id 0 :: Int `compare` head _ :: Int  =  GT+id 0 :: Int `compare` ord _ :: Int  =  GT+id 0 :: Int `compare` p :: Bool  =  GT+id 0 :: Int `compare` False :: Bool  =  GT+id 0 :: Int `compare` True :: Bool  =  GT+id 0 :: Int `compare` not _ :: Bool  =  GT+id 0 :: Int `compare` c :: Char  =  GT+id 0 :: Int `compare` 'a' :: Char  =  GT+id 0 :: Int `compare` xs :: [Int]  =  GT+id 0 :: Int `compare` [] :: [Int]  =  GT+id 0 :: Int `compare` _:_ :: [Int]  =  LT+id 0 :: Int `compare` id :: Int -> Int  =  GT+id 0 :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (id _) :: Int `compare` y :: Int  =  GT+id (id _) :: Int `compare` 1 :: Int  =  GT+id (id _) :: Int `compare` id x :: Int  =  GT+id (id _) :: Int `compare` id 0 :: Int  =  GT+id (id _) :: Int `compare` id (id _) :: Int  =  EQ+id (id _) :: Int `compare` negate _ :: Int  =  GT+id (id _) :: Int `compare` abs _ :: Int  =  GT+id (id _) :: Int `compare` _ + _ :: Int  =  GT+id (id _) :: Int `compare` head _ :: Int  =  GT+id (id _) :: Int `compare` ord _ :: Int  =  GT+id (id _) :: Int `compare` p :: Bool  =  GT+id (id _) :: Int `compare` False :: Bool  =  GT+id (id _) :: Int `compare` True :: Bool  =  GT+id (id _) :: Int `compare` not _ :: Bool  =  GT+id (id _) :: Int `compare` c :: Char  =  GT+id (id _) :: Int `compare` 'a' :: Char  =  GT+id (id _) :: Int `compare` xs :: [Int]  =  GT+id (id _) :: Int `compare` [] :: [Int]  =  GT+id (id _) :: Int `compare` _:_ :: [Int]  =  GT+id (id _) :: Int `compare` id :: Int -> Int  =  GT+id (id _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT+negate _ :: Int `compare` y :: Int  =  GT+negate _ :: Int `compare` 1 :: Int  =  GT+negate _ :: Int `compare` id x :: Int  =  GT+negate _ :: Int `compare` id 0 :: Int  =  LT+negate _ :: Int `compare` id (id _) :: Int  =  LT+negate _ :: Int `compare` negate _ :: Int  =  EQ+negate _ :: Int `compare` abs _ :: Int  =  GT+negate _ :: Int `compare` _ + _ :: Int  =  LT+negate _ :: Int `compare` head _ :: Int  =  LT+negate _ :: Int `compare` ord _ :: Int  =  GT+negate _ :: Int `compare` p :: Bool  =  GT+negate _ :: Int `compare` False :: Bool  =  GT+negate _ :: Int `compare` True :: Bool  =  GT+negate _ :: Int `compare` not _ :: Bool  =  GT+negate _ :: Int `compare` c :: Char  =  GT+negate _ :: Int `compare` 'a' :: Char  =  GT+negate _ :: Int `compare` xs :: [Int]  =  GT+negate _ :: Int `compare` [] :: [Int]  =  GT+negate _ :: Int `compare` _:_ :: [Int]  =  LT+negate _ :: Int `compare` id :: Int -> Int  =  GT+negate _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT+abs _ :: Int `compare` y :: Int  =  GT+abs _ :: Int `compare` 1 :: Int  =  GT+abs _ :: Int `compare` id x :: Int  =  GT+abs _ :: Int `compare` id 0 :: Int  =  LT+abs _ :: Int `compare` id (id _) :: Int  =  LT+abs _ :: Int `compare` negate _ :: Int  =  LT+abs _ :: Int `compare` abs _ :: Int  =  EQ+abs _ :: Int `compare` _ + _ :: Int  =  LT+abs _ :: Int `compare` head _ :: Int  =  LT+abs _ :: Int `compare` ord _ :: Int  =  GT+abs _ :: Int `compare` p :: Bool  =  GT+abs _ :: Int `compare` False :: Bool  =  GT+abs _ :: Int `compare` True :: Bool  =  GT+abs _ :: Int `compare` not _ :: Bool  =  GT+abs _ :: Int `compare` c :: Char  =  GT+abs _ :: Int `compare` 'a' :: Char  =  GT+abs _ :: Int `compare` xs :: [Int]  =  GT+abs _ :: Int `compare` [] :: [Int]  =  GT+abs _ :: Int `compare` _:_ :: [Int]  =  LT+abs _ :: Int `compare` id :: Int -> Int  =  GT+abs _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT+_ + _ :: Int `compare` y :: Int  =  GT+_ + _ :: Int `compare` 1 :: Int  =  GT+_ + _ :: Int `compare` id x :: Int  =  GT+_ + _ :: Int `compare` id 0 :: Int  =  GT+_ + _ :: Int `compare` id (id _) :: Int  =  LT+_ + _ :: Int `compare` negate _ :: Int  =  GT+_ + _ :: Int `compare` abs _ :: Int  =  GT+_ + _ :: Int `compare` _ + _ :: Int  =  EQ+_ + _ :: Int `compare` head _ :: Int  =  GT+_ + _ :: Int `compare` ord _ :: Int  =  GT+_ + _ :: Int `compare` p :: Bool  =  GT+_ + _ :: Int `compare` False :: Bool  =  GT+_ + _ :: Int `compare` True :: Bool  =  GT+_ + _ :: Int `compare` not _ :: Bool  =  GT+_ + _ :: Int `compare` c :: Char  =  GT+_ + _ :: Int `compare` 'a' :: Char  =  GT+_ + _ :: Int `compare` xs :: [Int]  =  GT+_ + _ :: Int `compare` [] :: [Int]  =  GT+_ + _ :: Int `compare` _:_ :: [Int]  =  GT+_ + _ :: Int `compare` id :: Int -> Int  =  GT+_ + _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT+head _ :: Int `compare` y :: Int  =  GT+head _ :: Int `compare` 1 :: Int  =  GT+head _ :: Int `compare` id x :: Int  =  GT+head _ :: Int `compare` id 0 :: Int  =  LT+head _ :: Int `compare` id (id _) :: Int  =  LT+head _ :: Int `compare` negate _ :: Int  =  GT+head _ :: Int `compare` abs _ :: Int  =  GT+head _ :: Int `compare` _ + _ :: Int  =  LT+head _ :: Int `compare` head _ :: Int  =  EQ+head _ :: Int `compare` ord _ :: Int  =  GT+head _ :: Int `compare` p :: Bool  =  GT+head _ :: Int `compare` False :: Bool  =  GT+head _ :: Int `compare` True :: Bool  =  GT+head _ :: Int `compare` not _ :: Bool  =  GT+head _ :: Int `compare` c :: Char  =  GT+head _ :: Int `compare` 'a' :: Char  =  GT+head _ :: Int `compare` xs :: [Int]  =  GT+head _ :: Int `compare` [] :: [Int]  =  GT+head _ :: Int `compare` _:_ :: [Int]  =  LT+head _ :: Int `compare` id :: Int -> Int  =  GT+head _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT+ord _ :: Int `compare` y :: Int  =  GT+ord _ :: Int `compare` 1 :: Int  =  GT+ord _ :: Int `compare` id x :: Int  =  LT+ord _ :: Int `compare` id 0 :: Int  =  LT+ord _ :: Int `compare` id (id _) :: Int  =  LT+ord _ :: Int `compare` negate _ :: Int  =  LT+ord _ :: Int `compare` abs _ :: Int  =  LT+ord _ :: Int `compare` _ + _ :: Int  =  LT+ord _ :: Int `compare` head _ :: Int  =  LT+ord _ :: Int `compare` ord _ :: Int  =  EQ+ord _ :: Int `compare` p :: Bool  =  GT+ord _ :: Int `compare` False :: Bool  =  GT+ord _ :: Int `compare` True :: Bool  =  GT+ord _ :: Int `compare` not _ :: Bool  =  GT+ord _ :: Int `compare` c :: Char  =  GT+ord _ :: Int `compare` 'a' :: Char  =  GT+ord _ :: Int `compare` xs :: [Int]  =  GT+ord _ :: Int `compare` [] :: [Int]  =  GT+ord _ :: Int `compare` _:_ :: [Int]  =  LT+ord _ :: Int `compare` id :: Int -> Int  =  GT+ord _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT+p :: Bool `compare` y :: Int  =  LT+p :: Bool `compare` 1 :: Int  =  LT+p :: Bool `compare` id x :: Int  =  LT+p :: Bool `compare` id 0 :: Int  =  LT+p :: Bool `compare` id (id _) :: Int  =  LT+p :: Bool `compare` negate _ :: Int  =  LT+p :: Bool `compare` abs _ :: Int  =  LT+p :: Bool `compare` _ + _ :: Int  =  LT+p :: Bool `compare` head _ :: Int  =  LT+p :: Bool `compare` ord _ :: Int  =  LT+p :: Bool `compare` p :: Bool  =  EQ+p :: Bool `compare` False :: Bool  =  LT+p :: Bool `compare` True :: Bool  =  LT+p :: Bool `compare` not _ :: Bool  =  LT+p :: Bool `compare` c :: Char  =  LT+p :: Bool `compare` 'a' :: Char  =  LT+p :: Bool `compare` xs :: [Int]  =  LT+p :: Bool `compare` [] :: [Int]  =  LT+p :: Bool `compare` _:_ :: [Int]  =  LT+p :: Bool `compare` id :: Int -> Int  =  LT+p :: Bool `compare` (+) :: Int -> Int -> Int  =  LT+False :: Bool `compare` y :: Int  =  GT+False :: Bool `compare` 1 :: Int  =  LT+False :: Bool `compare` id x :: Int  =  LT+False :: Bool `compare` id 0 :: Int  =  LT+False :: Bool `compare` id (id _) :: Int  =  LT+False :: Bool `compare` negate _ :: Int  =  LT+False :: Bool `compare` abs _ :: Int  =  LT+False :: Bool `compare` _ + _ :: Int  =  LT+False :: Bool `compare` head _ :: Int  =  LT+False :: Bool `compare` ord _ :: Int  =  LT+False :: Bool `compare` p :: Bool  =  GT+False :: Bool `compare` False :: Bool  =  EQ+False :: Bool `compare` True :: Bool  =  LT+False :: Bool `compare` not _ :: Bool  =  LT+False :: Bool `compare` c :: Char  =  GT+False :: Bool `compare` 'a' :: Char  =  LT+False :: Bool `compare` xs :: [Int]  =  GT+False :: Bool `compare` [] :: [Int]  =  LT+False :: Bool `compare` _:_ :: [Int]  =  LT+False :: Bool `compare` id :: Int -> Int  =  LT+False :: Bool `compare` (+) :: Int -> Int -> Int  =  LT+True :: Bool `compare` y :: Int  =  GT+True :: Bool `compare` 1 :: Int  =  LT+True :: Bool `compare` id x :: Int  =  LT+True :: Bool `compare` id 0 :: Int  =  LT+True :: Bool `compare` id (id _) :: Int  =  LT+True :: Bool `compare` negate _ :: Int  =  LT+True :: Bool `compare` abs _ :: Int  =  LT+True :: Bool `compare` _ + _ :: Int  =  LT+True :: Bool `compare` head _ :: Int  =  LT+True :: Bool `compare` ord _ :: Int  =  LT+True :: Bool `compare` p :: Bool  =  GT+True :: Bool `compare` False :: Bool  =  GT+True :: Bool `compare` True :: Bool  =  EQ+True :: Bool `compare` not _ :: Bool  =  LT+True :: Bool `compare` c :: Char  =  GT+True :: Bool `compare` 'a' :: Char  =  LT+True :: Bool `compare` xs :: [Int]  =  GT+True :: Bool `compare` [] :: [Int]  =  LT+True :: Bool `compare` _:_ :: [Int]  =  LT+True :: Bool `compare` id :: Int -> Int  =  LT+True :: Bool `compare` (+) :: Int -> Int -> Int  =  LT+not _ :: Bool `compare` y :: Int  =  GT+not _ :: Bool `compare` 1 :: Int  =  GT+not _ :: Bool `compare` id x :: Int  =  LT+not _ :: Bool `compare` id 0 :: Int  =  LT+not _ :: Bool `compare` id (id _) :: Int  =  LT+not _ :: Bool `compare` negate _ :: Int  =  LT+not _ :: Bool `compare` abs _ :: Int  =  LT+not _ :: Bool `compare` _ + _ :: Int  =  LT+not _ :: Bool `compare` head _ :: Int  =  LT+not _ :: Bool `compare` ord _ :: Int  =  LT+not _ :: Bool `compare` p :: Bool  =  GT+not _ :: Bool `compare` False :: Bool  =  GT+not _ :: Bool `compare` True :: Bool  =  GT+not _ :: Bool `compare` not _ :: Bool  =  EQ+not _ :: Bool `compare` c :: Char  =  GT+not _ :: Bool `compare` 'a' :: Char  =  GT+not _ :: Bool `compare` xs :: [Int]  =  GT+not _ :: Bool `compare` [] :: [Int]  =  GT+not _ :: Bool `compare` _:_ :: [Int]  =  LT+not _ :: Bool `compare` id :: Int -> Int  =  GT+not _ :: Bool `compare` (+) :: Int -> Int -> Int  =  GT+c :: Char `compare` y :: Int  =  LT+c :: Char `compare` 1 :: Int  =  LT+c :: Char `compare` id x :: Int  =  LT+c :: Char `compare` id 0 :: Int  =  LT+c :: Char `compare` id (id _) :: Int  =  LT+c :: Char `compare` negate _ :: Int  =  LT+c :: Char `compare` abs _ :: Int  =  LT+c :: Char `compare` _ + _ :: Int  =  LT+c :: Char `compare` head _ :: Int  =  LT+c :: Char `compare` ord _ :: Int  =  LT+c :: Char `compare` p :: Bool  =  GT+c :: Char `compare` False :: Bool  =  LT+c :: Char `compare` True :: Bool  =  LT+c :: Char `compare` not _ :: Bool  =  LT+c :: Char `compare` c :: Char  =  EQ+c :: Char `compare` 'a' :: Char  =  LT+c :: Char `compare` xs :: [Int]  =  LT+c :: Char `compare` [] :: [Int]  =  LT+c :: Char `compare` _:_ :: [Int]  =  LT+c :: Char `compare` id :: Int -> Int  =  LT+c :: Char `compare` (+) :: Int -> Int -> Int  =  LT+'a' :: Char `compare` y :: Int  =  GT+'a' :: Char `compare` 1 :: Int  =  LT+'a' :: Char `compare` id x :: Int  =  LT+'a' :: Char `compare` id 0 :: Int  =  LT+'a' :: Char `compare` id (id _) :: Int  =  LT+'a' :: Char `compare` negate _ :: Int  =  LT+'a' :: Char `compare` abs _ :: Int  =  LT+'a' :: Char `compare` _ + _ :: Int  =  LT+'a' :: Char `compare` head _ :: Int  =  LT+'a' :: Char `compare` ord _ :: Int  =  LT+'a' :: Char `compare` p :: Bool  =  GT+'a' :: Char `compare` False :: Bool  =  GT+'a' :: Char `compare` True :: Bool  =  GT+'a' :: Char `compare` not _ :: Bool  =  LT+'a' :: Char `compare` c :: Char  =  GT+'a' :: Char `compare` 'a' :: Char  =  EQ+'a' :: Char `compare` xs :: [Int]  =  GT+'a' :: Char `compare` [] :: [Int]  =  LT+'a' :: Char `compare` _:_ :: [Int]  =  LT+'a' :: Char `compare` id :: Int -> Int  =  LT+'a' :: Char `compare` (+) :: Int -> Int -> Int  =  LT+xs :: [Int] `compare` y :: Int  =  GT+xs :: [Int] `compare` 1 :: Int  =  LT+xs :: [Int] `compare` id x :: Int  =  LT+xs :: [Int] `compare` id 0 :: Int  =  LT+xs :: [Int] `compare` id (id _) :: Int  =  LT+xs :: [Int] `compare` negate _ :: Int  =  LT+xs :: [Int] `compare` abs _ :: Int  =  LT+xs :: [Int] `compare` _ + _ :: Int  =  LT+xs :: [Int] `compare` head _ :: Int  =  LT+xs :: [Int] `compare` ord _ :: Int  =  LT+xs :: [Int] `compare` p :: Bool  =  GT+xs :: [Int] `compare` False :: Bool  =  LT+xs :: [Int] `compare` True :: Bool  =  LT+xs :: [Int] `compare` not _ :: Bool  =  LT+xs :: [Int] `compare` c :: Char  =  GT+xs :: [Int] `compare` 'a' :: Char  =  LT+xs :: [Int] `compare` xs :: [Int]  =  EQ+xs :: [Int] `compare` [] :: [Int]  =  LT+xs :: [Int] `compare` _:_ :: [Int]  =  LT+xs :: [Int] `compare` id :: Int -> Int  =  LT+xs :: [Int] `compare` (+) :: Int -> Int -> Int  =  LT+[] :: [Int] `compare` y :: Int  =  GT+[] :: [Int] `compare` 1 :: Int  =  GT+[] :: [Int] `compare` id x :: Int  =  LT+[] :: [Int] `compare` id 0 :: Int  =  LT+[] :: [Int] `compare` id (id _) :: Int  =  LT+[] :: [Int] `compare` negate _ :: Int  =  LT+[] :: [Int] `compare` abs _ :: Int  =  LT+[] :: [Int] `compare` _ + _ :: Int  =  LT+[] :: [Int] `compare` head _ :: Int  =  LT+[] :: [Int] `compare` ord _ :: Int  =  LT+[] :: [Int] `compare` p :: Bool  =  GT+[] :: [Int] `compare` False :: Bool  =  GT+[] :: [Int] `compare` True :: Bool  =  GT+[] :: [Int] `compare` not _ :: Bool  =  LT+[] :: [Int] `compare` c :: Char  =  GT+[] :: [Int] `compare` 'a' :: Char  =  GT+[] :: [Int] `compare` xs :: [Int]  =  GT+[] :: [Int] `compare` [] :: [Int]  =  EQ+[] :: [Int] `compare` _:_ :: [Int]  =  LT+[] :: [Int] `compare` id :: Int -> Int  =  LT+[] :: [Int] `compare` (+) :: Int -> Int -> Int  =  LT+_:_ :: [Int] `compare` y :: Int  =  GT+_:_ :: [Int] `compare` 1 :: Int  =  GT+_:_ :: [Int] `compare` id x :: Int  =  GT+_:_ :: [Int] `compare` id 0 :: Int  =  GT+_:_ :: [Int] `compare` id (id _) :: Int  =  LT+_:_ :: [Int] `compare` negate _ :: Int  =  GT+_:_ :: [Int] `compare` abs _ :: Int  =  GT+_:_ :: [Int] `compare` _ + _ :: Int  =  LT+_:_ :: [Int] `compare` head _ :: Int  =  GT+_:_ :: [Int] `compare` ord _ :: Int  =  GT+_:_ :: [Int] `compare` p :: Bool  =  GT+_:_ :: [Int] `compare` False :: Bool  =  GT+_:_ :: [Int] `compare` True :: Bool  =  GT+_:_ :: [Int] `compare` not _ :: Bool  =  GT+_:_ :: [Int] `compare` c :: Char  =  GT+_:_ :: [Int] `compare` 'a' :: Char  =  GT+_:_ :: [Int] `compare` xs :: [Int]  =  GT+_:_ :: [Int] `compare` [] :: [Int]  =  GT+_:_ :: [Int] `compare` _:_ :: [Int]  =  EQ+_:_ :: [Int] `compare` id :: Int -> Int  =  GT+_:_ :: [Int] `compare` (+) :: Int -> Int -> Int  =  GT+id :: Int -> Int `compare` y :: Int  =  GT+id :: Int -> Int `compare` 1 :: Int  =  GT+id :: Int -> Int `compare` id x :: Int  =  LT+id :: Int -> Int `compare` id 0 :: Int  =  LT+id :: Int -> Int `compare` id (id _) :: Int  =  LT+id :: Int -> Int `compare` negate _ :: Int  =  LT+id :: Int -> Int `compare` abs _ :: Int  =  LT+id :: Int -> Int `compare` _ + _ :: Int  =  LT+id :: Int -> Int `compare` head _ :: Int  =  LT+id :: Int -> Int `compare` ord _ :: Int  =  LT+id :: Int -> Int `compare` p :: Bool  =  GT+id :: Int -> Int `compare` False :: Bool  =  GT+id :: Int -> Int `compare` True :: Bool  =  GT+id :: Int -> Int `compare` not _ :: Bool  =  LT+id :: Int -> Int `compare` c :: Char  =  GT+id :: Int -> Int `compare` 'a' :: Char  =  GT+id :: Int -> Int `compare` xs :: [Int]  =  GT+id :: Int -> Int `compare` [] :: [Int]  =  GT+id :: Int -> Int `compare` _:_ :: [Int]  =  LT+id :: Int -> Int `compare` id :: Int -> Int  =  EQ+id :: Int -> Int `compare` (+) :: Int -> Int -> Int  =  LT+(+) :: Int -> Int -> Int `compare` y :: Int  =  GT+(+) :: Int -> Int -> Int `compare` 1 :: Int  =  GT+(+) :: Int -> Int -> Int `compare` id x :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id 0 :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (id _) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` negate _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` abs _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` _ + _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` head _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` ord _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` p :: Bool  =  GT+(+) :: Int -> Int -> Int `compare` False :: Bool  =  GT+(+) :: Int -> Int -> Int `compare` True :: Bool  =  GT+(+) :: Int -> Int -> Int `compare` not _ :: Bool  =  LT+(+) :: Int -> Int -> Int `compare` c :: Char  =  GT+(+) :: Int -> Int -> Int `compare` 'a' :: Char  =  GT+(+) :: Int -> Int -> Int `compare` xs :: [Int]  =  GT+(+) :: Int -> Int -> Int `compare` [] :: [Int]  =  GT+(+) :: Int -> Int -> Int `compare` _:_ :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` id :: Int -> Int  =  GT+(+) :: Int -> Int -> Int `compare` (+) :: Int -> Int -> Int  =  EQ+z :: Int `compare` x :: Int  =  GT+z :: Int `compare` 0 :: Int  =  LT+z :: Int `compare` id _ :: Int  =  LT+z :: Int `compare` _ :: Bool  =  GT+z :: Int `compare` _ :: Char  =  GT+z :: Int `compare` _ :: [Int]  =  LT+-1 :: Int `compare` x :: Int  =  GT+-1 :: Int `compare` 0 :: Int  =  GT+-1 :: Int `compare` id _ :: Int  =  LT+-1 :: Int `compare` _ :: Bool  =  GT+-1 :: Int `compare` _ :: Char  =  GT+-1 :: Int `compare` _ :: [Int]  =  GT+id y :: Int `compare` x :: Int  =  GT+id y :: Int `compare` 0 :: Int  =  GT+id y :: Int `compare` id _ :: Int  =  GT+id y :: Int `compare` _ :: Bool  =  GT+id y :: Int `compare` _ :: Char  =  GT+id y :: Int `compare` _ :: [Int]  =  GT+id 1 :: Int `compare` x :: Int  =  GT+id 1 :: Int `compare` 0 :: Int  =  GT+id 1 :: Int `compare` id _ :: Int  =  GT+id 1 :: Int `compare` _ :: Bool  =  GT+id 1 :: Int `compare` _ :: Char  =  GT+id 1 :: Int `compare` _ :: [Int]  =  GT+id (id x) :: Int `compare` x :: Int  =  GT+id (id x) :: Int `compare` 0 :: Int  =  GT+id (id x) :: Int `compare` id _ :: Int  =  GT+id (id x) :: Int `compare` _ :: Bool  =  GT+id (id x) :: Int `compare` _ :: Char  =  GT+id (id x) :: Int `compare` _ :: [Int]  =  GT+id (id 0) :: Int `compare` x :: Int  =  GT+id (id 0) :: Int `compare` 0 :: Int  =  GT+id (id 0) :: Int `compare` id _ :: Int  =  GT+id (id 0) :: Int `compare` _ :: Bool  =  GT+id (id 0) :: Int `compare` _ :: Char  =  GT+id (id 0) :: Int `compare` _ :: [Int]  =  GT+id (id (id _)) :: Int `compare` x :: Int  =  GT+id (id (id _)) :: Int `compare` 0 :: Int  =  GT+id (id (id _)) :: Int `compare` id _ :: Int  =  GT+id (id (id _)) :: Int `compare` _ :: Bool  =  GT+id (id (id _)) :: Int `compare` _ :: Char  =  GT+id (id (id _)) :: Int `compare` _ :: [Int]  =  GT+id (negate _) :: Int `compare` x :: Int  =  GT+id (negate _) :: Int `compare` 0 :: Int  =  GT+id (negate _) :: Int `compare` id _ :: Int  =  GT+id (negate _) :: Int `compare` _ :: Bool  =  GT+id (negate _) :: Int `compare` _ :: Char  =  GT+id (negate _) :: Int `compare` _ :: [Int]  =  GT+id (abs _) :: Int `compare` x :: Int  =  GT+id (abs _) :: Int `compare` 0 :: Int  =  GT+id (abs _) :: Int `compare` id _ :: Int  =  GT+id (abs _) :: Int `compare` _ :: Bool  =  GT+id (abs _) :: Int `compare` _ :: Char  =  GT+id (abs _) :: Int `compare` _ :: [Int]  =  GT+id (_ + _) :: Int `compare` x :: Int  =  GT+id (_ + _) :: Int `compare` 0 :: Int  =  GT+id (_ + _) :: Int `compare` id _ :: Int  =  GT+id (_ + _) :: Int `compare` _ :: Bool  =  GT+id (_ + _) :: Int `compare` _ :: Char  =  GT+id (_ + _) :: Int `compare` _ :: [Int]  =  GT+id (head _) :: Int `compare` x :: Int  =  GT+id (head _) :: Int `compare` 0 :: Int  =  GT+id (head _) :: Int `compare` id _ :: Int  =  GT+id (head _) :: Int `compare` _ :: Bool  =  GT+id (head _) :: Int `compare` _ :: Char  =  GT+id (head _) :: Int `compare` _ :: [Int]  =  GT+id (ord _) :: Int `compare` x :: Int  =  GT+id (ord _) :: Int `compare` 0 :: Int  =  GT+id (ord _) :: Int `compare` id _ :: Int  =  GT+id (ord _) :: Int `compare` _ :: Bool  =  GT+id (ord _) :: Int `compare` _ :: Char  =  GT+id (ord _) :: Int `compare` _ :: [Int]  =  GT+negate x :: Int `compare` x :: Int  =  GT+negate x :: Int `compare` 0 :: Int  =  GT+negate x :: Int `compare` id _ :: Int  =  GT+negate x :: Int `compare` _ :: Bool  =  GT+negate x :: Int `compare` _ :: Char  =  GT+negate x :: Int `compare` _ :: [Int]  =  GT+negate 0 :: Int `compare` x :: Int  =  GT+negate 0 :: Int `compare` 0 :: Int  =  GT+negate 0 :: Int `compare` id _ :: Int  =  GT+negate 0 :: Int `compare` _ :: Bool  =  GT+negate 0 :: Int `compare` _ :: Char  =  GT+negate 0 :: Int `compare` _ :: [Int]  =  GT+negate (id _) :: Int `compare` x :: Int  =  GT+negate (id _) :: Int `compare` 0 :: Int  =  GT+negate (id _) :: Int `compare` id _ :: Int  =  GT+negate (id _) :: Int `compare` _ :: Bool  =  GT+negate (id _) :: Int `compare` _ :: Char  =  GT+negate (id _) :: Int `compare` _ :: [Int]  =  GT+abs x :: Int `compare` x :: Int  =  GT+abs x :: Int `compare` 0 :: Int  =  GT+abs x :: Int `compare` id _ :: Int  =  GT+abs x :: Int `compare` _ :: Bool  =  GT+abs x :: Int `compare` _ :: Char  =  GT+abs x :: Int `compare` _ :: [Int]  =  GT+abs 0 :: Int `compare` x :: Int  =  GT+abs 0 :: Int `compare` 0 :: Int  =  GT+abs 0 :: Int `compare` id _ :: Int  =  GT+abs 0 :: Int `compare` _ :: Bool  =  GT+abs 0 :: Int `compare` _ :: Char  =  GT+abs 0 :: Int `compare` _ :: [Int]  =  GT+abs (id _) :: Int `compare` x :: Int  =  GT+abs (id _) :: Int `compare` 0 :: Int  =  GT+abs (id _) :: Int `compare` id _ :: Int  =  GT+abs (id _) :: Int `compare` _ :: Bool  =  GT+abs (id _) :: Int `compare` _ :: Char  =  GT+abs (id _) :: Int `compare` _ :: [Int]  =  GT+_ + x :: Int `compare` x :: Int  =  GT+_ + x :: Int `compare` 0 :: Int  =  GT+_ + x :: Int `compare` id _ :: Int  =  GT+_ + x :: Int `compare` _ :: Bool  =  GT+_ + x :: Int `compare` _ :: Char  =  GT+_ + x :: Int `compare` _ :: [Int]  =  GT+_ + 0 :: Int `compare` x :: Int  =  GT+_ + 0 :: Int `compare` 0 :: Int  =  GT+_ + 0 :: Int `compare` id _ :: Int  =  GT+_ + 0 :: Int `compare` _ :: Bool  =  GT+_ + 0 :: Int `compare` _ :: Char  =  GT+_ + 0 :: Int `compare` _ :: [Int]  =  GT+_ + id _ :: Int `compare` x :: Int  =  GT+_ + id _ :: Int `compare` 0 :: Int  =  GT+_ + id _ :: Int `compare` id _ :: Int  =  GT+_ + id _ :: Int `compare` _ :: Bool  =  GT+_ + id _ :: Int `compare` _ :: Char  =  GT+_ + id _ :: Int `compare` _ :: [Int]  =  GT+x + _ :: Int `compare` x :: Int  =  GT+x + _ :: Int `compare` 0 :: Int  =  GT+x + _ :: Int `compare` id _ :: Int  =  GT+x + _ :: Int `compare` _ :: Bool  =  GT+x + _ :: Int `compare` _ :: Char  =  GT+x + _ :: Int `compare` _ :: [Int]  =  GT+0 + _ :: Int `compare` x :: Int  =  GT+0 + _ :: Int `compare` 0 :: Int  =  GT+0 + _ :: Int `compare` id _ :: Int  =  GT+0 + _ :: Int `compare` _ :: Bool  =  GT+0 + _ :: Int `compare` _ :: Char  =  GT+0 + _ :: Int `compare` _ :: [Int]  =  GT+id _ + _ :: Int `compare` x :: Int  =  GT+id _ + _ :: Int `compare` 0 :: Int  =  GT+id _ + _ :: Int `compare` id _ :: Int  =  GT+id _ + _ :: Int `compare` _ :: Bool  =  GT+id _ + _ :: Int `compare` _ :: Char  =  GT+id _ + _ :: Int `compare` _ :: [Int]  =  GT+_ * _ :: Int `compare` x :: Int  =  GT+_ * _ :: Int `compare` 0 :: Int  =  GT+_ * _ :: Int `compare` id _ :: Int  =  GT+_ * _ :: Int `compare` _ :: Bool  =  GT+_ * _ :: Int `compare` _ :: Char  =  GT+_ * _ :: Int `compare` _ :: [Int]  =  GT+f _ :: Int `compare` x :: Int  =  GT+f _ :: Int `compare` 0 :: Int  =  GT+f _ :: Int `compare` id _ :: Int  =  LT+f _ :: Int `compare` _ :: Bool  =  GT+f _ :: Int `compare` _ :: Char  =  GT+f _ :: Int `compare` _ :: [Int]  =  GT+head xs :: Int `compare` x :: Int  =  GT+head xs :: Int `compare` 0 :: Int  =  GT+head xs :: Int `compare` id _ :: Int  =  GT+head xs :: Int `compare` _ :: Bool  =  GT+head xs :: Int `compare` _ :: Char  =  GT+head xs :: Int `compare` _ :: [Int]  =  GT+head [] :: Int `compare` x :: Int  =  GT+head [] :: Int `compare` 0 :: Int  =  GT+head [] :: Int `compare` id _ :: Int  =  GT+head [] :: Int `compare` _ :: Bool  =  GT+head [] :: Int `compare` _ :: Char  =  GT+head [] :: Int `compare` _ :: [Int]  =  GT+head (_:_) :: Int `compare` x :: Int  =  GT+head (_:_) :: Int `compare` 0 :: Int  =  GT+head (_:_) :: Int `compare` id _ :: Int  =  GT+head (_:_) :: Int `compare` _ :: Bool  =  GT+head (_:_) :: Int `compare` _ :: Char  =  GT+head (_:_) :: Int `compare` _ :: [Int]  =  GT+ord c :: Int `compare` x :: Int  =  GT+ord c :: Int `compare` 0 :: Int  =  GT+ord c :: Int `compare` id _ :: Int  =  LT+ord c :: Int `compare` _ :: Bool  =  GT+ord c :: Int `compare` _ :: Char  =  GT+ord c :: Int `compare` _ :: [Int]  =  GT+ord 'a' :: Int `compare` x :: Int  =  GT+ord 'a' :: Int `compare` 0 :: Int  =  GT+ord 'a' :: Int `compare` id _ :: Int  =  GT+ord 'a' :: Int `compare` _ :: Bool  =  GT+ord 'a' :: Int `compare` _ :: Char  =  GT+ord 'a' :: Int `compare` _ :: [Int]  =  GT+q :: Bool `compare` x :: Int  =  LT+q :: Bool `compare` 0 :: Int  =  LT+q :: Bool `compare` id _ :: Int  =  LT+q :: Bool `compare` _ :: Bool  =  GT+q :: Bool `compare` _ :: Char  =  LT+q :: Bool `compare` _ :: [Int]  =  LT+not p :: Bool `compare` x :: Int  =  GT+not p :: Bool `compare` 0 :: Int  =  GT+not p :: Bool `compare` id _ :: Int  =  LT+not p :: Bool `compare` _ :: Bool  =  GT+not p :: Bool `compare` _ :: Char  =  GT+not p :: Bool `compare` _ :: [Int]  =  GT+not False :: Bool `compare` x :: Int  =  GT+not False :: Bool `compare` 0 :: Int  =  GT+not False :: Bool `compare` id _ :: Int  =  GT+not False :: Bool `compare` _ :: Bool  =  GT+not False :: Bool `compare` _ :: Char  =  GT+not False :: Bool `compare` _ :: [Int]  =  GT+not True :: Bool `compare` x :: Int  =  GT+not True :: Bool `compare` 0 :: Int  =  GT+not True :: Bool `compare` id _ :: Int  =  GT+not True :: Bool `compare` _ :: Bool  =  GT+not True :: Bool `compare` _ :: Char  =  GT+not True :: Bool `compare` _ :: [Int]  =  GT+not (not _) :: Bool `compare` x :: Int  =  GT+not (not _) :: Bool `compare` 0 :: Int  =  GT+not (not _) :: Bool `compare` id _ :: Int  =  GT+not (not _) :: Bool `compare` _ :: Bool  =  GT+not (not _) :: Bool `compare` _ :: Char  =  GT+not (not _) :: Bool `compare` _ :: [Int]  =  GT+_ || _ :: Bool `compare` x :: Int  =  GT+_ || _ :: Bool `compare` 0 :: Int  =  GT+_ || _ :: Bool `compare` id _ :: Int  =  GT+_ || _ :: Bool `compare` _ :: Bool  =  GT+_ || _ :: Bool `compare` _ :: Char  =  GT+_ || _ :: Bool `compare` _ :: [Int]  =  GT+d :: Char `compare` x :: Int  =  LT+d :: Char `compare` 0 :: Int  =  LT+d :: Char `compare` id _ :: Int  =  LT+d :: Char `compare` _ :: Bool  =  GT+d :: Char `compare` _ :: Char  =  GT+d :: Char `compare` _ :: [Int]  =  LT+' ' :: Char `compare` x :: Int  =  GT+' ' :: Char `compare` 0 :: Int  =  LT+' ' :: Char `compare` id _ :: Int  =  LT+' ' :: Char `compare` _ :: Bool  =  GT+' ' :: Char `compare` _ :: Char  =  GT+' ' :: Char `compare` _ :: [Int]  =  GT+ys :: [Int] `compare` x :: Int  =  GT+ys :: [Int] `compare` 0 :: Int  =  LT+ys :: [Int] `compare` id _ :: Int  =  LT+ys :: [Int] `compare` _ :: Bool  =  GT+ys :: [Int] `compare` _ :: Char  =  GT+ys :: [Int] `compare` _ :: [Int]  =  GT+[0] :: [Int] `compare` x :: Int  =  GT+[0] :: [Int] `compare` 0 :: Int  =  GT+[0] :: [Int] `compare` id _ :: Int  =  LT+[0] :: [Int] `compare` _ :: Bool  =  GT+[0] :: [Int] `compare` _ :: Char  =  GT+[0] :: [Int] `compare` _ :: [Int]  =  GT+_:xs :: [Int] `compare` x :: Int  =  GT+_:xs :: [Int] `compare` 0 :: Int  =  GT+_:xs :: [Int] `compare` id _ :: Int  =  GT+_:xs :: [Int] `compare` _ :: Bool  =  GT+_:xs :: [Int] `compare` _ :: Char  =  GT+_:xs :: [Int] `compare` _ :: [Int]  =  GT+[_] :: [Int] `compare` x :: Int  =  GT+[_] :: [Int] `compare` 0 :: Int  =  GT+[_] :: [Int] `compare` id _ :: Int  =  GT+[_] :: [Int] `compare` _ :: Bool  =  GT+[_] :: [Int] `compare` _ :: Char  =  GT+[_] :: [Int] `compare` _ :: [Int]  =  GT+_:_:_ :: [Int] `compare` x :: Int  =  GT+_:_:_ :: [Int] `compare` 0 :: Int  =  GT+_:_:_ :: [Int] `compare` id _ :: Int  =  GT+_:_:_ :: [Int] `compare` _ :: Bool  =  GT+_:_:_ :: [Int] `compare` _ :: Char  =  GT+_:_:_ :: [Int] `compare` _ :: [Int]  =  GT+x:_ :: [Int] `compare` x :: Int  =  GT+x:_ :: [Int] `compare` 0 :: Int  =  GT+x:_ :: [Int] `compare` id _ :: Int  =  GT+x:_ :: [Int] `compare` _ :: Bool  =  GT+x:_ :: [Int] `compare` _ :: Char  =  GT+x:_ :: [Int] `compare` _ :: [Int]  =  GT+0:_ :: [Int] `compare` x :: Int  =  GT+0:_ :: [Int] `compare` 0 :: Int  =  GT+0:_ :: [Int] `compare` id _ :: Int  =  GT+0:_ :: [Int] `compare` _ :: Bool  =  GT+0:_ :: [Int] `compare` _ :: Char  =  GT+0:_ :: [Int] `compare` _ :: [Int]  =  GT+id _:_ :: [Int] `compare` x :: Int  =  GT+id _:_ :: [Int] `compare` 0 :: Int  =  GT+id _:_ :: [Int] `compare` id _ :: Int  =  GT+id _:_ :: [Int] `compare` _ :: Bool  =  GT+id _:_ :: [Int] `compare` _ :: Char  =  GT+id _:_ :: [Int] `compare` _ :: [Int]  =  GT+tail _ :: [Int] `compare` x :: Int  =  GT+tail _ :: [Int] `compare` 0 :: Int  =  GT+tail _ :: [Int] `compare` id _ :: Int  =  GT+tail _ :: [Int] `compare` _ :: Bool  =  GT+tail _ :: [Int] `compare` _ :: Char  =  GT+tail _ :: [Int] `compare` _ :: [Int]  =  GT+_ ++ _ :: [Int] `compare` x :: Int  =  GT+_ ++ _ :: [Int] `compare` 0 :: Int  =  GT+_ ++ _ :: [Int] `compare` id _ :: Int  =  GT+_ ++ _ :: [Int] `compare` _ :: Bool  =  GT+_ ++ _ :: [Int] `compare` _ :: Char  =  GT+_ ++ _ :: [Int] `compare` _ :: [Int]  =  GT+negate :: Int -> Int `compare` x :: Int  =  GT+negate :: Int -> Int `compare` 0 :: Int  =  GT+negate :: Int -> Int `compare` id _ :: Int  =  LT+negate :: Int -> Int `compare` _ :: Bool  =  GT+negate :: Int -> Int `compare` _ :: Char  =  GT+negate :: Int -> Int `compare` _ :: [Int]  =  GT+abs :: Int -> Int `compare` x :: Int  =  GT+abs :: Int -> Int `compare` 0 :: Int  =  GT+abs :: Int -> Int `compare` id _ :: Int  =  LT+abs :: Int -> Int `compare` _ :: Bool  =  GT+abs :: Int -> Int `compare` _ :: Char  =  GT+abs :: Int -> Int `compare` _ :: [Int]  =  GT+(_ +) :: Int -> Int `compare` x :: Int  =  GT+(_ +) :: Int -> Int `compare` 0 :: Int  =  GT+(_ +) :: Int -> Int `compare` id _ :: Int  =  GT+(_ +) :: Int -> Int `compare` _ :: Bool  =  GT+(_ +) :: Int -> Int `compare` _ :: Char  =  GT+(_ +) :: Int -> Int `compare` _ :: [Int]  =  GT+(*) :: Int -> Int -> Int `compare` x :: Int  =  GT+(*) :: Int -> Int -> Int `compare` 0 :: Int  =  GT+(*) :: Int -> Int -> Int `compare` id _ :: Int  =  LT+(*) :: Int -> Int -> Int `compare` _ :: Bool  =  GT+(*) :: Int -> Int -> Int `compare` _ :: Char  =  GT+(*) :: Int -> Int -> Int `compare` _ :: [Int]  =  GT+not :: Bool -> Bool `compare` x :: Int  =  GT+not :: Bool -> Bool `compare` 0 :: Int  =  GT+not :: Bool -> Bool `compare` id _ :: Int  =  LT+not :: Bool -> Bool `compare` _ :: Bool  =  GT+not :: Bool -> Bool `compare` _ :: Char  =  GT+not :: Bool -> Bool `compare` _ :: [Int]  =  GT+(||) :: Bool -> Bool -> Bool `compare` x :: Int  =  GT+(||) :: Bool -> Bool -> Bool `compare` 0 :: Int  =  GT+(||) :: Bool -> Bool -> Bool `compare` id _ :: Int  =  LT+(||) :: Bool -> Bool -> Bool `compare` _ :: Bool  =  GT+(||) :: Bool -> Bool -> Bool `compare` _ :: Char  =  GT+(||) :: Bool -> Bool -> Bool `compare` _ :: [Int]  =  GT+x' :: Int `compare` _ :: Int  =  GT+2 :: Int `compare` _ :: Int  =  GT+id z :: Int `compare` _ :: Int  =  GT+id (-1) :: Int `compare` _ :: Int  =  GT+id (id y) :: Int `compare` _ :: Int  =  GT+id (id 1) :: Int `compare` _ :: Int  =  GT+id (id (id x)) :: Int `compare` _ :: Int  =  GT+id (id (id 0)) :: Int `compare` _ :: Int  =  GT+id (id (id (id _))) :: Int `compare` _ :: Int  =  GT+id (id (negate _)) :: Int `compare` _ :: Int  =  GT+id (id (abs _)) :: Int `compare` _ :: Int  =  GT+id (id (_ + _)) :: Int `compare` _ :: Int  =  GT+id (id (head _)) :: Int `compare` _ :: Int  =  GT+id (id (ord _)) :: Int `compare` _ :: Int  =  GT+id (negate x) :: Int `compare` _ :: Int  =  GT+id (negate 0) :: Int `compare` _ :: Int  =  GT+id (negate (id _)) :: Int `compare` _ :: Int  =  GT+id (abs x) :: Int `compare` _ :: Int  =  GT+id (abs 0) :: Int `compare` _ :: Int  =  GT+id (abs (id _)) :: Int `compare` _ :: Int  =  GT+id (_ + x) :: Int `compare` _ :: Int  =  GT+id (_ + 0) :: Int `compare` _ :: Int  =  GT+id (_ + id _) :: Int `compare` _ :: Int  =  GT+id (x + _) :: Int `compare` _ :: Int  =  GT+id (0 + _) :: Int `compare` _ :: Int  =  GT+id (id _ + _) :: Int `compare` _ :: Int  =  GT+id (_ * _) :: Int `compare` _ :: Int  =  GT+id (f _) :: Int `compare` _ :: Int  =  GT+id (head xs) :: Int `compare` _ :: Int  =  GT+id (head []) :: Int `compare` _ :: Int  =  GT+id (head (_:_)) :: Int `compare` _ :: Int  =  GT+id (ord c) :: Int `compare` _ :: Int  =  GT+id (ord 'a') :: Int `compare` _ :: Int  =  GT+negate y :: Int `compare` _ :: Int  =  GT+negate 1 :: Int `compare` _ :: Int  =  GT+negate (id x) :: Int `compare` _ :: Int  =  GT+negate (id 0) :: Int `compare` _ :: Int  =  GT+negate (id (id _)) :: Int `compare` _ :: Int  =  GT+negate (negate _) :: Int `compare` _ :: Int  =  GT+negate (abs _) :: Int `compare` _ :: Int  =  GT+negate (_ + _) :: Int `compare` _ :: Int  =  GT+negate (head _) :: Int `compare` _ :: Int  =  GT+negate (ord _) :: Int `compare` _ :: Int  =  GT+abs y :: Int `compare` _ :: Int  =  GT+abs 1 :: Int `compare` _ :: Int  =  GT+abs (id x) :: Int `compare` _ :: Int  =  GT+abs (id 0) :: Int `compare` _ :: Int  =  GT+abs (id (id _)) :: Int `compare` _ :: Int  =  GT+abs (negate _) :: Int `compare` _ :: Int  =  GT+abs (abs _) :: Int `compare` _ :: Int  =  GT+abs (_ + _) :: Int `compare` _ :: Int  =  GT+abs (head _) :: Int `compare` _ :: Int  =  GT+abs (ord _) :: Int `compare` _ :: Int  =  GT+_ + y :: Int `compare` _ :: Int  =  GT+_ + 1 :: Int `compare` _ :: Int  =  GT+_ + id x :: Int `compare` _ :: Int  =  GT+_ + id 0 :: Int `compare` _ :: Int  =  GT+_ + id (id _) :: Int `compare` _ :: Int  =  GT+_ + negate _ :: Int `compare` _ :: Int  =  GT+_ + abs _ :: Int `compare` _ :: Int  =  GT+_ + (_ + _) :: Int `compare` _ :: Int  =  GT+_ + head _ :: Int `compare` _ :: Int  =  GT+_ + ord _ :: Int `compare` _ :: Int  =  GT+x + x :: Int `compare` _ :: Int  =  GT+x + 0 :: Int `compare` _ :: Int  =  GT+x + id _ :: Int `compare` _ :: Int  =  GT+0 + x :: Int `compare` _ :: Int  =  GT+0 + 0 :: Int `compare` _ :: Int  =  GT+0 + id _ :: Int `compare` _ :: Int  =  GT+id _ + x :: Int `compare` _ :: Int  =  GT+id _ + 0 :: Int `compare` _ :: Int  =  GT+id _ + id _ :: Int `compare` _ :: Int  =  GT+_ * x :: Int `compare` _ :: Int  =  GT+_ * 0 :: Int `compare` _ :: Int  =  GT+_ * id _ :: Int `compare` _ :: Int  =  GT+f x :: Int `compare` _ :: Int  =  GT+f 0 :: Int `compare` _ :: Int  =  GT+f (id _) :: Int `compare` _ :: Int  =  GT+y + _ :: Int `compare` _ :: Int  =  GT+1 + _ :: Int `compare` _ :: Int  =  GT+id x + _ :: Int `compare` _ :: Int  =  GT+id 0 + _ :: Int `compare` _ :: Int  =  GT+id (id _) + _ :: Int `compare` _ :: Int  =  GT+negate _ + _ :: Int `compare` _ :: Int  =  GT+abs _ + _ :: Int `compare` _ :: Int  =  GT+(_ + _) + _ :: Int `compare` _ :: Int  =  GT+head _ + _ :: Int `compare` _ :: Int  =  GT+ord _ + _ :: Int `compare` _ :: Int  =  GT+x * _ :: Int `compare` _ :: Int  =  GT+0 * _ :: Int `compare` _ :: Int  =  GT+id _ * _ :: Int `compare` _ :: Int  =  GT+g _ :: Int `compare` _ :: Int  =  GT+head ys :: Int `compare` _ :: Int  =  GT+head [0] :: Int `compare` _ :: Int  =  GT+head (_:xs) :: Int `compare` _ :: Int  =  GT+head [_] :: Int `compare` _ :: Int  =  GT+head (_:_:_) :: Int `compare` _ :: Int  =  GT+head (x:_) :: Int `compare` _ :: Int  =  GT+head (0:_) :: Int `compare` _ :: Int  =  GT+head (id _:_) :: Int `compare` _ :: Int  =  GT+head (tail _) :: Int `compare` _ :: Int  =  GT+head (_ ++ _) :: Int `compare` _ :: Int  =  GT+ord d :: Int `compare` _ :: Int  =  GT+ord ' ' :: Int `compare` _ :: Int  =  GT+r :: Bool `compare` _ :: Int  =  LT+not q :: Bool `compare` _ :: Int  =  GT+not (not p) :: Bool `compare` _ :: Int  =  GT+not (not False) :: Bool `compare` _ :: Int  =  GT+not (not True) :: Bool `compare` _ :: Int  =  GT+not (not (not _)) :: Bool `compare` _ :: Int  =  GT+not (_ || _) :: Bool `compare` _ :: Int  =  GT+_ || p :: Bool `compare` _ :: Int  =  GT+_ || False :: Bool `compare` _ :: Int  =  GT+_ || True :: Bool `compare` _ :: Int  =  GT+_ || not _ :: Bool `compare` _ :: Int  =  GT+p || _ :: Bool `compare` _ :: Int  =  GT+False || _ :: Bool `compare` _ :: Int  =  GT+True || _ :: Bool `compare` _ :: Int  =  GT+not _ || _ :: Bool `compare` _ :: Int  =  GT+_ && _ :: Bool `compare` _ :: Int  =  GT+_ == _ :: Bool `compare` _ :: Int  =  GT+_ == _ :: Bool `compare` _ :: Int  =  GT+odd _ :: Bool `compare` _ :: Int  =  GT+even _ :: Bool `compare` _ :: Int  =  GT+elem _ _ :: Bool `compare` _ :: Int  =  GT+e :: Char `compare` _ :: Int  =  LT+'b' :: Char `compare` _ :: Int  =  GT+zs :: [Int] `compare` _ :: Int  =  GT+[0,0] :: [Int] `compare` _ :: Int  =  GT+[1] :: [Int] `compare` _ :: Int  =  GT+_:ys :: [Int] `compare` _ :: Int  =  GT+_:[0] :: [Int] `compare` _ :: Int  =  GT+_:_:xs :: [Int] `compare` _ :: Int  =  GT+[_,_] :: [Int] `compare` _ :: Int  =  GT+_:_:_:_ :: [Int] `compare` _ :: Int  =  GT+_:x:_ :: [Int] `compare` _ :: Int  =  GT+_:0:_ :: [Int] `compare` _ :: Int  =  GT+_:id _:_ :: [Int] `compare` _ :: Int  =  GT+_:tail _ :: [Int] `compare` _ :: Int  =  GT+_:(_ ++ _) :: [Int] `compare` _ :: Int  =  GT+x:xs :: [Int] `compare` _ :: Int  =  GT+[x] :: [Int] `compare` _ :: Int  =  GT+x:_:_ :: [Int] `compare` _ :: Int  =  GT+0:xs :: [Int] `compare` _ :: Int  =  GT+[0] :: [Int] `compare` _ :: Int  =  GT+0:_:_ :: [Int] `compare` _ :: Int  =  GT+id _:xs :: [Int] `compare` _ :: Int  =  GT+[id _] :: [Int] `compare` _ :: Int  =  GT+id _:_:_ :: [Int] `compare` _ :: Int  =  GT+y:_ :: [Int] `compare` _ :: Int  =  GT+1:_ :: [Int] `compare` _ :: Int  =  GT+id x:_ :: [Int] `compare` _ :: Int  =  GT+id 0:_ :: [Int] `compare` _ :: Int  =  GT+id (id _):_ :: [Int] `compare` _ :: Int  =  GT+negate _:_ :: [Int] `compare` _ :: Int  =  GT+abs _:_ :: [Int] `compare` _ :: Int  =  GT+_ + _:_ :: [Int] `compare` _ :: Int  =  GT+head _:_ :: [Int] `compare` _ :: Int  =  GT+ord _:_ :: [Int] `compare` _ :: Int  =  GT+tail xs :: [Int] `compare` _ :: Int  =  GT+tail [] :: [Int] `compare` _ :: Int  =  GT+tail (_:_) :: [Int] `compare` _ :: Int  =  GT+_ ++ xs :: [Int] `compare` _ :: Int  =  GT+_ ++ [] :: [Int] `compare` _ :: Int  =  GT+_ ++ (_:_) :: [Int] `compare` _ :: Int  =  GT+xs ++ _ :: [Int] `compare` _ :: Int  =  GT+[] ++ _ :: [Int] `compare` _ :: Int  =  GT+(_:_) ++ _ :: [Int] `compare` _ :: Int  =  GT+sort _ :: [Int] `compare` _ :: Int  =  GT+insert _ _ :: [Int] `compare` _ :: Int  =  GT+(x +) :: Int -> Int `compare` _ :: Int  =  GT+(0 +) :: Int -> Int `compare` _ :: Int  =  GT+(id _ +) :: Int -> Int `compare` _ :: Int  =  GT+(_ *) :: Int -> Int `compare` _ :: Int  =  GT+f :: Int -> Int `compare` _ :: Int  =  GT+(_ ||) :: Bool -> Bool `compare` _ :: Int  =  GT+(&&) :: Bool -> Bool -> Bool `compare` _ :: Int  =  GT+_ :: Int `compare` y' :: Int  =  LT+_ :: Int `compare` -2 :: Int  =  LT+_ :: Int `compare` id x' :: Int  =  LT+_ :: Int `compare` id 2 :: Int  =  LT+_ :: Int `compare` id (id z) :: Int  =  LT+_ :: Int `compare` id (id (-1)) :: Int  =  LT+_ :: Int `compare` id (id (id y)) :: Int  =  LT+_ :: Int `compare` id (id (id 1)) :: Int  =  LT+_ :: Int `compare` id (id (id (id x))) :: Int  =  LT+_ :: Int `compare` id (id (id (id 0))) :: Int  =  LT+_ :: Int `compare` id (id (id (id (id _)))) :: Int  =  LT+_ :: Int `compare` id (id (id (negate _))) :: Int  =  LT+_ :: Int `compare` id (id (id (abs _))) :: Int  =  LT+_ :: Int `compare` id (id (id (_ + _))) :: Int  =  LT+_ :: Int `compare` id (id (id (head _))) :: Int  =  LT+_ :: Int `compare` id (id (id (ord _))) :: Int  =  LT+_ :: Int `compare` id (id (negate x)) :: Int  =  LT+_ :: Int `compare` id (id (negate 0)) :: Int  =  LT+_ :: Int `compare` id (id (negate (id _))) :: Int  =  LT+_ :: Int `compare` id (id (abs x)) :: Int  =  LT+_ :: Int `compare` id (id (abs 0)) :: Int  =  LT+_ :: Int `compare` id (id (abs (id _))) :: Int  =  LT+_ :: Int `compare` id (id (_ + x)) :: Int  =  LT+_ :: Int `compare` id (id (_ + 0)) :: Int  =  LT+_ :: Int `compare` id (id (_ + id _)) :: Int  =  LT+_ :: Int `compare` id (id (x + _)) :: Int  =  LT+_ :: Int `compare` id (id (0 + _)) :: Int  =  LT+_ :: Int `compare` id (id (id _ + _)) :: Int  =  LT+_ :: Int `compare` id (id (_ * _)) :: Int  =  LT+_ :: Int `compare` id (id (f _)) :: Int  =  LT+_ :: Int `compare` id (id (head xs)) :: Int  =  LT+_ :: Int `compare` id (id (head [])) :: Int  =  LT+_ :: Int `compare` id (id (head (_:_))) :: Int  =  LT+_ :: Int `compare` id (id (ord c)) :: Int  =  LT+_ :: Int `compare` id (id (ord 'a')) :: Int  =  LT+_ :: Int `compare` id (negate y) :: Int  =  LT+_ :: Int `compare` id (negate 1) :: Int  =  LT+_ :: Int `compare` id (negate (id x)) :: Int  =  LT+_ :: Int `compare` id (negate (id 0)) :: Int  =  LT+_ :: Int `compare` id (negate (id (id _))) :: Int  =  LT+_ :: Int `compare` id (negate (negate _)) :: Int  =  LT+_ :: Int `compare` id (negate (abs _)) :: Int  =  LT+_ :: Int `compare` id (negate (_ + _)) :: Int  =  LT+_ :: Int `compare` id (negate (head _)) :: Int  =  LT+_ :: Int `compare` id (negate (ord _)) :: Int  =  LT+_ :: Int `compare` id (abs y) :: Int  =  LT+_ :: Int `compare` id (abs 1) :: Int  =  LT+_ :: Int `compare` id (abs (id x)) :: Int  =  LT+_ :: Int `compare` id (abs (id 0)) :: Int  =  LT+_ :: Int `compare` id (abs (id (id _))) :: Int  =  LT+_ :: Int `compare` id (abs (negate _)) :: Int  =  LT+_ :: Int `compare` id (abs (abs _)) :: Int  =  LT+_ :: Int `compare` id (abs (_ + _)) :: Int  =  LT+_ :: Int `compare` id (abs (head _)) :: Int  =  LT+_ :: Int `compare` id (abs (ord _)) :: Int  =  LT+_ :: Int `compare` id (_ + y) :: Int  =  LT+_ :: Int `compare` id (_ + 1) :: Int  =  LT+_ :: Int `compare` id (_ + id x) :: Int  =  LT+_ :: Int `compare` id (_ + id 0) :: Int  =  LT+_ :: Int `compare` id (_ + id (id _)) :: Int  =  LT+_ :: Int `compare` id (_ + negate _) :: Int  =  LT+_ :: Int `compare` id (_ + abs _) :: Int  =  LT+_ :: Int `compare` id (_ + (_ + _)) :: Int  =  LT+_ :: Int `compare` id (_ + head _) :: Int  =  LT+_ :: Int `compare` id (_ + ord _) :: Int  =  LT+_ :: Int `compare` id (x + x) :: Int  =  LT+_ :: Int `compare` id (x + 0) :: Int  =  LT+_ :: Int `compare` id (x + id _) :: Int  =  LT+_ :: Int `compare` id (0 + x) :: Int  =  LT+_ :: Int `compare` id (0 + 0) :: Int  =  LT+_ :: Int `compare` id (0 + id _) :: Int  =  LT+_ :: Int `compare` id (id _ + x) :: Int  =  LT+_ :: Int `compare` id (id _ + 0) :: Int  =  LT+_ :: Int `compare` id (id _ + id _) :: Int  =  LT+_ :: Int `compare` id (_ * x) :: Int  =  LT+_ :: Int `compare` id (_ * 0) :: Int  =  LT+_ :: Int `compare` id (_ * id _) :: Int  =  LT+_ :: Int `compare` id (f x) :: Int  =  LT+_ :: Int `compare` id (f 0) :: Int  =  LT+_ :: Int `compare` id (f (id _)) :: Int  =  LT+_ :: Int `compare` id (y + _) :: Int  =  LT+_ :: Int `compare` id (1 + _) :: Int  =  LT+_ :: Int `compare` id (id x + _) :: Int  =  LT+_ :: Int `compare` id (id 0 + _) :: Int  =  LT+_ :: Int `compare` id (id (id _) + _) :: Int  =  LT+_ :: Int `compare` id (negate _ + _) :: Int  =  LT+_ :: Int `compare` id (abs _ + _) :: Int  =  LT+_ :: Int `compare` id ((_ + _) + _) :: Int  =  LT+_ :: Int `compare` id (head _ + _) :: Int  =  LT+_ :: Int `compare` id (ord _ + _) :: Int  =  LT+_ :: Int `compare` id (x * _) :: Int  =  LT+_ :: Int `compare` id (0 * _) :: Int  =  LT+_ :: Int `compare` id (id _ * _) :: Int  =  LT+_ :: Int `compare` id (g _) :: Int  =  LT+_ :: Int `compare` id (head ys) :: Int  =  LT+_ :: Int `compare` id (head [0]) :: Int  =  LT+_ :: Int `compare` id (head (_:xs)) :: Int  =  LT+_ :: Int `compare` id (head [_]) :: Int  =  LT+_ :: Int `compare` id (head (_:_:_)) :: Int  =  LT+_ :: Int `compare` id (head (x:_)) :: Int  =  LT+_ :: Int `compare` id (head (0:_)) :: Int  =  LT+_ :: Int `compare` id (head (id _:_)) :: Int  =  LT+_ :: Int `compare` id (head (tail _)) :: Int  =  LT+_ :: Int `compare` id (head (_ ++ _)) :: Int  =  LT+_ :: Int `compare` id (ord d) :: Int  =  LT+_ :: Int `compare` id (ord ' ') :: Int  =  LT+_ :: Int `compare` negate z :: Int  =  LT+_ :: Int `compare` negate (-1) :: Int  =  LT+_ :: Int `compare` negate (id y) :: Int  =  LT+_ :: Int `compare` negate (id 1) :: Int  =  LT+_ :: Int `compare` negate (id (id x)) :: Int  =  LT+_ :: Int `compare` negate (id (id 0)) :: Int  =  LT+_ :: Int `compare` negate (id (id (id _))) :: Int  =  LT+_ :: Int `compare` negate (id (negate _)) :: Int  =  LT+_ :: Int `compare` negate (id (abs _)) :: Int  =  LT+_ :: Int `compare` negate (id (_ + _)) :: Int  =  LT+_ :: Int `compare` negate (id (head _)) :: Int  =  LT+_ :: Int `compare` negate (id (ord _)) :: Int  =  LT+_ :: Int `compare` negate (negate x) :: Int  =  LT+_ :: Int `compare` negate (negate 0) :: Int  =  LT+_ :: Int `compare` negate (negate (id _)) :: Int  =  LT+_ :: Int `compare` negate (abs x) :: Int  =  LT+_ :: Int `compare` negate (abs 0) :: Int  =  LT+_ :: Int `compare` negate (abs (id _)) :: Int  =  LT+_ :: Int `compare` negate (_ + x) :: Int  =  LT+_ :: Int `compare` negate (_ + 0) :: Int  =  LT+_ :: Int `compare` negate (_ + id _) :: Int  =  LT+_ :: Int `compare` negate (x + _) :: Int  =  LT+_ :: Int `compare` negate (0 + _) :: Int  =  LT+_ :: Int `compare` negate (id _ + _) :: Int  =  LT+_ :: Int `compare` negate (_ * _) :: Int  =  LT+_ :: Int `compare` negate (f _) :: Int  =  LT+_ :: Int `compare` negate (head xs) :: Int  =  LT+_ :: Int `compare` negate (head []) :: Int  =  LT+_ :: Int `compare` negate (head (_:_)) :: Int  =  LT+_ :: Int `compare` negate (ord c) :: Int  =  LT+_ :: Int `compare` negate (ord 'a') :: Int  =  LT+_ :: Int `compare` abs z :: Int  =  LT+_ :: Int `compare` abs (-1) :: Int  =  LT+_ :: Int `compare` abs (id y) :: Int  =  LT+_ :: Int `compare` abs (id 1) :: Int  =  LT+_ :: Int `compare` abs (id (id x)) :: Int  =  LT+_ :: Int `compare` abs (id (id 0)) :: Int  =  LT+_ :: Int `compare` abs (id (id (id _))) :: Int  =  LT+_ :: Int `compare` abs (id (negate _)) :: Int  =  LT+_ :: Int `compare` abs (id (abs _)) :: Int  =  LT+_ :: Int `compare` abs (id (_ + _)) :: Int  =  LT+_ :: Int `compare` abs (id (head _)) :: Int  =  LT+_ :: Int `compare` abs (id (ord _)) :: Int  =  LT+_ :: Int `compare` abs (negate x) :: Int  =  LT+_ :: Int `compare` abs (negate 0) :: Int  =  LT+_ :: Int `compare` abs (negate (id _)) :: Int  =  LT+_ :: Int `compare` abs (abs x) :: Int  =  LT+_ :: Int `compare` abs (abs 0) :: Int  =  LT+_ :: Int `compare` abs (abs (id _)) :: Int  =  LT+_ :: Int `compare` abs (_ + x) :: Int  =  LT+_ :: Int `compare` abs (_ + 0) :: Int  =  LT+_ :: Int `compare` abs (_ + id _) :: Int  =  LT+_ :: Int `compare` abs (x + _) :: Int  =  LT+_ :: Int `compare` abs (0 + _) :: Int  =  LT+_ :: Int `compare` abs (id _ + _) :: Int  =  LT+_ :: Int `compare` abs (_ * _) :: Int  =  LT+_ :: Int `compare` abs (f _) :: Int  =  LT+_ :: Int `compare` abs (head xs) :: Int  =  LT+_ :: Int `compare` abs (head []) :: Int  =  LT+_ :: Int `compare` abs (head (_:_)) :: Int  =  LT+_ :: Int `compare` abs (ord c) :: Int  =  LT+_ :: Int `compare` abs (ord 'a') :: Int  =  LT+_ :: Int `compare` _ + z :: Int  =  LT+_ :: Int `compare` _ + (-1) :: Int  =  LT+_ :: Int `compare` _ + id y :: Int  =  LT+_ :: Int `compare` _ + id 1 :: Int  =  LT+_ :: Int `compare` _ + id (id x) :: Int  =  LT+_ :: Int `compare` _ + id (id 0) :: Int  =  LT+_ :: Int `compare` _ + id (id (id _)) :: Int  =  LT+_ :: Int `compare` _ + id (negate _) :: Int  =  LT+_ :: Int `compare` _ + id (abs _) :: Int  =  LT+_ :: Int `compare` _ + id (_ + _) :: Int  =  LT+_ :: Int `compare` _ + id (head _) :: Int  =  LT+_ :: Int `compare` _ + id (ord _) :: Int  =  LT+_ :: Int `compare` _ + negate x :: Int  =  LT+_ :: Int `compare` _ + negate 0 :: Int  =  LT+_ :: Int `compare` _ + negate (id _) :: Int  =  LT+_ :: Int `compare` _ + abs x :: Int  =  LT+_ :: Int `compare` _ + abs 0 :: Int  =  LT+_ :: Int `compare` _ + abs (id _) :: Int  =  LT+_ :: Int `compare` _ + (_ + x) :: Int  =  LT+_ :: Int `compare` _ + (_ + 0) :: Int  =  LT+_ :: Int `compare` _ + (_ + id _) :: Int  =  LT+_ :: Int `compare` _ + (x + _) :: Int  =  LT+_ :: Int `compare` _ + (0 + _) :: Int  =  LT+_ :: Int `compare` _ + (id _ + _) :: Int  =  LT+_ :: Int `compare` _ + _ * _ :: Int  =  LT+_ :: Int `compare` _ + f _ :: Int  =  LT+_ :: Int `compare` _ + head xs :: Int  =  LT+_ :: Int `compare` _ + head [] :: Int  =  LT+_ :: Int `compare` _ + head (_:_) :: Int  =  LT+_ :: Int `compare` _ + ord c :: Int  =  LT+_ :: Int `compare` _ + ord 'a' :: Int  =  LT+_ :: Int `compare` x + y :: Int  =  LT+_ :: Int `compare` x + 1 :: Int  =  LT+_ :: Int `compare` x + id x :: Int  =  LT+_ :: Int `compare` x + id 0 :: Int  =  LT+_ :: Int `compare` x + id (id _) :: Int  =  LT+_ :: Int `compare` x + negate _ :: Int  =  LT+_ :: Int `compare` x + abs _ :: Int  =  LT+_ :: Int `compare` x + (_ + _) :: Int  =  LT+_ :: Int `compare` x + head _ :: Int  =  LT+_ :: Int `compare` x + ord _ :: Int  =  LT+_ :: Int `compare` 0 + y :: Int  =  LT+_ :: Int `compare` 0 + 1 :: Int  =  LT+_ :: Int `compare` 0 + id x :: Int  =  LT+_ :: Int `compare` 0 + id 0 :: Int  =  LT+_ :: Int `compare` 0 + id (id _) :: Int  =  LT+_ :: Int `compare` 0 + negate _ :: Int  =  LT+_ :: Int `compare` 0 + abs _ :: Int  =  LT+_ :: Int `compare` 0 + (_ + _) :: Int  =  LT+_ :: Int `compare` 0 + head _ :: Int  =  LT+_ :: Int `compare` 0 + ord _ :: Int  =  LT+_ :: Int `compare` id _ + y :: Int  =  LT+_ :: Int `compare` id _ + 1 :: Int  =  LT+_ :: Int `compare` id _ + id x :: Int  =  LT+_ :: Int `compare` id _ + id 0 :: Int  =  LT+_ :: Int `compare` id _ + id (id _) :: Int  =  LT+_ :: Int `compare` id _ + negate _ :: Int  =  LT+_ :: Int `compare` id _ + abs _ :: Int  =  LT+_ :: Int `compare` id _ + (_ + _) :: Int  =  LT+_ :: Int `compare` id _ + head _ :: Int  =  LT+_ :: Int `compare` id _ + ord _ :: Int  =  LT+_ :: Int `compare` _ * y :: Int  =  LT+_ :: Int `compare` _ * 1 :: Int  =  LT+_ :: Int `compare` _ * id x :: Int  =  LT+_ :: Int `compare` _ * id 0 :: Int  =  LT+_ :: Int `compare` _ * id (id _) :: Int  =  LT+_ :: Int `compare` _ * negate _ :: Int  =  LT+_ :: Int `compare` _ * abs _ :: Int  =  LT+_ :: Int `compare` _ * (_ + _) :: Int  =  LT+_ :: Int `compare` _ * head _ :: Int  =  LT+_ :: Int `compare` _ * ord _ :: Int  =  LT+_ :: Int `compare` f y :: Int  =  LT+_ :: Int `compare` f 1 :: Int  =  LT+_ :: Int `compare` f (id x) :: Int  =  LT+_ :: Int `compare` f (id 0) :: Int  =  LT+_ :: Int `compare` f (id (id _)) :: Int  =  LT+_ :: Int `compare` f (negate _) :: Int  =  LT+_ :: Int `compare` f (abs _) :: Int  =  LT+_ :: Int `compare` f (_ + _) :: Int  =  LT+_ :: Int `compare` f (head _) :: Int  =  LT+_ :: Int `compare` f (ord _) :: Int  =  LT+_ :: Int `compare` y + x :: Int  =  LT+_ :: Int `compare` y + 0 :: Int  =  LT+_ :: Int `compare` y + id _ :: Int  =  LT+_ :: Int `compare` 1 + x :: Int  =  LT+_ :: Int `compare` 1 + 0 :: Int  =  LT+_ :: Int `compare` 1 + id _ :: Int  =  LT+_ :: Int `compare` id x + x :: Int  =  LT+_ :: Int `compare` id x + 0 :: Int  =  LT+_ :: Int `compare` id x + id _ :: Int  =  LT+_ :: Int `compare` id 0 + x :: Int  =  LT+_ :: Int `compare` id 0 + 0 :: Int  =  LT+_ :: Int `compare` id 0 + id _ :: Int  =  LT+_ :: Int `compare` id (id _) + x :: Int  =  LT+_ :: Int `compare` id (id _) + 0 :: Int  =  LT+_ :: Int `compare` id (id _) + id _ :: Int  =  LT+_ :: Int `compare` negate _ + x :: Int  =  LT+_ :: Int `compare` negate _ + 0 :: Int  =  LT+_ :: Int `compare` negate _ + id _ :: Int  =  LT+_ :: Int `compare` abs _ + x :: Int  =  LT+_ :: Int `compare` abs _ + 0 :: Int  =  LT+_ :: Int `compare` abs _ + id _ :: Int  =  LT+_ :: Int `compare` (_ + _) + x :: Int  =  LT+_ :: Int `compare` (_ + _) + 0 :: Int  =  LT+_ :: Int `compare` (_ + _) + id _ :: Int  =  LT+_ :: Int `compare` head _ + x :: Int  =  LT+_ :: Int `compare` head _ + 0 :: Int  =  LT+_ :: Int `compare` head _ + id _ :: Int  =  LT+_ :: Int `compare` ord _ + x :: Int  =  LT+_ :: Int `compare` ord _ + 0 :: Int  =  LT+_ :: Int `compare` ord _ + id _ :: Int  =  LT+_ :: Int `compare` x * x :: Int  =  LT+_ :: Int `compare` x * 0 :: Int  =  LT+_ :: Int `compare` x * id _ :: Int  =  LT+_ :: Int `compare` 0 * x :: Int  =  LT+_ :: Int `compare` 0 * 0 :: Int  =  LT+_ :: Int `compare` 0 * id _ :: Int  =  LT+_ :: Int `compare` id _ * x :: Int  =  LT+_ :: Int `compare` id _ * 0 :: Int  =  LT+_ :: Int `compare` id _ * id _ :: Int  =  LT+_ :: Int `compare` g x :: Int  =  LT+_ :: Int `compare` g 0 :: Int  =  LT+_ :: Int `compare` g (id _) :: Int  =  LT+_ :: Int `compare` z + _ :: Int  =  LT+_ :: Int `compare` (-1) + _ :: Int  =  LT+_ :: Int `compare` id y + _ :: Int  =  LT+_ :: Int `compare` id 1 + _ :: Int  =  LT+_ :: Int `compare` id (id x) + _ :: Int  =  LT+_ :: Int `compare` id (id 0) + _ :: Int  =  LT+_ :: Int `compare` id (id (id _)) + _ :: Int  =  LT+_ :: Int `compare` id (negate _) + _ :: Int  =  LT+_ :: Int `compare` id (abs _) + _ :: Int  =  LT+_ :: Int `compare` id (_ + _) + _ :: Int  =  LT+_ :: Int `compare` id (head _) + _ :: Int  =  LT+_ :: Int `compare` id (ord _) + _ :: Int  =  LT+_ :: Int `compare` negate x + _ :: Int  =  LT+_ :: Int `compare` negate 0 + _ :: Int  =  LT+_ :: Int `compare` negate (id _) + _ :: Int  =  LT+_ :: Int `compare` abs x + _ :: Int  =  LT+_ :: Int `compare` abs 0 + _ :: Int  =  LT+_ :: Int `compare` abs (id _) + _ :: Int  =  LT+_ :: Int `compare` (_ + x) + _ :: Int  =  LT+_ :: Int `compare` (_ + 0) + _ :: Int  =  LT+_ :: Int `compare` (_ + id _) + _ :: Int  =  LT+_ :: Int `compare` (x + _) + _ :: Int  =  LT+_ :: Int `compare` (0 + _) + _ :: Int  =  LT+_ :: Int `compare` (id _ + _) + _ :: Int  =  LT+_ :: Int `compare` _ * _ + _ :: Int  =  LT+_ :: Int `compare` f _ + _ :: Int  =  LT+_ :: Int `compare` head xs + _ :: Int  =  LT+_ :: Int `compare` head [] + _ :: Int  =  LT+_ :: Int `compare` head (_:_) + _ :: Int  =  LT+_ :: Int `compare` ord c + _ :: Int  =  LT+_ :: Int `compare` ord 'a' + _ :: Int  =  LT+_ :: Int `compare` y * _ :: Int  =  LT+_ :: Int `compare` 1 * _ :: Int  =  LT+_ :: Int `compare` id x * _ :: Int  =  LT+_ :: Int `compare` id 0 * _ :: Int  =  LT+_ :: Int `compare` id (id _) * _ :: Int  =  LT+_ :: Int `compare` negate _ * _ :: Int  =  LT+_ :: Int `compare` abs _ * _ :: Int  =  LT+_ :: Int `compare` (_ + _) * _ :: Int  =  LT+_ :: Int `compare` head _ * _ :: Int  =  LT+_ :: Int `compare` ord _ * _ :: Int  =  LT+_ :: Int `compare` h _ :: Int  =  LT+_ :: Int `compare` head zs :: Int  =  LT+_ :: Int `compare` head [0,0] :: Int  =  LT+_ :: Int `compare` head [1] :: Int  =  LT+_ :: Int `compare` head (_:ys) :: Int  =  LT+_ :: Int `compare` head (_:[0]) :: Int  =  LT+_ :: Int `compare` head (_:_:xs) :: Int  =  LT+_ :: Int `compare` head [_,_] :: Int  =  LT+_ :: Int `compare` head (_:_:_:_) :: Int  =  LT+_ :: Int `compare` head (_:x:_) :: Int  =  LT+_ :: Int `compare` head (_:0:_) :: Int  =  LT+_ :: Int `compare` head (_:id _:_) :: Int  =  LT+_ :: Int `compare` head (_:tail _) :: Int  =  LT+_ :: Int `compare` head (_:(_ ++ _)) :: Int  =  LT+_ :: Int `compare` head (x:xs) :: Int  =  LT+_ :: Int `compare` head [x] :: Int  =  LT+_ :: Int `compare` head (x:_:_) :: Int  =  LT+_ :: Int `compare` head (0:xs) :: Int  =  LT+_ :: Int `compare` head [0] :: Int  =  LT+_ :: Int `compare` head (0:_:_) :: Int  =  LT+_ :: Int `compare` head (id _:xs) :: Int  =  LT+_ :: Int `compare` head [id _] :: Int  =  LT+_ :: Int `compare` head (id _:_:_) :: Int  =  LT+_ :: Int `compare` head (y:_) :: Int  =  LT+_ :: Int `compare` head (1:_) :: Int  =  LT+_ :: Int `compare` head (id x:_) :: Int  =  LT+_ :: Int `compare` head (id 0:_) :: Int  =  LT+_ :: Int `compare` head (id (id _):_) :: Int  =  LT+_ :: Int `compare` head (negate _:_) :: Int  =  LT+_ :: Int `compare` head (abs _:_) :: Int  =  LT+_ :: Int `compare` head (_ + _:_) :: Int  =  LT+_ :: Int `compare` head (head _:_) :: Int  =  LT+_ :: Int `compare` head (ord _:_) :: Int  =  LT+_ :: Int `compare` head (tail xs) :: Int  =  LT+_ :: Int `compare` head (tail []) :: Int  =  LT+_ :: Int `compare` head (tail (_:_)) :: Int  =  LT+_ :: Int `compare` head (_ ++ xs) :: Int  =  LT+_ :: Int `compare` head (_ ++ []) :: Int  =  LT+_ :: Int `compare` head (_ ++ (_:_)) :: Int  =  LT+_ :: Int `compare` head (xs ++ _) :: Int  =  LT+_ :: Int `compare` head ([] ++ _) :: Int  =  LT+_ :: Int `compare` head ((_:_) ++ _) :: Int  =  LT+_ :: Int `compare` head (sort _) :: Int  =  LT+_ :: Int `compare` head (insert _ _) :: Int  =  LT+_ :: Int `compare` ord e :: Int  =  LT+_ :: Int `compare` ord 'b' :: Int  =  LT+_ :: Int `compare` p' :: Bool  =  GT+_ :: Int `compare` not r :: Bool  =  LT+_ :: Int `compare` not (not q) :: Bool  =  LT+_ :: Int `compare` not (not (not p)) :: Bool  =  LT+_ :: Int `compare` not (not (not False)) :: Bool  =  LT+_ :: Int `compare` not (not (not True)) :: Bool  =  LT+_ :: Int `compare` not (not (not (not _))) :: Bool  =  LT+_ :: Int `compare` not (not (_ || _)) :: Bool  =  LT+_ :: Int `compare` not (_ || p) :: Bool  =  LT+_ :: Int `compare` not (_ || False) :: Bool  =  LT+_ :: Int `compare` not (_ || True) :: Bool  =  LT+_ :: Int `compare` not (_ || not _) :: Bool  =  LT+_ :: Int `compare` not (p || _) :: Bool  =  LT+_ :: Int `compare` not (False || _) :: Bool  =  LT+_ :: Int `compare` not (True || _) :: Bool  =  LT+_ :: Int `compare` not (not _ || _) :: Bool  =  LT+_ :: Int `compare` not (_ && _) :: Bool  =  LT+_ :: Int `compare` not (_ == _) :: Bool  =  LT+_ :: Int `compare` not (_ == _) :: Bool  =  LT+_ :: Int `compare` not (odd _) :: Bool  =  LT+_ :: Int `compare` not (even _) :: Bool  =  LT+_ :: Int `compare` not (elem _ _) :: Bool  =  LT+_ :: Int `compare` _ || q :: Bool  =  LT+_ :: Int `compare` _ || not p :: Bool  =  LT+_ :: Int `compare` _ || not False :: Bool  =  LT+_ :: Int `compare` _ || not True :: Bool  =  LT+_ :: Int `compare` _ || not (not _) :: Bool  =  LT+_ :: Int `compare` _ || (_ || _) :: Bool  =  LT+_ :: Int `compare` p || p :: Bool  =  LT+_ :: Int `compare` p || False :: Bool  =  LT+_ :: Int `compare` p || True :: Bool  =  LT+_ :: Int `compare` p || not _ :: Bool  =  LT+_ :: Int `compare` False || p :: Bool  =  LT+_ :: Int `compare` False || False :: Bool  =  LT+_ :: Int `compare` False || True :: Bool  =  LT+_ :: Int `compare` False || not _ :: Bool  =  LT+_ :: Int `compare` True || p :: Bool  =  LT+_ :: Int `compare` True || False :: Bool  =  LT+_ :: Int `compare` True || True :: Bool  =  LT+_ :: Int `compare` True || not _ :: Bool  =  LT+_ :: Int `compare` not _ || p :: Bool  =  LT+_ :: Int `compare` not _ || False :: Bool  =  LT+_ :: Int `compare` not _ || True :: Bool  =  LT+_ :: Int `compare` not _ || not _ :: Bool  =  LT+_ :: Int `compare` _ && p :: Bool  =  LT+_ :: Int `compare` _ && False :: Bool  =  LT+_ :: Int `compare` _ && True :: Bool  =  LT+_ :: Int `compare` _ && not _ :: Bool  =  LT+_ :: Int `compare` q || _ :: Bool  =  LT+_ :: Int `compare` not p || _ :: Bool  =  LT+_ :: Int `compare` not False || _ :: Bool  =  LT+_ :: Int `compare` not True || _ :: Bool  =  LT+_ :: Int `compare` not (not _) || _ :: Bool  =  LT+_ :: Int `compare` (_ || _) || _ :: Bool  =  LT+_ :: Int `compare` p && _ :: Bool  =  LT+_ :: Int `compare` False && _ :: Bool  =  LT+_ :: Int `compare` True && _ :: Bool  =  LT+_ :: Int `compare` not _ && _ :: Bool  =  LT+_ :: Int `compare` _ ==> _ :: Bool  =  LT+_ :: Int `compare` _ == x :: Bool  =  LT+_ :: Int `compare` _ == 0 :: Bool  =  LT+_ :: Int `compare` _ == id _ :: Bool  =  LT+_ :: Int `compare` x == _ :: Bool  =  LT+_ :: Int `compare` 0 == _ :: Bool  =  LT+_ :: Int `compare` id _ == _ :: Bool  =  LT+_ :: Int `compare` _ == p :: Bool  =  LT+_ :: Int `compare` _ == False :: Bool  =  LT+_ :: Int `compare` _ == True :: Bool  =  LT+_ :: Int `compare` _ == not _ :: Bool  =  LT+_ :: Int `compare` p == _ :: Bool  =  LT+_ :: Int `compare` False == _ :: Bool  =  LT+_ :: Int `compare` True == _ :: Bool  =  LT+_ :: Int `compare` not _ == _ :: Bool  =  LT+_ :: Int `compare` _ <= _ :: Bool  =  LT+_ :: Int `compare` _ <= _ :: Bool  =  LT+_ :: Int `compare` odd x :: Bool  =  LT+_ :: Int `compare` odd 0 :: Bool  =  LT+_ :: Int `compare` odd (id _) :: Bool  =  LT+_ :: Int `compare` even x :: Bool  =  LT+_ :: Int `compare` even 0 :: Bool  =  LT+_ :: Int `compare` even (id _) :: Bool  =  LT+_ :: Int `compare` elem _ xs :: Bool  =  LT+_ :: Int `compare` elem _ [] :: Bool  =  LT+_ :: Int `compare` elem _ (_:_) :: Bool  =  LT+_ :: Int `compare` elem x _ :: Bool  =  LT+_ :: Int `compare` elem 0 _ :: Bool  =  LT+_ :: Int `compare` elem (id _) _ :: Bool  =  LT+_ :: Int `compare` c' :: Char  =  GT+_ :: Int `compare` 'A' :: Char  =  LT+_ :: Int `compare` xs' :: [Int]  =  LT+_ :: Int `compare` [0,0,0] :: [Int]  =  LT+_ :: Int `compare` [0,1] :: [Int]  =  LT+_ :: Int `compare` [1,0] :: [Int]  =  LT+_ :: Int `compare` [-1] :: [Int]  =  LT+_ :: Int `compare` _:zs :: [Int]  =  LT+_ :: Int `compare` _:[0,0] :: [Int]  =  LT+_ :: Int `compare` _:[1] :: [Int]  =  LT+_ :: Int `compare` _:_:ys :: [Int]  =  LT+_ :: Int `compare` _:_:[0] :: [Int]  =  LT+_ :: Int `compare` _:_:_:xs :: [Int]  =  LT+_ :: Int `compare` [_,_,_] :: [Int]  =  LT+_ :: Int `compare` _:_:_:_:_ :: [Int]  =  LT+_ :: Int `compare` _:_:x:_ :: [Int]  =  LT+_ :: Int `compare` _:_:0:_ :: [Int]  =  LT+_ :: Int `compare` _:_:id _:_ :: [Int]  =  LT+_ :: Int `compare` _:_:tail _ :: [Int]  =  LT+_ :: Int `compare` _:_:(_ ++ _) :: [Int]  =  LT+_ :: Int `compare` _:x:xs :: [Int]  =  LT+_ :: Int `compare` [_,x] :: [Int]  =  LT+_ :: Int `compare` _:x:_:_ :: [Int]  =  LT+_ :: Int `compare` _:0:xs :: [Int]  =  LT+_ :: Int `compare` [_,0] :: [Int]  =  LT+_ :: Int `compare` _:0:_:_ :: [Int]  =  LT+_ :: Int `compare` _:id _:xs :: [Int]  =  LT+_ :: Int `compare` [_,id _] :: [Int]  =  LT+_ :: Int `compare` _:id _:_:_ :: [Int]  =  LT+_ :: Int `compare` _:y:_ :: [Int]  =  LT+_ :: Int `compare` _:1:_ :: [Int]  =  LT+_ :: Int `compare` _:id x:_ :: [Int]  =  LT+_ :: Int `compare` _:id 0:_ :: [Int]  =  LT+_ :: Int `compare` _:id (id _):_ :: [Int]  =  LT+_ :: Int `compare` _:negate _:_ :: [Int]  =  LT+_ :: Int `compare` _:abs _:_ :: [Int]  =  LT+_ :: Int `compare` _:_ + _:_ :: [Int]  =  LT+_ :: Int `compare` _:head _:_ :: [Int]  =  LT+_ :: Int `compare` _:ord _:_ :: [Int]  =  LT+_ :: Int `compare` _:tail xs :: [Int]  =  LT+_ :: Int `compare` _:tail [] :: [Int]  =  LT+_ :: Int `compare` _:tail (_:_) :: [Int]  =  LT+_ :: Int `compare` _:(_ ++ xs) :: [Int]  =  LT+_ :: Int `compare` _:(_ ++ []) :: [Int]  =  LT+_ :: Int `compare` _:(_ ++ (_:_)) :: [Int]  =  LT+_ :: Int `compare` _:(xs ++ _) :: [Int]  =  LT+_ :: Int `compare` _:([] ++ _) :: [Int]  =  LT+_ :: Int `compare` _:((_:_) ++ _) :: [Int]  =  LT+_ :: Int `compare` _:sort _ :: [Int]  =  LT+_ :: Int `compare` _:insert _ _ :: [Int]  =  LT+_ :: Int `compare` x:ys :: [Int]  =  LT+_ :: Int `compare` x:[0] :: [Int]  =  LT+_ :: Int `compare` x:_:xs :: [Int]  =  LT+_ :: Int `compare` [x,_] :: [Int]  =  LT+_ :: Int `compare` x:_:_:_ :: [Int]  =  LT+_ :: Int `compare` x:x:_ :: [Int]  =  LT+_ :: Int `compare` x:0:_ :: [Int]  =  LT+_ :: Int `compare` x:id _:_ :: [Int]  =  LT+_ :: Int `compare` x:tail _ :: [Int]  =  LT+_ :: Int `compare` x:(_ ++ _) :: [Int]  =  LT+_ :: Int `compare` 0:ys :: [Int]  =  LT+_ :: Int `compare` 0:[0] :: [Int]  =  LT+_ :: Int `compare` 0:_:xs :: [Int]  =  LT+_ :: Int `compare` [0,_] :: [Int]  =  LT+_ :: Int `compare` 0:_:_:_ :: [Int]  =  LT+_ :: Int `compare` 0:x:_ :: [Int]  =  LT+_ :: Int `compare` 0:0:_ :: [Int]  =  LT+_ :: Int `compare` 0:id _:_ :: [Int]  =  LT+_ :: Int `compare` 0:tail _ :: [Int]  =  LT+_ :: Int `compare` 0:(_ ++ _) :: [Int]  =  LT+_ :: Int `compare` id _:ys :: [Int]  =  LT+_ :: Int `compare` id _:[0] :: [Int]  =  LT+_ :: Int `compare` id _:_:xs :: [Int]  =  LT+_ :: Int `compare` [id _,_] :: [Int]  =  LT+_ :: Int `compare` id _:_:_:_ :: [Int]  =  LT+_ :: Int `compare` id _:x:_ :: [Int]  =  LT+_ :: Int `compare` id _:0:_ :: [Int]  =  LT+_ :: Int `compare` id _:id _:_ :: [Int]  =  LT+_ :: Int `compare` id _:tail _ :: [Int]  =  LT+_ :: Int `compare` id _:(_ ++ _) :: [Int]  =  LT+_ :: Int `compare` y:xs :: [Int]  =  LT+_ :: Int `compare` [y] :: [Int]  =  LT+_ :: Int `compare` y:_:_ :: [Int]  =  LT+_ :: Int `compare` 1:xs :: [Int]  =  LT+_ :: Int `compare` [1] :: [Int]  =  LT+_ :: Int `compare` 1:_:_ :: [Int]  =  LT+_ :: Int `compare` id x:xs :: [Int]  =  LT+_ :: Int `compare` [id x] :: [Int]  =  LT+_ :: Int `compare` id x:_:_ :: [Int]  =  LT+_ :: Int `compare` id 0:xs :: [Int]  =  LT+_ :: Int `compare` [id 0] :: [Int]  =  LT+_ :: Int `compare` id 0:_:_ :: [Int]  =  LT+_ :: Int `compare` id (id _):xs :: [Int]  =  LT+_ :: Int `compare` [id (id _)] :: [Int]  =  LT+_ :: Int `compare` id (id _):_:_ :: [Int]  =  LT+_ :: Int `compare` negate _:xs :: [Int]  =  LT+_ :: Int `compare` [negate _] :: [Int]  =  LT+_ :: Int `compare` negate _:_:_ :: [Int]  =  LT+_ :: Int `compare` abs _:xs :: [Int]  =  LT+_ :: Int `compare` [abs _] :: [Int]  =  LT+_ :: Int `compare` abs _:_:_ :: [Int]  =  LT+_ :: Int `compare` _ + _:xs :: [Int]  =  LT+_ :: Int `compare` [_ + _] :: [Int]  =  LT+_ :: Int `compare` _ + _:_:_ :: [Int]  =  LT+_ :: Int `compare` head _:xs :: [Int]  =  LT+_ :: Int `compare` [head _] :: [Int]  =  LT+_ :: Int `compare` head _:_:_ :: [Int]  =  LT+_ :: Int `compare` ord _:xs :: [Int]  =  LT+_ :: Int `compare` [ord _] :: [Int]  =  LT+_ :: Int `compare` ord _:_:_ :: [Int]  =  LT+_ :: Int `compare` z:_ :: [Int]  =  LT+_ :: Int `compare` (-1):_ :: [Int]  =  LT+_ :: Int `compare` id y:_ :: [Int]  =  LT+_ :: Int `compare` id 1:_ :: [Int]  =  LT+_ :: Int `compare` id (id x):_ :: [Int]  =  LT+_ :: Int `compare` id (id 0):_ :: [Int]  =  LT+_ :: Int `compare` id (id (id _)):_ :: [Int]  =  LT+_ :: Int `compare` id (negate _):_ :: [Int]  =  LT+_ :: Int `compare` id (abs _):_ :: [Int]  =  LT+_ :: Int `compare` id (_ + _):_ :: [Int]  =  LT+_ :: Int `compare` id (head _):_ :: [Int]  =  LT+_ :: Int `compare` id (ord _):_ :: [Int]  =  LT+_ :: Int `compare` negate x:_ :: [Int]  =  LT+_ :: Int `compare` negate 0:_ :: [Int]  =  LT+_ :: Int `compare` negate (id _):_ :: [Int]  =  LT+_ :: Int `compare` abs x:_ :: [Int]  =  LT+_ :: Int `compare` abs 0:_ :: [Int]  =  LT+_ :: Int `compare` abs (id _):_ :: [Int]  =  LT+_ :: Int `compare` _ + x:_ :: [Int]  =  LT+_ :: Int `compare` _ + 0:_ :: [Int]  =  LT+_ :: Int `compare` _ + id _:_ :: [Int]  =  LT+_ :: Int `compare` x + _:_ :: [Int]  =  LT+_ :: Int `compare` 0 + _:_ :: [Int]  =  LT+_ :: Int `compare` id _ + _:_ :: [Int]  =  LT+_ :: Int `compare` _ * _:_ :: [Int]  =  LT+_ :: Int `compare` f _:_ :: [Int]  =  LT+_ :: Int `compare` head xs:_ :: [Int]  =  LT+_ :: Int `compare` head []:_ :: [Int]  =  LT+_ :: Int `compare` head (_:_):_ :: [Int]  =  LT+_ :: Int `compare` ord c:_ :: [Int]  =  LT+_ :: Int `compare` ord 'a':_ :: [Int]  =  LT+_ :: Int `compare` tail ys :: [Int]  =  LT+_ :: Int `compare` tail [0] :: [Int]  =  LT+_ :: Int `compare` tail (_:xs) :: [Int]  =  LT+_ :: Int `compare` tail [_] :: [Int]  =  LT+_ :: Int `compare` tail (_:_:_) :: [Int]  =  LT+_ :: Int `compare` tail (x:_) :: [Int]  =  LT+_ :: Int `compare` tail (0:_) :: [Int]  =  LT+_ :: Int `compare` tail (id _:_) :: [Int]  =  LT+_ :: Int `compare` tail (tail _) :: [Int]  =  LT+_ :: Int `compare` tail (_ ++ _) :: [Int]  =  LT+_ :: Int `compare` _ ++ ys :: [Int]  =  LT+_ :: Int `compare` _ ++ [0] :: [Int]  =  LT+_ :: Int `compare` _ ++ (_:xs) :: [Int]  =  LT+_ :: Int `compare` _ ++ [_] :: [Int]  =  LT+_ :: Int `compare` _ ++ (_:_:_) :: [Int]  =  LT+_ :: Int `compare` _ ++ (x:_) :: [Int]  =  LT+_ :: Int `compare` _ ++ (0:_) :: [Int]  =  LT+_ :: Int `compare` _ ++ (id _:_) :: [Int]  =  LT+_ :: Int `compare` _ ++ tail _ :: [Int]  =  LT+_ :: Int `compare` _ ++ (_ ++ _) :: [Int]  =  LT+_ :: Int `compare` xs ++ xs :: [Int]  =  LT+_ :: Int `compare` xs ++ [] :: [Int]  =  LT+_ :: Int `compare` xs ++ (_:_) :: [Int]  =  LT+_ :: Int `compare` [] ++ xs :: [Int]  =  LT+_ :: Int `compare` [] ++ [] :: [Int]  =  LT+_ :: Int `compare` [] ++ (_:_) :: [Int]  =  LT+_ :: Int `compare` (_:_) ++ xs :: [Int]  =  LT+_ :: Int `compare` (_:_) ++ [] :: [Int]  =  LT+_ :: Int `compare` (_:_) ++ (_:_) :: [Int]  =  LT+_ :: Int `compare` ys ++ _ :: [Int]  =  LT+_ :: Int `compare` [0] ++ _ :: [Int]  =  LT+_ :: Int `compare` (_:xs) ++ _ :: [Int]  =  LT+_ :: Int `compare` [_] ++ _ :: [Int]  =  LT+_ :: Int `compare` (_:_:_) ++ _ :: [Int]  =  LT+_ :: Int `compare` (x:_) ++ _ :: [Int]  =  LT+_ :: Int `compare` (0:_) ++ _ :: [Int]  =  LT+_ :: Int `compare` (id _:_) ++ _ :: [Int]  =  LT+_ :: Int `compare` tail _ ++ _ :: [Int]  =  LT+_ :: Int `compare` (_ ++ _) ++ _ :: [Int]  =  LT+_ :: Int `compare` sort xs :: [Int]  =  LT+_ :: Int `compare` sort [] :: [Int]  =  LT+_ :: Int `compare` sort (_:_) :: [Int]  =  LT+_ :: Int `compare` insert _ xs :: [Int]  =  LT+_ :: Int `compare` insert _ [] :: [Int]  =  LT+_ :: Int `compare` insert _ (_:_) :: [Int]  =  LT+_ :: Int `compare` insert x _ :: [Int]  =  LT+_ :: Int `compare` insert 0 _ :: [Int]  =  LT+_ :: Int `compare` insert (id _) _ :: [Int]  =  LT+_ :: Int `compare` (y +) :: Int -> Int  =  LT+_ :: Int `compare` (1 +) :: Int -> Int  =  LT+_ :: Int `compare` (id x +) :: Int -> Int  =  LT+_ :: Int `compare` (id 0 +) :: Int -> Int  =  LT+_ :: Int `compare` (id (id _) +) :: Int -> Int  =  LT+_ :: Int `compare` (negate _ +) :: Int -> Int  =  LT+_ :: Int `compare` (abs _ +) :: Int -> Int  =  LT+_ :: Int `compare` ((_ + _) +) :: Int -> Int  =  LT+_ :: Int `compare` (head _ +) :: Int -> Int  =  LT+_ :: Int `compare` (ord _ +) :: Int -> Int  =  LT+_ :: Int `compare` (x *) :: Int -> Int  =  LT+_ :: Int `compare` (0 *) :: Int -> Int  =  LT+_ :: Int `compare` (id _ *) :: Int -> Int  =  LT+_ :: Int `compare` g :: Int -> Int  =  LT+_ :: Int `compare` (p ||) :: Bool -> Bool  =  LT+_ :: Int `compare` (False ||) :: Bool -> Bool  =  LT+_ :: Int `compare` (True ||) :: Bool -> Bool  =  LT+_ :: Int `compare` (not _ ||) :: Bool -> Bool  =  LT+_ :: Int `compare` (_ &&) :: Bool -> Bool  =  LT+_ :: Int `compare` (==>) :: Bool -> Bool -> Bool  =  LT+x :: Int `compare` x' :: Int  =  LT+x :: Int `compare` 2 :: Int  =  LT+x :: Int `compare` id z :: Int  =  LT+x :: Int `compare` id (-1) :: Int  =  LT+x :: Int `compare` id (id y) :: Int  =  LT+x :: Int `compare` id (id 1) :: Int  =  LT+x :: Int `compare` id (id (id x)) :: Int  =  LT+x :: Int `compare` id (id (id 0)) :: Int  =  LT+x :: Int `compare` id (id (id (id _))) :: Int  =  LT+x :: Int `compare` id (id (negate _)) :: Int  =  LT+x :: Int `compare` id (id (abs _)) :: Int  =  LT+x :: Int `compare` id (id (_ + _)) :: Int  =  LT+x :: Int `compare` id (id (head _)) :: Int  =  LT+x :: Int `compare` id (id (ord _)) :: Int  =  LT+x :: Int `compare` id (negate x) :: Int  =  LT+x :: Int `compare` id (negate 0) :: Int  =  LT+x :: Int `compare` id (negate (id _)) :: Int  =  LT+x :: Int `compare` id (abs x) :: Int  =  LT+x :: Int `compare` id (abs 0) :: Int  =  LT+x :: Int `compare` id (abs (id _)) :: Int  =  LT+x :: Int `compare` id (_ + x) :: Int  =  LT+x :: Int `compare` id (_ + 0) :: Int  =  LT+x :: Int `compare` id (_ + id _) :: Int  =  LT+x :: Int `compare` id (x + _) :: Int  =  LT+x :: Int `compare` id (0 + _) :: Int  =  LT+x :: Int `compare` id (id _ + _) :: Int  =  LT+x :: Int `compare` id (_ * _) :: Int  =  LT+x :: Int `compare` id (f _) :: Int  =  LT+x :: Int `compare` id (head xs) :: Int  =  LT+x :: Int `compare` id (head []) :: Int  =  LT+x :: Int `compare` id (head (_:_)) :: Int  =  LT+x :: Int `compare` id (ord c) :: Int  =  LT+x :: Int `compare` id (ord 'a') :: Int  =  LT+x :: Int `compare` negate y :: Int  =  LT+x :: Int `compare` negate 1 :: Int  =  LT+x :: Int `compare` negate (id x) :: Int  =  LT+x :: Int `compare` negate (id 0) :: Int  =  LT+x :: Int `compare` negate (id (id _)) :: Int  =  LT+x :: Int `compare` negate (negate _) :: Int  =  LT+x :: Int `compare` negate (abs _) :: Int  =  LT+x :: Int `compare` negate (_ + _) :: Int  =  LT+x :: Int `compare` negate (head _) :: Int  =  LT+x :: Int `compare` negate (ord _) :: Int  =  LT+x :: Int `compare` abs y :: Int  =  LT+x :: Int `compare` abs 1 :: Int  =  LT+x :: Int `compare` abs (id x) :: Int  =  LT+x :: Int `compare` abs (id 0) :: Int  =  LT+x :: Int `compare` abs (id (id _)) :: Int  =  LT+x :: Int `compare` abs (negate _) :: Int  =  LT+x :: Int `compare` abs (abs _) :: Int  =  LT+x :: Int `compare` abs (_ + _) :: Int  =  LT+x :: Int `compare` abs (head _) :: Int  =  LT+x :: Int `compare` abs (ord _) :: Int  =  LT+x :: Int `compare` _ + y :: Int  =  LT+x :: Int `compare` _ + 1 :: Int  =  LT+x :: Int `compare` _ + id x :: Int  =  LT+x :: Int `compare` _ + id 0 :: Int  =  LT+x :: Int `compare` _ + id (id _) :: Int  =  LT+x :: Int `compare` _ + negate _ :: Int  =  LT+x :: Int `compare` _ + abs _ :: Int  =  LT+x :: Int `compare` _ + (_ + _) :: Int  =  LT+x :: Int `compare` _ + head _ :: Int  =  LT+x :: Int `compare` _ + ord _ :: Int  =  LT+x :: Int `compare` x + x :: Int  =  LT+x :: Int `compare` x + 0 :: Int  =  LT+x :: Int `compare` x + id _ :: Int  =  LT+x :: Int `compare` 0 + x :: Int  =  LT+x :: Int `compare` 0 + 0 :: Int  =  LT+x :: Int `compare` 0 + id _ :: Int  =  LT+x :: Int `compare` id _ + x :: Int  =  LT+x :: Int `compare` id _ + 0 :: Int  =  LT+x :: Int `compare` id _ + id _ :: Int  =  LT+x :: Int `compare` _ * x :: Int  =  LT+x :: Int `compare` _ * 0 :: Int  =  LT+x :: Int `compare` _ * id _ :: Int  =  LT+x :: Int `compare` f x :: Int  =  LT+x :: Int `compare` f 0 :: Int  =  LT+x :: Int `compare` f (id _) :: Int  =  LT+x :: Int `compare` y + _ :: Int  =  LT+x :: Int `compare` 1 + _ :: Int  =  LT+x :: Int `compare` id x + _ :: Int  =  LT+x :: Int `compare` id 0 + _ :: Int  =  LT+x :: Int `compare` id (id _) + _ :: Int  =  LT+x :: Int `compare` negate _ + _ :: Int  =  LT+x :: Int `compare` abs _ + _ :: Int  =  LT+x :: Int `compare` (_ + _) + _ :: Int  =  LT+x :: Int `compare` head _ + _ :: Int  =  LT+x :: Int `compare` ord _ + _ :: Int  =  LT+x :: Int `compare` x * _ :: Int  =  LT+x :: Int `compare` 0 * _ :: Int  =  LT+x :: Int `compare` id _ * _ :: Int  =  LT+x :: Int `compare` g _ :: Int  =  LT+x :: Int `compare` head ys :: Int  =  LT+x :: Int `compare` head [0] :: Int  =  LT+x :: Int `compare` head (_:xs) :: Int  =  LT+x :: Int `compare` head [_] :: Int  =  LT+x :: Int `compare` head (_:_:_) :: Int  =  LT+x :: Int `compare` head (x:_) :: Int  =  LT+x :: Int `compare` head (0:_) :: Int  =  LT+x :: Int `compare` head (id _:_) :: Int  =  LT+x :: Int `compare` head (tail _) :: Int  =  LT+x :: Int `compare` head (_ ++ _) :: Int  =  LT+x :: Int `compare` ord d :: Int  =  LT+x :: Int `compare` ord ' ' :: Int  =  LT+x :: Int `compare` r :: Bool  =  GT+x :: Int `compare` not q :: Bool  =  LT+x :: Int `compare` not (not p) :: Bool  =  LT+x :: Int `compare` not (not False) :: Bool  =  LT+x :: Int `compare` not (not True) :: Bool  =  LT+x :: Int `compare` not (not (not _)) :: Bool  =  LT+x :: Int `compare` not (_ || _) :: Bool  =  LT+x :: Int `compare` _ || p :: Bool  =  LT+x :: Int `compare` _ || False :: Bool  =  LT+x :: Int `compare` _ || True :: Bool  =  LT+x :: Int `compare` _ || not _ :: Bool  =  LT+x :: Int `compare` p || _ :: Bool  =  LT+x :: Int `compare` False || _ :: Bool  =  LT+x :: Int `compare` True || _ :: Bool  =  LT+x :: Int `compare` not _ || _ :: Bool  =  LT+x :: Int `compare` _ && _ :: Bool  =  LT+x :: Int `compare` _ == _ :: Bool  =  LT+x :: Int `compare` _ == _ :: Bool  =  LT+x :: Int `compare` odd _ :: Bool  =  LT+x :: Int `compare` even _ :: Bool  =  LT+x :: Int `compare` elem _ _ :: Bool  =  LT+x :: Int `compare` e :: Char  =  GT+x :: Int `compare` 'b' :: Char  =  LT+x :: Int `compare` zs :: [Int]  =  LT+x :: Int `compare` [0,0] :: [Int]  =  LT+x :: Int `compare` [1] :: [Int]  =  LT+x :: Int `compare` _:ys :: [Int]  =  LT+x :: Int `compare` _:[0] :: [Int]  =  LT+x :: Int `compare` _:_:xs :: [Int]  =  LT+x :: Int `compare` [_,_] :: [Int]  =  LT+x :: Int `compare` _:_:_:_ :: [Int]  =  LT+x :: Int `compare` _:x:_ :: [Int]  =  LT+x :: Int `compare` _:0:_ :: [Int]  =  LT+x :: Int `compare` _:id _:_ :: [Int]  =  LT+x :: Int `compare` _:tail _ :: [Int]  =  LT+x :: Int `compare` _:(_ ++ _) :: [Int]  =  LT+x :: Int `compare` x:xs :: [Int]  =  LT+x :: Int `compare` [x] :: [Int]  =  LT+x :: Int `compare` x:_:_ :: [Int]  =  LT+x :: Int `compare` 0:xs :: [Int]  =  LT+x :: Int `compare` [0] :: [Int]  =  LT+x :: Int `compare` 0:_:_ :: [Int]  =  LT+x :: Int `compare` id _:xs :: [Int]  =  LT+x :: Int `compare` [id _] :: [Int]  =  LT+x :: Int `compare` id _:_:_ :: [Int]  =  LT+x :: Int `compare` y:_ :: [Int]  =  LT+x :: Int `compare` 1:_ :: [Int]  =  LT+x :: Int `compare` id x:_ :: [Int]  =  LT+x :: Int `compare` id 0:_ :: [Int]  =  LT+x :: Int `compare` id (id _):_ :: [Int]  =  LT+x :: Int `compare` negate _:_ :: [Int]  =  LT+x :: Int `compare` abs _:_ :: [Int]  =  LT+x :: Int `compare` _ + _:_ :: [Int]  =  LT+x :: Int `compare` head _:_ :: [Int]  =  LT+x :: Int `compare` ord _:_ :: [Int]  =  LT+x :: Int `compare` tail xs :: [Int]  =  LT+x :: Int `compare` tail [] :: [Int]  =  LT+x :: Int `compare` tail (_:_) :: [Int]  =  LT+x :: Int `compare` _ ++ xs :: [Int]  =  LT+x :: Int `compare` _ ++ [] :: [Int]  =  LT+x :: Int `compare` _ ++ (_:_) :: [Int]  =  LT+x :: Int `compare` xs ++ _ :: [Int]  =  LT+x :: Int `compare` [] ++ _ :: [Int]  =  LT+x :: Int `compare` (_:_) ++ _ :: [Int]  =  LT+x :: Int `compare` sort _ :: [Int]  =  LT+x :: Int `compare` insert _ _ :: [Int]  =  LT+x :: Int `compare` (x +) :: Int -> Int  =  LT+x :: Int `compare` (0 +) :: Int -> Int  =  LT+x :: Int `compare` (id _ +) :: Int -> Int  =  LT+x :: Int `compare` (_ *) :: Int -> Int  =  LT+x :: Int `compare` f :: Int -> Int  =  LT+x :: Int `compare` (_ ||) :: Bool -> Bool  =  LT+x :: Int `compare` (&&) :: Bool -> Bool -> Bool  =  LT+0 :: Int `compare` x' :: Int  =  GT+0 :: Int `compare` 2 :: Int  =  LT+0 :: Int `compare` id z :: Int  =  LT+0 :: Int `compare` id (-1) :: Int  =  LT+0 :: Int `compare` id (id y) :: Int  =  LT+0 :: Int `compare` id (id 1) :: Int  =  LT+0 :: Int `compare` id (id (id x)) :: Int  =  LT+0 :: Int `compare` id (id (id 0)) :: Int  =  LT+0 :: Int `compare` id (id (id (id _))) :: Int  =  LT+0 :: Int `compare` id (id (negate _)) :: Int  =  LT+0 :: Int `compare` id (id (abs _)) :: Int  =  LT+0 :: Int `compare` id (id (_ + _)) :: Int  =  LT+0 :: Int `compare` id (id (head _)) :: Int  =  LT+0 :: Int `compare` id (id (ord _)) :: Int  =  LT+0 :: Int `compare` id (negate x) :: Int  =  LT+0 :: Int `compare` id (negate 0) :: Int  =  LT+0 :: Int `compare` id (negate (id _)) :: Int  =  LT+0 :: Int `compare` id (abs x) :: Int  =  LT+0 :: Int `compare` id (abs 0) :: Int  =  LT+0 :: Int `compare` id (abs (id _)) :: Int  =  LT+0 :: Int `compare` id (_ + x) :: Int  =  LT+0 :: Int `compare` id (_ + 0) :: Int  =  LT+0 :: Int `compare` id (_ + id _) :: Int  =  LT+0 :: Int `compare` id (x + _) :: Int  =  LT+0 :: Int `compare` id (0 + _) :: Int  =  LT+0 :: Int `compare` id (id _ + _) :: Int  =  LT+0 :: Int `compare` id (_ * _) :: Int  =  LT+0 :: Int `compare` id (f _) :: Int  =  LT+0 :: Int `compare` id (head xs) :: Int  =  LT+0 :: Int `compare` id (head []) :: Int  =  LT+0 :: Int `compare` id (head (_:_)) :: Int  =  LT+0 :: Int `compare` id (ord c) :: Int  =  LT+0 :: Int `compare` id (ord 'a') :: Int  =  LT+0 :: Int `compare` negate y :: Int  =  LT+0 :: Int `compare` negate 1 :: Int  =  LT+0 :: Int `compare` negate (id x) :: Int  =  LT+0 :: Int `compare` negate (id 0) :: Int  =  LT+0 :: Int `compare` negate (id (id _)) :: Int  =  LT+0 :: Int `compare` negate (negate _) :: Int  =  LT+0 :: Int `compare` negate (abs _) :: Int  =  LT+0 :: Int `compare` negate (_ + _) :: Int  =  LT+0 :: Int `compare` negate (head _) :: Int  =  LT+0 :: Int `compare` negate (ord _) :: Int  =  LT+0 :: Int `compare` abs y :: Int  =  LT+0 :: Int `compare` abs 1 :: Int  =  LT+0 :: Int `compare` abs (id x) :: Int  =  LT+0 :: Int `compare` abs (id 0) :: Int  =  LT+0 :: Int `compare` abs (id (id _)) :: Int  =  LT+0 :: Int `compare` abs (negate _) :: Int  =  LT+0 :: Int `compare` abs (abs _) :: Int  =  LT+0 :: Int `compare` abs (_ + _) :: Int  =  LT+0 :: Int `compare` abs (head _) :: Int  =  LT+0 :: Int `compare` abs (ord _) :: Int  =  LT+0 :: Int `compare` _ + y :: Int  =  LT+0 :: Int `compare` _ + 1 :: Int  =  LT+0 :: Int `compare` _ + id x :: Int  =  LT+0 :: Int `compare` _ + id 0 :: Int  =  LT+0 :: Int `compare` _ + id (id _) :: Int  =  LT+0 :: Int `compare` _ + negate _ :: Int  =  LT+0 :: Int `compare` _ + abs _ :: Int  =  LT+0 :: Int `compare` _ + (_ + _) :: Int  =  LT+0 :: Int `compare` _ + head _ :: Int  =  LT+0 :: Int `compare` _ + ord _ :: Int  =  LT+0 :: Int `compare` x + x :: Int  =  LT+0 :: Int `compare` x + 0 :: Int  =  LT+0 :: Int `compare` x + id _ :: Int  =  LT+0 :: Int `compare` 0 + x :: Int  =  LT+0 :: Int `compare` 0 + 0 :: Int  =  LT+0 :: Int `compare` 0 + id _ :: Int  =  LT+0 :: Int `compare` id _ + x :: Int  =  LT+0 :: Int `compare` id _ + 0 :: Int  =  LT+0 :: Int `compare` id _ + id _ :: Int  =  LT+0 :: Int `compare` _ * x :: Int  =  LT+0 :: Int `compare` _ * 0 :: Int  =  LT+0 :: Int `compare` _ * id _ :: Int  =  LT+0 :: Int `compare` f x :: Int  =  LT+0 :: Int `compare` f 0 :: Int  =  LT+0 :: Int `compare` f (id _) :: Int  =  LT+0 :: Int `compare` y + _ :: Int  =  LT+0 :: Int `compare` 1 + _ :: Int  =  LT+0 :: Int `compare` id x + _ :: Int  =  LT+0 :: Int `compare` id 0 + _ :: Int  =  LT+0 :: Int `compare` id (id _) + _ :: Int  =  LT+0 :: Int `compare` negate _ + _ :: Int  =  LT+0 :: Int `compare` abs _ + _ :: Int  =  LT+0 :: Int `compare` (_ + _) + _ :: Int  =  LT+0 :: Int `compare` head _ + _ :: Int  =  LT+0 :: Int `compare` ord _ + _ :: Int  =  LT+0 :: Int `compare` x * _ :: Int  =  LT+0 :: Int `compare` 0 * _ :: Int  =  LT+0 :: Int `compare` id _ * _ :: Int  =  LT+0 :: Int `compare` g _ :: Int  =  LT+0 :: Int `compare` head ys :: Int  =  LT+0 :: Int `compare` head [0] :: Int  =  LT+0 :: Int `compare` head (_:xs) :: Int  =  LT+0 :: Int `compare` head [_] :: Int  =  LT+0 :: Int `compare` head (_:_:_) :: Int  =  LT+0 :: Int `compare` head (x:_) :: Int  =  LT+0 :: Int `compare` head (0:_) :: Int  =  LT+0 :: Int `compare` head (id _:_) :: Int  =  LT+0 :: Int `compare` head (tail _) :: Int  =  LT+0 :: Int `compare` head (_ ++ _) :: Int  =  LT+0 :: Int `compare` ord d :: Int  =  LT+0 :: Int `compare` ord ' ' :: Int  =  LT+0 :: Int `compare` r :: Bool  =  GT+0 :: Int `compare` not q :: Bool  =  LT+0 :: Int `compare` not (not p) :: Bool  =  LT+0 :: Int `compare` not (not False) :: Bool  =  LT+0 :: Int `compare` not (not True) :: Bool  =  LT+0 :: Int `compare` not (not (not _)) :: Bool  =  LT+0 :: Int `compare` not (_ || _) :: Bool  =  LT+0 :: Int `compare` _ || p :: Bool  =  LT+0 :: Int `compare` _ || False :: Bool  =  LT+0 :: Int `compare` _ || True :: Bool  =  LT+0 :: Int `compare` _ || not _ :: Bool  =  LT+0 :: Int `compare` p || _ :: Bool  =  LT+0 :: Int `compare` False || _ :: Bool  =  LT+0 :: Int `compare` True || _ :: Bool  =  LT+0 :: Int `compare` not _ || _ :: Bool  =  LT+0 :: Int `compare` _ && _ :: Bool  =  LT+0 :: Int `compare` _ == _ :: Bool  =  LT+0 :: Int `compare` _ == _ :: Bool  =  LT+0 :: Int `compare` odd _ :: Bool  =  LT+0 :: Int `compare` even _ :: Bool  =  LT+0 :: Int `compare` elem _ _ :: Bool  =  LT+0 :: Int `compare` e :: Char  =  GT+0 :: Int `compare` 'b' :: Char  =  GT+0 :: Int `compare` zs :: [Int]  =  GT+0 :: Int `compare` [0,0] :: [Int]  =  LT+0 :: Int `compare` [1] :: [Int]  =  LT+0 :: Int `compare` _:ys :: [Int]  =  LT+0 :: Int `compare` _:[0] :: [Int]  =  LT+0 :: Int `compare` _:_:xs :: [Int]  =  LT+0 :: Int `compare` [_,_] :: [Int]  =  LT+0 :: Int `compare` _:_:_:_ :: [Int]  =  LT+0 :: Int `compare` _:x:_ :: [Int]  =  LT+0 :: Int `compare` _:0:_ :: [Int]  =  LT+0 :: Int `compare` _:id _:_ :: [Int]  =  LT+0 :: Int `compare` _:tail _ :: [Int]  =  LT+0 :: Int `compare` _:(_ ++ _) :: [Int]  =  LT+0 :: Int `compare` x:xs :: [Int]  =  LT+0 :: Int `compare` [x] :: [Int]  =  LT+0 :: Int `compare` x:_:_ :: [Int]  =  LT+0 :: Int `compare` 0:xs :: [Int]  =  LT+0 :: Int `compare` [0] :: [Int]  =  LT+0 :: Int `compare` 0:_:_ :: [Int]  =  LT+0 :: Int `compare` id _:xs :: [Int]  =  LT+0 :: Int `compare` [id _] :: [Int]  =  LT+0 :: Int `compare` id _:_:_ :: [Int]  =  LT+0 :: Int `compare` y:_ :: [Int]  =  LT+0 :: Int `compare` 1:_ :: [Int]  =  LT+0 :: Int `compare` id x:_ :: [Int]  =  LT+0 :: Int `compare` id 0:_ :: [Int]  =  LT+0 :: Int `compare` id (id _):_ :: [Int]  =  LT+0 :: Int `compare` negate _:_ :: [Int]  =  LT+0 :: Int `compare` abs _:_ :: [Int]  =  LT+0 :: Int `compare` _ + _:_ :: [Int]  =  LT+0 :: Int `compare` head _:_ :: [Int]  =  LT+0 :: Int `compare` ord _:_ :: [Int]  =  LT+0 :: Int `compare` tail xs :: [Int]  =  LT+0 :: Int `compare` tail [] :: [Int]  =  LT+0 :: Int `compare` tail (_:_) :: [Int]  =  LT+0 :: Int `compare` _ ++ xs :: [Int]  =  LT+0 :: Int `compare` _ ++ [] :: [Int]  =  LT+0 :: Int `compare` _ ++ (_:_) :: [Int]  =  LT+0 :: Int `compare` xs ++ _ :: [Int]  =  LT+0 :: Int `compare` [] ++ _ :: [Int]  =  LT+0 :: Int `compare` (_:_) ++ _ :: [Int]  =  LT+0 :: Int `compare` sort _ :: [Int]  =  LT+0 :: Int `compare` insert _ _ :: [Int]  =  LT+0 :: Int `compare` (x +) :: Int -> Int  =  LT+0 :: Int `compare` (0 +) :: Int -> Int  =  LT+0 :: Int `compare` (id _ +) :: Int -> Int  =  LT+0 :: Int `compare` (_ *) :: Int -> Int  =  LT+0 :: Int `compare` f :: Int -> Int  =  GT+0 :: Int `compare` (_ ||) :: Bool -> Bool  =  LT+0 :: Int `compare` (&&) :: Bool -> Bool -> Bool  =  LT+id _ :: Int `compare` x' :: Int  =  GT+id _ :: Int `compare` 2 :: Int  =  GT+id _ :: Int `compare` id z :: Int  =  LT+id _ :: Int `compare` id (-1) :: Int  =  LT+id _ :: Int `compare` id (id y) :: Int  =  LT+id _ :: Int `compare` id (id 1) :: Int  =  LT+id _ :: Int `compare` id (id (id x)) :: Int  =  LT+id _ :: Int `compare` id (id (id 0)) :: Int  =  LT+id _ :: Int `compare` id (id (id (id _))) :: Int  =  LT+id _ :: Int `compare` id (id (negate _)) :: Int  =  LT+id _ :: Int `compare` id (id (abs _)) :: Int  =  LT+id _ :: Int `compare` id (id (_ + _)) :: Int  =  LT+id _ :: Int `compare` id (id (head _)) :: Int  =  LT+id _ :: Int `compare` id (id (ord _)) :: Int  =  LT+id _ :: Int `compare` id (negate x) :: Int  =  LT+id _ :: Int `compare` id (negate 0) :: Int  =  LT+id _ :: Int `compare` id (negate (id _)) :: Int  =  LT+id _ :: Int `compare` id (abs x) :: Int  =  LT+id _ :: Int `compare` id (abs 0) :: Int  =  LT+id _ :: Int `compare` id (abs (id _)) :: Int  =  LT+id _ :: Int `compare` id (_ + x) :: Int  =  LT+id _ :: Int `compare` id (_ + 0) :: Int  =  LT+id _ :: Int `compare` id (_ + id _) :: Int  =  LT+id _ :: Int `compare` id (x + _) :: Int  =  LT+id _ :: Int `compare` id (0 + _) :: Int  =  LT+id _ :: Int `compare` id (id _ + _) :: Int  =  LT+id _ :: Int `compare` id (_ * _) :: Int  =  LT+id _ :: Int `compare` id (f _) :: Int  =  LT+id _ :: Int `compare` id (head xs) :: Int  =  LT+id _ :: Int `compare` id (head []) :: Int  =  LT+id _ :: Int `compare` id (head (_:_)) :: Int  =  LT+id _ :: Int `compare` id (ord c) :: Int  =  LT+id _ :: Int `compare` id (ord 'a') :: Int  =  LT+id _ :: Int `compare` negate y :: Int  =  LT+id _ :: Int `compare` negate 1 :: Int  =  LT+id _ :: Int `compare` negate (id x) :: Int  =  LT+id _ :: Int `compare` negate (id 0) :: Int  =  LT+id _ :: Int `compare` negate (id (id _)) :: Int  =  LT+id _ :: Int `compare` negate (negate _) :: Int  =  LT+id _ :: Int `compare` negate (abs _) :: Int  =  LT+id _ :: Int `compare` negate (_ + _) :: Int  =  LT+id _ :: Int `compare` negate (head _) :: Int  =  LT+id _ :: Int `compare` negate (ord _) :: Int  =  LT+id _ :: Int `compare` abs y :: Int  =  LT+id _ :: Int `compare` abs 1 :: Int  =  LT+id _ :: Int `compare` abs (id x) :: Int  =  LT+id _ :: Int `compare` abs (id 0) :: Int  =  LT+id _ :: Int `compare` abs (id (id _)) :: Int  =  LT+id _ :: Int `compare` abs (negate _) :: Int  =  LT+id _ :: Int `compare` abs (abs _) :: Int  =  LT+id _ :: Int `compare` abs (_ + _) :: Int  =  LT+id _ :: Int `compare` abs (head _) :: Int  =  LT+id _ :: Int `compare` abs (ord _) :: Int  =  LT+id _ :: Int `compare` _ + y :: Int  =  LT+id _ :: Int `compare` _ + 1 :: Int  =  LT+id _ :: Int `compare` _ + id x :: Int  =  LT+id _ :: Int `compare` _ + id 0 :: Int  =  LT+id _ :: Int `compare` _ + id (id _) :: Int  =  LT+id _ :: Int `compare` _ + negate _ :: Int  =  LT+id _ :: Int `compare` _ + abs _ :: Int  =  LT+id _ :: Int `compare` _ + (_ + _) :: Int  =  LT+id _ :: Int `compare` _ + head _ :: Int  =  LT+id _ :: Int `compare` _ + ord _ :: Int  =  LT+id _ :: Int `compare` x + x :: Int  =  LT+id _ :: Int `compare` x + 0 :: Int  =  LT+id _ :: Int `compare` x + id _ :: Int  =  LT+id _ :: Int `compare` 0 + x :: Int  =  LT+id _ :: Int `compare` 0 + 0 :: Int  =  LT+id _ :: Int `compare` 0 + id _ :: Int  =  LT+id _ :: Int `compare` id _ + x :: Int  =  LT+id _ :: Int `compare` id _ + 0 :: Int  =  LT+id _ :: Int `compare` id _ + id _ :: Int  =  LT+id _ :: Int `compare` _ * x :: Int  =  LT+id _ :: Int `compare` _ * 0 :: Int  =  LT+id _ :: Int `compare` _ * id _ :: Int  =  LT+id _ :: Int `compare` f x :: Int  =  GT+id _ :: Int `compare` f 0 :: Int  =  GT+id _ :: Int `compare` f (id _) :: Int  =  LT+id _ :: Int `compare` y + _ :: Int  =  LT+id _ :: Int `compare` 1 + _ :: Int  =  LT+id _ :: Int `compare` id x + _ :: Int  =  LT+id _ :: Int `compare` id 0 + _ :: Int  =  LT+id _ :: Int `compare` id (id _) + _ :: Int  =  LT+id _ :: Int `compare` negate _ + _ :: Int  =  LT+id _ :: Int `compare` abs _ + _ :: Int  =  LT+id _ :: Int `compare` (_ + _) + _ :: Int  =  LT+id _ :: Int `compare` head _ + _ :: Int  =  LT+id _ :: Int `compare` ord _ + _ :: Int  =  LT+id _ :: Int `compare` x * _ :: Int  =  LT+id _ :: Int `compare` 0 * _ :: Int  =  LT+id _ :: Int `compare` id _ * _ :: Int  =  LT+id _ :: Int `compare` g _ :: Int  =  GT+id _ :: Int `compare` head ys :: Int  =  LT+id _ :: Int `compare` head [0] :: Int  =  LT+id _ :: Int `compare` head (_:xs) :: Int  =  LT+id _ :: Int `compare` head [_] :: Int  =  LT+id _ :: Int `compare` head (_:_:_) :: Int  =  LT+id _ :: Int `compare` head (x:_) :: Int  =  LT+id _ :: Int `compare` head (0:_) :: Int  =  LT+id _ :: Int `compare` head (id _:_) :: Int  =  LT+id _ :: Int `compare` head (tail _) :: Int  =  LT+id _ :: Int `compare` head (_ ++ _) :: Int  =  LT+id _ :: Int `compare` ord d :: Int  =  GT+id _ :: Int `compare` ord ' ' :: Int  =  LT+id _ :: Int `compare` r :: Bool  =  GT+id _ :: Int `compare` not q :: Bool  =  GT+id _ :: Int `compare` not (not p) :: Bool  =  LT+id _ :: Int `compare` not (not False) :: Bool  =  LT+id _ :: Int `compare` not (not True) :: Bool  =  LT+id _ :: Int `compare` not (not (not _)) :: Bool  =  LT+id _ :: Int `compare` not (_ || _) :: Bool  =  LT+id _ :: Int `compare` _ || p :: Bool  =  LT+id _ :: Int `compare` _ || False :: Bool  =  LT+id _ :: Int `compare` _ || True :: Bool  =  LT+id _ :: Int `compare` _ || not _ :: Bool  =  LT+id _ :: Int `compare` p || _ :: Bool  =  LT+id _ :: Int `compare` False || _ :: Bool  =  LT+id _ :: Int `compare` True || _ :: Bool  =  LT+id _ :: Int `compare` not _ || _ :: Bool  =  LT+id _ :: Int `compare` _ && _ :: Bool  =  LT+id _ :: Int `compare` _ == _ :: Bool  =  LT+id _ :: Int `compare` _ == _ :: Bool  =  LT+id _ :: Int `compare` odd _ :: Bool  =  GT+id _ :: Int `compare` even _ :: Bool  =  GT+id _ :: Int `compare` elem _ _ :: Bool  =  LT+id _ :: Int `compare` e :: Char  =  GT+id _ :: Int `compare` 'b' :: Char  =  GT+id _ :: Int `compare` zs :: [Int]  =  GT+id _ :: Int `compare` [0,0] :: [Int]  =  GT+id _ :: Int `compare` [1] :: [Int]  =  GT+id _ :: Int `compare` _:ys :: [Int]  =  LT+id _ :: Int `compare` _:[0] :: [Int]  =  LT+id _ :: Int `compare` _:_:xs :: [Int]  =  LT+id _ :: Int `compare` [_,_] :: [Int]  =  LT+id _ :: Int `compare` _:_:_:_ :: [Int]  =  LT+id _ :: Int `compare` _:x:_ :: [Int]  =  LT+id _ :: Int `compare` _:0:_ :: [Int]  =  LT+id _ :: Int `compare` _:id _:_ :: [Int]  =  LT+id _ :: Int `compare` _:tail _ :: [Int]  =  LT+id _ :: Int `compare` _:(_ ++ _) :: [Int]  =  LT+id _ :: Int `compare` x:xs :: [Int]  =  LT+id _ :: Int `compare` [x] :: [Int]  =  LT+id _ :: Int `compare` x:_:_ :: [Int]  =  LT+id _ :: Int `compare` 0:xs :: [Int]  =  LT+id _ :: Int `compare` [0] :: [Int]  =  LT+id _ :: Int `compare` 0:_:_ :: [Int]  =  LT+id _ :: Int `compare` id _:xs :: [Int]  =  LT+id _ :: Int `compare` [id _] :: [Int]  =  LT+id _ :: Int `compare` id _:_:_ :: [Int]  =  LT+id _ :: Int `compare` y:_ :: [Int]  =  LT+id _ :: Int `compare` 1:_ :: [Int]  =  LT+id _ :: Int `compare` id x:_ :: [Int]  =  LT+id _ :: Int `compare` id 0:_ :: [Int]  =  LT+id _ :: Int `compare` id (id _):_ :: [Int]  =  LT+id _ :: Int `compare` negate _:_ :: [Int]  =  LT+id _ :: Int `compare` abs _:_ :: [Int]  =  LT+id _ :: Int `compare` _ + _:_ :: [Int]  =  LT+id _ :: Int `compare` head _:_ :: [Int]  =  LT+id _ :: Int `compare` ord _:_ :: [Int]  =  LT+id _ :: Int `compare` tail xs :: [Int]  =  LT+id _ :: Int `compare` tail [] :: [Int]  =  LT+id _ :: Int `compare` tail (_:_) :: [Int]  =  LT+id _ :: Int `compare` _ ++ xs :: [Int]  =  LT+id _ :: Int `compare` _ ++ [] :: [Int]  =  LT+id _ :: Int `compare` _ ++ (_:_) :: [Int]  =  LT+id _ :: Int `compare` xs ++ _ :: [Int]  =  LT+id _ :: Int `compare` [] ++ _ :: [Int]  =  LT+id _ :: Int `compare` (_:_) ++ _ :: [Int]  =  LT+id _ :: Int `compare` sort _ :: [Int]  =  LT+id _ :: Int `compare` insert _ _ :: [Int]  =  LT+id _ :: Int `compare` (x +) :: Int -> Int  =  LT+id _ :: Int `compare` (0 +) :: Int -> Int  =  LT+id _ :: Int `compare` (id _ +) :: Int -> Int  =  LT+id _ :: Int `compare` (_ *) :: Int -> Int  =  LT+id _ :: Int `compare` f :: Int -> Int  =  GT+id _ :: Int `compare` (_ ||) :: Bool -> Bool  =  LT+id _ :: Int `compare` (&&) :: Bool -> Bool -> Bool  =  GT+_ :: Bool `compare` x' :: Int  =  LT+_ :: Bool `compare` 2 :: Int  =  LT+_ :: Bool `compare` id z :: Int  =  LT+_ :: Bool `compare` id (-1) :: Int  =  LT+_ :: Bool `compare` id (id y) :: Int  =  LT+_ :: Bool `compare` id (id 1) :: Int  =  LT+_ :: Bool `compare` id (id (id x)) :: Int  =  LT+_ :: Bool `compare` id (id (id 0)) :: Int  =  LT+_ :: Bool `compare` id (id (id (id _))) :: Int  =  LT+_ :: Bool `compare` id (id (negate _)) :: Int  =  LT+_ :: Bool `compare` id (id (abs _)) :: Int  =  LT+_ :: Bool `compare` id (id (_ + _)) :: Int  =  LT+_ :: Bool `compare` id (id (head _)) :: Int  =  LT+_ :: Bool `compare` id (id (ord _)) :: Int  =  LT+_ :: Bool `compare` id (negate x) :: Int  =  LT+_ :: Bool `compare` id (negate 0) :: Int  =  LT+_ :: Bool `compare` id (negate (id _)) :: Int  =  LT+_ :: Bool `compare` id (abs x) :: Int  =  LT+_ :: Bool `compare` id (abs 0) :: Int  =  LT+_ :: Bool `compare` id (abs (id _)) :: Int  =  LT+_ :: Bool `compare` id (_ + x) :: Int  =  LT+_ :: Bool `compare` id (_ + 0) :: Int  =  LT+_ :: Bool `compare` id (_ + id _) :: Int  =  LT+_ :: Bool `compare` id (x + _) :: Int  =  LT+_ :: Bool `compare` id (0 + _) :: Int  =  LT+_ :: Bool `compare` id (id _ + _) :: Int  =  LT+_ :: Bool `compare` id (_ * _) :: Int  =  LT+_ :: Bool `compare` id (f _) :: Int  =  LT+_ :: Bool `compare` id (head xs) :: Int  =  LT+_ :: Bool `compare` id (head []) :: Int  =  LT+_ :: Bool `compare` id (head (_:_)) :: Int  =  LT+_ :: Bool `compare` id (ord c) :: Int  =  LT+_ :: Bool `compare` id (ord 'a') :: Int  =  LT+_ :: Bool `compare` negate y :: Int  =  LT+_ :: Bool `compare` negate 1 :: Int  =  LT+_ :: Bool `compare` negate (id x) :: Int  =  LT+_ :: Bool `compare` negate (id 0) :: Int  =  LT+_ :: Bool `compare` negate (id (id _)) :: Int  =  LT+_ :: Bool `compare` negate (negate _) :: Int  =  LT+_ :: Bool `compare` negate (abs _) :: Int  =  LT+_ :: Bool `compare` negate (_ + _) :: Int  =  LT+_ :: Bool `compare` negate (head _) :: Int  =  LT+_ :: Bool `compare` negate (ord _) :: Int  =  LT+_ :: Bool `compare` abs y :: Int  =  LT+_ :: Bool `compare` abs 1 :: Int  =  LT+_ :: Bool `compare` abs (id x) :: Int  =  LT+_ :: Bool `compare` abs (id 0) :: Int  =  LT+_ :: Bool `compare` abs (id (id _)) :: Int  =  LT+_ :: Bool `compare` abs (negate _) :: Int  =  LT+_ :: Bool `compare` abs (abs _) :: Int  =  LT+_ :: Bool `compare` abs (_ + _) :: Int  =  LT+_ :: Bool `compare` abs (head _) :: Int  =  LT+_ :: Bool `compare` abs (ord _) :: Int  =  LT+_ :: Bool `compare` _ + y :: Int  =  LT+_ :: Bool `compare` _ + 1 :: Int  =  LT+_ :: Bool `compare` _ + id x :: Int  =  LT+_ :: Bool `compare` _ + id 0 :: Int  =  LT+_ :: Bool `compare` _ + id (id _) :: Int  =  LT+_ :: Bool `compare` _ + negate _ :: Int  =  LT+_ :: Bool `compare` _ + abs _ :: Int  =  LT+_ :: Bool `compare` _ + (_ + _) :: Int  =  LT+_ :: Bool `compare` _ + head _ :: Int  =  LT+_ :: Bool `compare` _ + ord _ :: Int  =  LT+_ :: Bool `compare` x + x :: Int  =  LT+_ :: Bool `compare` x + 0 :: Int  =  LT+_ :: Bool `compare` x + id _ :: Int  =  LT+_ :: Bool `compare` 0 + x :: Int  =  LT+_ :: Bool `compare` 0 + 0 :: Int  =  LT+_ :: Bool `compare` 0 + id _ :: Int  =  LT+_ :: Bool `compare` id _ + x :: Int  =  LT+_ :: Bool `compare` id _ + 0 :: Int  =  LT+_ :: Bool `compare` id _ + id _ :: Int  =  LT+_ :: Bool `compare` _ * x :: Int  =  LT+_ :: Bool `compare` _ * 0 :: Int  =  LT+_ :: Bool `compare` _ * id _ :: Int  =  LT+_ :: Bool `compare` f x :: Int  =  LT+_ :: Bool `compare` f 0 :: Int  =  LT+_ :: Bool `compare` f (id _) :: Int  =  LT+_ :: Bool `compare` y + _ :: Int  =  LT+_ :: Bool `compare` 1 + _ :: Int  =  LT+_ :: Bool `compare` id x + _ :: Int  =  LT+_ :: Bool `compare` id 0 + _ :: Int  =  LT+_ :: Bool `compare` id (id _) + _ :: Int  =  LT+_ :: Bool `compare` negate _ + _ :: Int  =  LT+_ :: Bool `compare` abs _ + _ :: Int  =  LT+_ :: Bool `compare` (_ + _) + _ :: Int  =  LT+_ :: Bool `compare` head _ + _ :: Int  =  LT+_ :: Bool `compare` ord _ + _ :: Int  =  LT+_ :: Bool `compare` x * _ :: Int  =  LT+_ :: Bool `compare` 0 * _ :: Int  =  LT+_ :: Bool `compare` id _ * _ :: Int  =  LT+_ :: Bool `compare` g _ :: Int  =  LT+_ :: Bool `compare` head ys :: Int  =  LT+_ :: Bool `compare` head [0] :: Int  =  LT+_ :: Bool `compare` head (_:xs) :: Int  =  LT+_ :: Bool `compare` head [_] :: Int  =  LT+_ :: Bool `compare` head (_:_:_) :: Int  =  LT+_ :: Bool `compare` head (x:_) :: Int  =  LT+_ :: Bool `compare` head (0:_) :: Int  =  LT+_ :: Bool `compare` head (id _:_) :: Int  =  LT+_ :: Bool `compare` head (tail _) :: Int  =  LT+_ :: Bool `compare` head (_ ++ _) :: Int  =  LT+_ :: Bool `compare` ord d :: Int  =  LT+_ :: Bool `compare` ord ' ' :: Int  =  LT+_ :: Bool `compare` r :: Bool  =  LT+_ :: Bool `compare` not q :: Bool  =  LT+_ :: Bool `compare` not (not p) :: Bool  =  LT+_ :: Bool `compare` not (not False) :: Bool  =  LT+_ :: Bool `compare` not (not True) :: Bool  =  LT+_ :: Bool `compare` not (not (not _)) :: Bool  =  LT+_ :: Bool `compare` not (_ || _) :: Bool  =  LT+_ :: Bool `compare` _ || p :: Bool  =  LT+_ :: Bool `compare` _ || False :: Bool  =  LT+_ :: Bool `compare` _ || True :: Bool  =  LT+_ :: Bool `compare` _ || not _ :: Bool  =  LT+_ :: Bool `compare` p || _ :: Bool  =  LT+_ :: Bool `compare` False || _ :: Bool  =  LT+_ :: Bool `compare` True || _ :: Bool  =  LT+_ :: Bool `compare` not _ || _ :: Bool  =  LT+_ :: Bool `compare` _ && _ :: Bool  =  LT+_ :: Bool `compare` _ == _ :: Bool  =  LT+_ :: Bool `compare` _ == _ :: Bool  =  LT+_ :: Bool `compare` odd _ :: Bool  =  LT+_ :: Bool `compare` even _ :: Bool  =  LT+_ :: Bool `compare` elem _ _ :: Bool  =  LT+_ :: Bool `compare` e :: Char  =  LT+_ :: Bool `compare` 'b' :: Char  =  LT+_ :: Bool `compare` zs :: [Int]  =  LT+_ :: Bool `compare` [0,0] :: [Int]  =  LT+_ :: Bool `compare` [1] :: [Int]  =  LT+_ :: Bool `compare` _:ys :: [Int]  =  LT+_ :: Bool `compare` _:[0] :: [Int]  =  LT+_ :: Bool `compare` _:_:xs :: [Int]  =  LT+_ :: Bool `compare` [_,_] :: [Int]  =  LT+_ :: Bool `compare` _:_:_:_ :: [Int]  =  LT+_ :: Bool `compare` _:x:_ :: [Int]  =  LT+_ :: Bool `compare` _:0:_ :: [Int]  =  LT+_ :: Bool `compare` _:id _:_ :: [Int]  =  LT+_ :: Bool `compare` _:tail _ :: [Int]  =  LT+_ :: Bool `compare` _:(_ ++ _) :: [Int]  =  LT+_ :: Bool `compare` x:xs :: [Int]  =  LT+_ :: Bool `compare` [x] :: [Int]  =  LT+_ :: Bool `compare` x:_:_ :: [Int]  =  LT+_ :: Bool `compare` 0:xs :: [Int]  =  LT+_ :: Bool `compare` [0] :: [Int]  =  LT+_ :: Bool `compare` 0:_:_ :: [Int]  =  LT+_ :: Bool `compare` id _:xs :: [Int]  =  LT+_ :: Bool `compare` [id _] :: [Int]  =  LT+_ :: Bool `compare` id _:_:_ :: [Int]  =  LT+_ :: Bool `compare` y:_ :: [Int]  =  LT+_ :: Bool `compare` 1:_ :: [Int]  =  LT+_ :: Bool `compare` id x:_ :: [Int]  =  LT+_ :: Bool `compare` id 0:_ :: [Int]  =  LT+_ :: Bool `compare` id (id _):_ :: [Int]  =  LT+_ :: Bool `compare` negate _:_ :: [Int]  =  LT+_ :: Bool `compare` abs _:_ :: [Int]  =  LT+_ :: Bool `compare` _ + _:_ :: [Int]  =  LT+_ :: Bool `compare` head _:_ :: [Int]  =  LT+_ :: Bool `compare` ord _:_ :: [Int]  =  LT+_ :: Bool `compare` tail xs :: [Int]  =  LT+_ :: Bool `compare` tail [] :: [Int]  =  LT+_ :: Bool `compare` tail (_:_) :: [Int]  =  LT+_ :: Bool `compare` _ ++ xs :: [Int]  =  LT+_ :: Bool `compare` _ ++ [] :: [Int]  =  LT+_ :: Bool `compare` _ ++ (_:_) :: [Int]  =  LT+_ :: Bool `compare` xs ++ _ :: [Int]  =  LT+_ :: Bool `compare` [] ++ _ :: [Int]  =  LT+_ :: Bool `compare` (_:_) ++ _ :: [Int]  =  LT+_ :: Bool `compare` sort _ :: [Int]  =  LT+_ :: Bool `compare` insert _ _ :: [Int]  =  LT+_ :: Bool `compare` (x +) :: Int -> Int  =  LT+_ :: Bool `compare` (0 +) :: Int -> Int  =  LT+_ :: Bool `compare` (id _ +) :: Int -> Int  =  LT+_ :: Bool `compare` (_ *) :: Int -> Int  =  LT+_ :: Bool `compare` f :: Int -> Int  =  LT+_ :: Bool `compare` (_ ||) :: Bool -> Bool  =  LT+_ :: Bool `compare` (&&) :: Bool -> Bool -> Bool  =  LT+_ :: Char `compare` x' :: Int  =  LT+_ :: Char `compare` 2 :: Int  =  LT+_ :: Char `compare` id z :: Int  =  LT+_ :: Char `compare` id (-1) :: Int  =  LT+_ :: Char `compare` id (id y) :: Int  =  LT+_ :: Char `compare` id (id 1) :: Int  =  LT+_ :: Char `compare` id (id (id x)) :: Int  =  LT+_ :: Char `compare` id (id (id 0)) :: Int  =  LT+_ :: Char `compare` id (id (id (id _))) :: Int  =  LT+_ :: Char `compare` id (id (negate _)) :: Int  =  LT+_ :: Char `compare` id (id (abs _)) :: Int  =  LT+_ :: Char `compare` id (id (_ + _)) :: Int  =  LT+_ :: Char `compare` id (id (head _)) :: Int  =  LT+_ :: Char `compare` id (id (ord _)) :: Int  =  LT+_ :: Char `compare` id (negate x) :: Int  =  LT+_ :: Char `compare` id (negate 0) :: Int  =  LT+_ :: Char `compare` id (negate (id _)) :: Int  =  LT+_ :: Char `compare` id (abs x) :: Int  =  LT+_ :: Char `compare` id (abs 0) :: Int  =  LT+_ :: Char `compare` id (abs (id _)) :: Int  =  LT+_ :: Char `compare` id (_ + x) :: Int  =  LT+_ :: Char `compare` id (_ + 0) :: Int  =  LT+_ :: Char `compare` id (_ + id _) :: Int  =  LT+_ :: Char `compare` id (x + _) :: Int  =  LT+_ :: Char `compare` id (0 + _) :: Int  =  LT+_ :: Char `compare` id (id _ + _) :: Int  =  LT+_ :: Char `compare` id (_ * _) :: Int  =  LT+_ :: Char `compare` id (f _) :: Int  =  LT+_ :: Char `compare` id (head xs) :: Int  =  LT+_ :: Char `compare` id (head []) :: Int  =  LT+_ :: Char `compare` id (head (_:_)) :: Int  =  LT+_ :: Char `compare` id (ord c) :: Int  =  LT+_ :: Char `compare` id (ord 'a') :: Int  =  LT+_ :: Char `compare` negate y :: Int  =  LT+_ :: Char `compare` negate 1 :: Int  =  LT+_ :: Char `compare` negate (id x) :: Int  =  LT+_ :: Char `compare` negate (id 0) :: Int  =  LT+_ :: Char `compare` negate (id (id _)) :: Int  =  LT+_ :: Char `compare` negate (negate _) :: Int  =  LT+_ :: Char `compare` negate (abs _) :: Int  =  LT+_ :: Char `compare` negate (_ + _) :: Int  =  LT+_ :: Char `compare` negate (head _) :: Int  =  LT+_ :: Char `compare` negate (ord _) :: Int  =  LT+_ :: Char `compare` abs y :: Int  =  LT+_ :: Char `compare` abs 1 :: Int  =  LT+_ :: Char `compare` abs (id x) :: Int  =  LT+_ :: Char `compare` abs (id 0) :: Int  =  LT+_ :: Char `compare` abs (id (id _)) :: Int  =  LT+_ :: Char `compare` abs (negate _) :: Int  =  LT+_ :: Char `compare` abs (abs _) :: Int  =  LT+_ :: Char `compare` abs (_ + _) :: Int  =  LT+_ :: Char `compare` abs (head _) :: Int  =  LT+_ :: Char `compare` abs (ord _) :: Int  =  LT+_ :: Char `compare` _ + y :: Int  =  LT+_ :: Char `compare` _ + 1 :: Int  =  LT+_ :: Char `compare` _ + id x :: Int  =  LT+_ :: Char `compare` _ + id 0 :: Int  =  LT+_ :: Char `compare` _ + id (id _) :: Int  =  LT+_ :: Char `compare` _ + negate _ :: Int  =  LT+_ :: Char `compare` _ + abs _ :: Int  =  LT+_ :: Char `compare` _ + (_ + _) :: Int  =  LT+_ :: Char `compare` _ + head _ :: Int  =  LT+_ :: Char `compare` _ + ord _ :: Int  =  LT+_ :: Char `compare` x + x :: Int  =  LT+_ :: Char `compare` x + 0 :: Int  =  LT+_ :: Char `compare` x + id _ :: Int  =  LT+_ :: Char `compare` 0 + x :: Int  =  LT+_ :: Char `compare` 0 + 0 :: Int  =  LT+_ :: Char `compare` 0 + id _ :: Int  =  LT+_ :: Char `compare` id _ + x :: Int  =  LT+_ :: Char `compare` id _ + 0 :: Int  =  LT+_ :: Char `compare` id _ + id _ :: Int  =  LT+_ :: Char `compare` _ * x :: Int  =  LT+_ :: Char `compare` _ * 0 :: Int  =  LT+_ :: Char `compare` _ * id _ :: Int  =  LT+_ :: Char `compare` f x :: Int  =  LT+_ :: Char `compare` f 0 :: Int  =  LT+_ :: Char `compare` f (id _) :: Int  =  LT+_ :: Char `compare` y + _ :: Int  =  LT+_ :: Char `compare` 1 + _ :: Int  =  LT+_ :: Char `compare` id x + _ :: Int  =  LT+_ :: Char `compare` id 0 + _ :: Int  =  LT+_ :: Char `compare` id (id _) + _ :: Int  =  LT+_ :: Char `compare` negate _ + _ :: Int  =  LT+_ :: Char `compare` abs _ + _ :: Int  =  LT+_ :: Char `compare` (_ + _) + _ :: Int  =  LT+_ :: Char `compare` head _ + _ :: Int  =  LT+_ :: Char `compare` ord _ + _ :: Int  =  LT+_ :: Char `compare` x * _ :: Int  =  LT+_ :: Char `compare` 0 * _ :: Int  =  LT+_ :: Char `compare` id _ * _ :: Int  =  LT+_ :: Char `compare` g _ :: Int  =  LT+_ :: Char `compare` head ys :: Int  =  LT+_ :: Char `compare` head [0] :: Int  =  LT+_ :: Char `compare` head (_:xs) :: Int  =  LT+_ :: Char `compare` head [_] :: Int  =  LT+_ :: Char `compare` head (_:_:_) :: Int  =  LT+_ :: Char `compare` head (x:_) :: Int  =  LT+_ :: Char `compare` head (0:_) :: Int  =  LT+_ :: Char `compare` head (id _:_) :: Int  =  LT+_ :: Char `compare` head (tail _) :: Int  =  LT+_ :: Char `compare` head (_ ++ _) :: Int  =  LT+_ :: Char `compare` ord d :: Int  =  LT+_ :: Char `compare` ord ' ' :: Int  =  LT+_ :: Char `compare` r :: Bool  =  GT+_ :: Char `compare` not q :: Bool  =  LT+_ :: Char `compare` not (not p) :: Bool  =  LT+_ :: Char `compare` not (not False) :: Bool  =  LT+_ :: Char `compare` not (not True) :: Bool  =  LT+_ :: Char `compare` not (not (not _)) :: Bool  =  LT+_ :: Char `compare` not (_ || _) :: Bool  =  LT+_ :: Char `compare` _ || p :: Bool  =  LT+_ :: Char `compare` _ || False :: Bool  =  LT+_ :: Char `compare` _ || True :: Bool  =  LT+_ :: Char `compare` _ || not _ :: Bool  =  LT+_ :: Char `compare` p || _ :: Bool  =  LT+_ :: Char `compare` False || _ :: Bool  =  LT+_ :: Char `compare` True || _ :: Bool  =  LT+_ :: Char `compare` not _ || _ :: Bool  =  LT+_ :: Char `compare` _ && _ :: Bool  =  LT+_ :: Char `compare` _ == _ :: Bool  =  LT+_ :: Char `compare` _ == _ :: Bool  =  LT+_ :: Char `compare` odd _ :: Bool  =  LT+_ :: Char `compare` even _ :: Bool  =  LT+_ :: Char `compare` elem _ _ :: Bool  =  LT+_ :: Char `compare` e :: Char  =  LT+_ :: Char `compare` 'b' :: Char  =  LT+_ :: Char `compare` zs :: [Int]  =  LT+_ :: Char `compare` [0,0] :: [Int]  =  LT+_ :: Char `compare` [1] :: [Int]  =  LT+_ :: Char `compare` _:ys :: [Int]  =  LT+_ :: Char `compare` _:[0] :: [Int]  =  LT+_ :: Char `compare` _:_:xs :: [Int]  =  LT+_ :: Char `compare` [_,_] :: [Int]  =  LT+_ :: Char `compare` _:_:_:_ :: [Int]  =  LT+_ :: Char `compare` _:x:_ :: [Int]  =  LT+_ :: Char `compare` _:0:_ :: [Int]  =  LT+_ :: Char `compare` _:id _:_ :: [Int]  =  LT+_ :: Char `compare` _:tail _ :: [Int]  =  LT+_ :: Char `compare` _:(_ ++ _) :: [Int]  =  LT+_ :: Char `compare` x:xs :: [Int]  =  LT+_ :: Char `compare` [x] :: [Int]  =  LT+_ :: Char `compare` x:_:_ :: [Int]  =  LT+_ :: Char `compare` 0:xs :: [Int]  =  LT+_ :: Char `compare` [0] :: [Int]  =  LT+_ :: Char `compare` 0:_:_ :: [Int]  =  LT+_ :: Char `compare` id _:xs :: [Int]  =  LT+_ :: Char `compare` [id _] :: [Int]  =  LT+_ :: Char `compare` id _:_:_ :: [Int]  =  LT+_ :: Char `compare` y:_ :: [Int]  =  LT+_ :: Char `compare` 1:_ :: [Int]  =  LT+_ :: Char `compare` id x:_ :: [Int]  =  LT+_ :: Char `compare` id 0:_ :: [Int]  =  LT+_ :: Char `compare` id (id _):_ :: [Int]  =  LT+_ :: Char `compare` negate _:_ :: [Int]  =  LT+_ :: Char `compare` abs _:_ :: [Int]  =  LT+_ :: Char `compare` _ + _:_ :: [Int]  =  LT+_ :: Char `compare` head _:_ :: [Int]  =  LT+_ :: Char `compare` ord _:_ :: [Int]  =  LT+_ :: Char `compare` tail xs :: [Int]  =  LT+_ :: Char `compare` tail [] :: [Int]  =  LT+_ :: Char `compare` tail (_:_) :: [Int]  =  LT+_ :: Char `compare` _ ++ xs :: [Int]  =  LT+_ :: Char `compare` _ ++ [] :: [Int]  =  LT+_ :: Char `compare` _ ++ (_:_) :: [Int]  =  LT+_ :: Char `compare` xs ++ _ :: [Int]  =  LT+_ :: Char `compare` [] ++ _ :: [Int]  =  LT+_ :: Char `compare` (_:_) ++ _ :: [Int]  =  LT+_ :: Char `compare` sort _ :: [Int]  =  LT+_ :: Char `compare` insert _ _ :: [Int]  =  LT+_ :: Char `compare` (x +) :: Int -> Int  =  LT+_ :: Char `compare` (0 +) :: Int -> Int  =  LT+_ :: Char `compare` (id _ +) :: Int -> Int  =  LT+_ :: Char `compare` (_ *) :: Int -> Int  =  LT+_ :: Char `compare` f :: Int -> Int  =  LT+_ :: Char `compare` (_ ||) :: Bool -> Bool  =  LT+_ :: Char `compare` (&&) :: Bool -> Bool -> Bool  =  LT+_ :: [Int] `compare` x' :: Int  =  GT+_ :: [Int] `compare` 2 :: Int  =  LT+_ :: [Int] `compare` id z :: Int  =  LT+_ :: [Int] `compare` id (-1) :: Int  =  LT+_ :: [Int] `compare` id (id y) :: Int  =  LT+_ :: [Int] `compare` id (id 1) :: Int  =  LT+_ :: [Int] `compare` id (id (id x)) :: Int  =  LT+_ :: [Int] `compare` id (id (id 0)) :: Int  =  LT+_ :: [Int] `compare` id (id (id (id _))) :: Int  =  LT+_ :: [Int] `compare` id (id (negate _)) :: Int  =  LT+_ :: [Int] `compare` id (id (abs _)) :: Int  =  LT+_ :: [Int] `compare` id (id (_ + _)) :: Int  =  LT+_ :: [Int] `compare` id (id (head _)) :: Int  =  LT+_ :: [Int] `compare` id (id (ord _)) :: Int  =  LT+_ :: [Int] `compare` id (negate x) :: Int  =  LT+_ :: [Int] `compare` id (negate 0) :: Int  =  LT+_ :: [Int] `compare` id (negate (id _)) :: Int  =  LT+_ :: [Int] `compare` id (abs x) :: Int  =  LT+_ :: [Int] `compare` id (abs 0) :: Int  =  LT+_ :: [Int] `compare` id (abs (id _)) :: Int  =  LT+_ :: [Int] `compare` id (_ + x) :: Int  =  LT+_ :: [Int] `compare` id (_ + 0) :: Int  =  LT+_ :: [Int] `compare` id (_ + id _) :: Int  =  LT+_ :: [Int] `compare` id (x + _) :: Int  =  LT+_ :: [Int] `compare` id (0 + _) :: Int  =  LT+_ :: [Int] `compare` id (id _ + _) :: Int  =  LT+_ :: [Int] `compare` id (_ * _) :: Int  =  LT+_ :: [Int] `compare` id (f _) :: Int  =  LT+_ :: [Int] `compare` id (head xs) :: Int  =  LT+_ :: [Int] `compare` id (head []) :: Int  =  LT+_ :: [Int] `compare` id (head (_:_)) :: Int  =  LT+_ :: [Int] `compare` id (ord c) :: Int  =  LT+_ :: [Int] `compare` id (ord 'a') :: Int  =  LT+_ :: [Int] `compare` negate y :: Int  =  LT+_ :: [Int] `compare` negate 1 :: Int  =  LT+_ :: [Int] `compare` negate (id x) :: Int  =  LT+_ :: [Int] `compare` negate (id 0) :: Int  =  LT+_ :: [Int] `compare` negate (id (id _)) :: Int  =  LT+_ :: [Int] `compare` negate (negate _) :: Int  =  LT+_ :: [Int] `compare` negate (abs _) :: Int  =  LT+_ :: [Int] `compare` negate (_ + _) :: Int  =  LT+_ :: [Int] `compare` negate (head _) :: Int  =  LT+_ :: [Int] `compare` negate (ord _) :: Int  =  LT+_ :: [Int] `compare` abs y :: Int  =  LT+_ :: [Int] `compare` abs 1 :: Int  =  LT+_ :: [Int] `compare` abs (id x) :: Int  =  LT+_ :: [Int] `compare` abs (id 0) :: Int  =  LT+_ :: [Int] `compare` abs (id (id _)) :: Int  =  LT+_ :: [Int] `compare` abs (negate _) :: Int  =  LT+_ :: [Int] `compare` abs (abs _) :: Int  =  LT+_ :: [Int] `compare` abs (_ + _) :: Int  =  LT+_ :: [Int] `compare` abs (head _) :: Int  =  LT+_ :: [Int] `compare` abs (ord _) :: Int  =  LT+_ :: [Int] `compare` _ + y :: Int  =  LT+_ :: [Int] `compare` _ + 1 :: Int  =  LT+_ :: [Int] `compare` _ + id x :: Int  =  LT+_ :: [Int] `compare` _ + id 0 :: Int  =  LT+_ :: [Int] `compare` _ + id (id _) :: Int  =  LT+_ :: [Int] `compare` _ + negate _ :: Int  =  LT+_ :: [Int] `compare` _ + abs _ :: Int  =  LT+_ :: [Int] `compare` _ + (_ + _) :: Int  =  LT+_ :: [Int] `compare` _ + head _ :: Int  =  LT+_ :: [Int] `compare` _ + ord _ :: Int  =  LT+_ :: [Int] `compare` x + x :: Int  =  LT+_ :: [Int] `compare` x + 0 :: Int  =  LT+_ :: [Int] `compare` x + id _ :: Int  =  LT+_ :: [Int] `compare` 0 + x :: Int  =  LT+_ :: [Int] `compare` 0 + 0 :: Int  =  LT+_ :: [Int] `compare` 0 + id _ :: Int  =  LT+_ :: [Int] `compare` id _ + x :: Int  =  LT+_ :: [Int] `compare` id _ + 0 :: Int  =  LT+_ :: [Int] `compare` id _ + id _ :: Int  =  LT+_ :: [Int] `compare` _ * x :: Int  =  LT+_ :: [Int] `compare` _ * 0 :: Int  =  LT+_ :: [Int] `compare` _ * id _ :: Int  =  LT+_ :: [Int] `compare` f x :: Int  =  LT+_ :: [Int] `compare` f 0 :: Int  =  LT+_ :: [Int] `compare` f (id _) :: Int  =  LT+_ :: [Int] `compare` y + _ :: Int  =  LT+_ :: [Int] `compare` 1 + _ :: Int  =  LT+_ :: [Int] `compare` id x + _ :: Int  =  LT+_ :: [Int] `compare` id 0 + _ :: Int  =  LT+_ :: [Int] `compare` id (id _) + _ :: Int  =  LT+_ :: [Int] `compare` negate _ + _ :: Int  =  LT+_ :: [Int] `compare` abs _ + _ :: Int  =  LT+_ :: [Int] `compare` (_ + _) + _ :: Int  =  LT+_ :: [Int] `compare` head _ + _ :: Int  =  LT+_ :: [Int] `compare` ord _ + _ :: Int  =  LT+_ :: [Int] `compare` x * _ :: Int  =  LT+_ :: [Int] `compare` 0 * _ :: Int  =  LT+_ :: [Int] `compare` id _ * _ :: Int  =  LT+_ :: [Int] `compare` g _ :: Int  =  LT+_ :: [Int] `compare` head ys :: Int  =  LT+_ :: [Int] `compare` head [0] :: Int  =  LT+_ :: [Int] `compare` head (_:xs) :: Int  =  LT+_ :: [Int] `compare` head [_] :: Int  =  LT+_ :: [Int] `compare` head (_:_:_) :: Int  =  LT+_ :: [Int] `compare` head (x:_) :: Int  =  LT+_ :: [Int] `compare` head (0:_) :: Int  =  LT+_ :: [Int] `compare` head (id _:_) :: Int  =  LT+_ :: [Int] `compare` head (tail _) :: Int  =  LT+_ :: [Int] `compare` head (_ ++ _) :: Int  =  LT+_ :: [Int] `compare` ord d :: Int  =  LT+_ :: [Int] `compare` ord ' ' :: Int  =  LT+_ :: [Int] `compare` r :: Bool  =  GT+_ :: [Int] `compare` not q :: Bool  =  LT+_ :: [Int] `compare` not (not p) :: Bool  =  LT+_ :: [Int] `compare` not (not False) :: Bool  =  LT+_ :: [Int] `compare` not (not True) :: Bool  =  LT+_ :: [Int] `compare` not (not (not _)) :: Bool  =  LT+_ :: [Int] `compare` not (_ || _) :: Bool  =  LT+_ :: [Int] `compare` _ || p :: Bool  =  LT+_ :: [Int] `compare` _ || False :: Bool  =  LT+_ :: [Int] `compare` _ || True :: Bool  =  LT+_ :: [Int] `compare` _ || not _ :: Bool  =  LT+_ :: [Int] `compare` p || _ :: Bool  =  LT+_ :: [Int] `compare` False || _ :: Bool  =  LT+_ :: [Int] `compare` True || _ :: Bool  =  LT+_ :: [Int] `compare` not _ || _ :: Bool  =  LT+_ :: [Int] `compare` _ && _ :: Bool  =  LT+_ :: [Int] `compare` _ == _ :: Bool  =  LT+_ :: [Int] `compare` _ == _ :: Bool  =  LT+_ :: [Int] `compare` odd _ :: Bool  =  LT+_ :: [Int] `compare` even _ :: Bool  =  LT+_ :: [Int] `compare` elem _ _ :: Bool  =  LT+_ :: [Int] `compare` e :: Char  =  GT+_ :: [Int] `compare` 'b' :: Char  =  LT+_ :: [Int] `compare` zs :: [Int]  =  LT+_ :: [Int] `compare` [0,0] :: [Int]  =  LT+_ :: [Int] `compare` [1] :: [Int]  =  LT+_ :: [Int] `compare` _:ys :: [Int]  =  LT+_ :: [Int] `compare` _:[0] :: [Int]  =  LT+_ :: [Int] `compare` _:_:xs :: [Int]  =  LT+_ :: [Int] `compare` [_,_] :: [Int]  =  LT+_ :: [Int] `compare` _:_:_:_ :: [Int]  =  LT+_ :: [Int] `compare` _:x:_ :: [Int]  =  LT+_ :: [Int] `compare` _:0:_ :: [Int]  =  LT+_ :: [Int] `compare` _:id _:_ :: [Int]  =  LT+_ :: [Int] `compare` _:tail _ :: [Int]  =  LT+_ :: [Int] `compare` _:(_ ++ _) :: [Int]  =  LT+_ :: [Int] `compare` x:xs :: [Int]  =  LT+_ :: [Int] `compare` [x] :: [Int]  =  LT+_ :: [Int] `compare` x:_:_ :: [Int]  =  LT+_ :: [Int] `compare` 0:xs :: [Int]  =  LT+_ :: [Int] `compare` [0] :: [Int]  =  LT+_ :: [Int] `compare` 0:_:_ :: [Int]  =  LT+_ :: [Int] `compare` id _:xs :: [Int]  =  LT+_ :: [Int] `compare` [id _] :: [Int]  =  LT+_ :: [Int] `compare` id _:_:_ :: [Int]  =  LT+_ :: [Int] `compare` y:_ :: [Int]  =  LT+_ :: [Int] `compare` 1:_ :: [Int]  =  LT+_ :: [Int] `compare` id x:_ :: [Int]  =  LT+_ :: [Int] `compare` id 0:_ :: [Int]  =  LT+_ :: [Int] `compare` id (id _):_ :: [Int]  =  LT+_ :: [Int] `compare` negate _:_ :: [Int]  =  LT+_ :: [Int] `compare` abs _:_ :: [Int]  =  LT+_ :: [Int] `compare` _ + _:_ :: [Int]  =  LT+_ :: [Int] `compare` head _:_ :: [Int]  =  LT+_ :: [Int] `compare` ord _:_ :: [Int]  =  LT+_ :: [Int] `compare` tail xs :: [Int]  =  LT+_ :: [Int] `compare` tail [] :: [Int]  =  LT+_ :: [Int] `compare` tail (_:_) :: [Int]  =  LT+_ :: [Int] `compare` _ ++ xs :: [Int]  =  LT+_ :: [Int] `compare` _ ++ [] :: [Int]  =  LT+_ :: [Int] `compare` _ ++ (_:_) :: [Int]  =  LT+_ :: [Int] `compare` xs ++ _ :: [Int]  =  LT+_ :: [Int] `compare` [] ++ _ :: [Int]  =  LT+_ :: [Int] `compare` (_:_) ++ _ :: [Int]  =  LT+_ :: [Int] `compare` sort _ :: [Int]  =  LT+_ :: [Int] `compare` insert _ _ :: [Int]  =  LT+_ :: [Int] `compare` (x +) :: Int -> Int  =  LT+_ :: [Int] `compare` (0 +) :: Int -> Int  =  LT+_ :: [Int] `compare` (id _ +) :: Int -> Int  =  LT+_ :: [Int] `compare` (_ *) :: Int -> Int  =  LT+_ :: [Int] `compare` f :: Int -> Int  =  LT+_ :: [Int] `compare` (_ ||) :: Bool -> Bool  =  LT+_ :: [Int] `compare` (&&) :: Bool -> Bool -> Bool  =  LT+y :: Int `compare` z :: Int  =  LT+y :: Int `compare` -1 :: Int  =  LT+y :: Int `compare` id y :: Int  =  LT+y :: Int `compare` id 1 :: Int  =  LT+y :: Int `compare` id (id x) :: Int  =  LT+y :: Int `compare` id (id 0) :: Int  =  LT+y :: Int `compare` id (id (id _)) :: Int  =  LT+y :: Int `compare` id (negate _) :: Int  =  LT+y :: Int `compare` id (abs _) :: Int  =  LT+y :: Int `compare` id (_ + _) :: Int  =  LT+y :: Int `compare` id (head _) :: Int  =  LT+y :: Int `compare` id (ord _) :: Int  =  LT+y :: Int `compare` negate x :: Int  =  LT+y :: Int `compare` negate 0 :: Int  =  LT+y :: Int `compare` negate (id _) :: Int  =  LT+y :: Int `compare` abs x :: Int  =  LT+y :: Int `compare` abs 0 :: Int  =  LT+y :: Int `compare` abs (id _) :: Int  =  LT+y :: Int `compare` _ + x :: Int  =  LT+y :: Int `compare` _ + 0 :: Int  =  LT+y :: Int `compare` _ + id _ :: Int  =  LT+y :: Int `compare` x + _ :: Int  =  LT+y :: Int `compare` 0 + _ :: Int  =  LT+y :: Int `compare` id _ + _ :: Int  =  LT+y :: Int `compare` _ * _ :: Int  =  LT+y :: Int `compare` f _ :: Int  =  LT+y :: Int `compare` head xs :: Int  =  LT+y :: Int `compare` head [] :: Int  =  LT+y :: Int `compare` head (_:_) :: Int  =  LT+y :: Int `compare` ord c :: Int  =  LT+y :: Int `compare` ord 'a' :: Int  =  LT+y :: Int `compare` q :: Bool  =  GT+y :: Int `compare` not p :: Bool  =  LT+y :: Int `compare` not False :: Bool  =  LT+y :: Int `compare` not True :: Bool  =  LT+y :: Int `compare` not (not _) :: Bool  =  LT+y :: Int `compare` _ || _ :: Bool  =  LT+y :: Int `compare` d :: Char  =  GT+y :: Int `compare` ' ' :: Char  =  LT+y :: Int `compare` ys :: [Int]  =  LT+y :: Int `compare` [0] :: [Int]  =  LT+y :: Int `compare` _:xs :: [Int]  =  LT+y :: Int `compare` [_] :: [Int]  =  LT+y :: Int `compare` _:_:_ :: [Int]  =  LT+y :: Int `compare` x:_ :: [Int]  =  LT+y :: Int `compare` 0:_ :: [Int]  =  LT+y :: Int `compare` id _:_ :: [Int]  =  LT+y :: Int `compare` tail _ :: [Int]  =  LT+y :: Int `compare` _ ++ _ :: [Int]  =  LT+y :: Int `compare` negate :: Int -> Int  =  LT+y :: Int `compare` abs :: Int -> Int  =  LT+y :: Int `compare` (_ +) :: Int -> Int  =  LT+y :: Int `compare` (*) :: Int -> Int -> Int  =  LT+y :: Int `compare` not :: Bool -> Bool  =  LT+y :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT+1 :: Int `compare` z :: Int  =  GT+1 :: Int `compare` -1 :: Int  =  LT+1 :: Int `compare` id y :: Int  =  LT+1 :: Int `compare` id 1 :: Int  =  LT+1 :: Int `compare` id (id x) :: Int  =  LT+1 :: Int `compare` id (id 0) :: Int  =  LT+1 :: Int `compare` id (id (id _)) :: Int  =  LT+1 :: Int `compare` id (negate _) :: Int  =  LT+1 :: Int `compare` id (abs _) :: Int  =  LT+1 :: Int `compare` id (_ + _) :: Int  =  LT+1 :: Int `compare` id (head _) :: Int  =  LT+1 :: Int `compare` id (ord _) :: Int  =  LT+1 :: Int `compare` negate x :: Int  =  LT+1 :: Int `compare` negate 0 :: Int  =  LT+1 :: Int `compare` negate (id _) :: Int  =  LT+1 :: Int `compare` abs x :: Int  =  LT+1 :: Int `compare` abs 0 :: Int  =  LT+1 :: Int `compare` abs (id _) :: Int  =  LT+1 :: Int `compare` _ + x :: Int  =  LT+1 :: Int `compare` _ + 0 :: Int  =  LT+1 :: Int `compare` _ + id _ :: Int  =  LT+1 :: Int `compare` x + _ :: Int  =  LT+1 :: Int `compare` 0 + _ :: Int  =  LT+1 :: Int `compare` id _ + _ :: Int  =  LT+1 :: Int `compare` _ * _ :: Int  =  LT+1 :: Int `compare` f _ :: Int  =  LT+1 :: Int `compare` head xs :: Int  =  LT+1 :: Int `compare` head [] :: Int  =  LT+1 :: Int `compare` head (_:_) :: Int  =  LT+1 :: Int `compare` ord c :: Int  =  LT+1 :: Int `compare` ord 'a' :: Int  =  LT+1 :: Int `compare` q :: Bool  =  GT+1 :: Int `compare` not p :: Bool  =  LT+1 :: Int `compare` not False :: Bool  =  LT+1 :: Int `compare` not True :: Bool  =  LT+1 :: Int `compare` not (not _) :: Bool  =  LT+1 :: Int `compare` _ || _ :: Bool  =  LT+1 :: Int `compare` d :: Char  =  GT+1 :: Int `compare` ' ' :: Char  =  GT+1 :: Int `compare` ys :: [Int]  =  GT+1 :: Int `compare` [0] :: [Int]  =  LT+1 :: Int `compare` _:xs :: [Int]  =  LT+1 :: Int `compare` [_] :: [Int]  =  LT+1 :: Int `compare` _:_:_ :: [Int]  =  LT+1 :: Int `compare` x:_ :: [Int]  =  LT+1 :: Int `compare` 0:_ :: [Int]  =  LT+1 :: Int `compare` id _:_ :: [Int]  =  LT+1 :: Int `compare` tail _ :: [Int]  =  LT+1 :: Int `compare` _ ++ _ :: [Int]  =  LT+1 :: Int `compare` negate :: Int -> Int  =  LT+1 :: Int `compare` abs :: Int -> Int  =  LT+1 :: Int `compare` (_ +) :: Int -> Int  =  LT+1 :: Int `compare` (*) :: Int -> Int -> Int  =  LT+1 :: Int `compare` not :: Bool -> Bool  =  LT+1 :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT+id x :: Int `compare` z :: Int  =  GT+id x :: Int `compare` -1 :: Int  =  GT+id x :: Int `compare` id y :: Int  =  LT+id x :: Int `compare` id 1 :: Int  =  LT+id x :: Int `compare` id (id x) :: Int  =  LT+id x :: Int `compare` id (id 0) :: Int  =  LT+id x :: Int `compare` id (id (id _)) :: Int  =  LT+id x :: Int `compare` id (negate _) :: Int  =  LT+id x :: Int `compare` id (abs _) :: Int  =  LT+id x :: Int `compare` id (_ + _) :: Int  =  LT+id x :: Int `compare` id (head _) :: Int  =  LT+id x :: Int `compare` id (ord _) :: Int  =  LT+id x :: Int `compare` negate x :: Int  =  LT+id x :: Int `compare` negate 0 :: Int  =  LT+id x :: Int `compare` negate (id _) :: Int  =  LT+id x :: Int `compare` abs x :: Int  =  LT+id x :: Int `compare` abs 0 :: Int  =  LT+id x :: Int `compare` abs (id _) :: Int  =  LT+id x :: Int `compare` _ + x :: Int  =  LT+id x :: Int `compare` _ + 0 :: Int  =  LT+id x :: Int `compare` _ + id _ :: Int  =  LT+id x :: Int `compare` x + _ :: Int  =  LT+id x :: Int `compare` 0 + _ :: Int  =  LT+id x :: Int `compare` id _ + _ :: Int  =  LT+id x :: Int `compare` _ * _ :: Int  =  LT+id x :: Int `compare` f _ :: Int  =  GT+id x :: Int `compare` head xs :: Int  =  LT+id x :: Int `compare` head [] :: Int  =  LT+id x :: Int `compare` head (_:_) :: Int  =  LT+id x :: Int `compare` ord c :: Int  =  GT+id x :: Int `compare` ord 'a' :: Int  =  LT+id x :: Int `compare` q :: Bool  =  GT+id x :: Int `compare` not p :: Bool  =  GT+id x :: Int `compare` not False :: Bool  =  LT+id x :: Int `compare` not True :: Bool  =  LT+id x :: Int `compare` not (not _) :: Bool  =  LT+id x :: Int `compare` _ || _ :: Bool  =  LT+id x :: Int `compare` d :: Char  =  GT+id x :: Int `compare` ' ' :: Char  =  GT+id x :: Int `compare` ys :: [Int]  =  GT+id x :: Int `compare` [0] :: [Int]  =  GT+id x :: Int `compare` _:xs :: [Int]  =  LT+id x :: Int `compare` [_] :: [Int]  =  LT+id x :: Int `compare` _:_:_ :: [Int]  =  LT+id x :: Int `compare` x:_ :: [Int]  =  LT+id x :: Int `compare` 0:_ :: [Int]  =  LT+id x :: Int `compare` id _:_ :: [Int]  =  LT+id x :: Int `compare` tail _ :: [Int]  =  LT+id x :: Int `compare` _ ++ _ :: [Int]  =  LT+id x :: Int `compare` negate :: Int -> Int  =  GT+id x :: Int `compare` abs :: Int -> Int  =  GT+id x :: Int `compare` (_ +) :: Int -> Int  =  LT+id x :: Int `compare` (*) :: Int -> Int -> Int  =  GT+id x :: Int `compare` not :: Bool -> Bool  =  GT+id x :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+id 0 :: Int `compare` z :: Int  =  GT+id 0 :: Int `compare` -1 :: Int  =  GT+id 0 :: Int `compare` id y :: Int  =  GT+id 0 :: Int `compare` id 1 :: Int  =  LT+id 0 :: Int `compare` id (id x) :: Int  =  LT+id 0 :: Int `compare` id (id 0) :: Int  =  LT+id 0 :: Int `compare` id (id (id _)) :: Int  =  LT+id 0 :: Int `compare` id (negate _) :: Int  =  LT+id 0 :: Int `compare` id (abs _) :: Int  =  LT+id 0 :: Int `compare` id (_ + _) :: Int  =  LT+id 0 :: Int `compare` id (head _) :: Int  =  LT+id 0 :: Int `compare` id (ord _) :: Int  =  LT+id 0 :: Int `compare` negate x :: Int  =  GT+id 0 :: Int `compare` negate 0 :: Int  =  LT+id 0 :: Int `compare` negate (id _) :: Int  =  LT+id 0 :: Int `compare` abs x :: Int  =  GT+id 0 :: Int `compare` abs 0 :: Int  =  LT+id 0 :: Int `compare` abs (id _) :: Int  =  LT+id 0 :: Int `compare` _ + x :: Int  =  LT+id 0 :: Int `compare` _ + 0 :: Int  =  LT+id 0 :: Int `compare` _ + id _ :: Int  =  LT+id 0 :: Int `compare` x + _ :: Int  =  LT+id 0 :: Int `compare` 0 + _ :: Int  =  LT+id 0 :: Int `compare` id _ + _ :: Int  =  LT+id 0 :: Int `compare` _ * _ :: Int  =  LT+id 0 :: Int `compare` f _ :: Int  =  GT+id 0 :: Int `compare` head xs :: Int  =  GT+id 0 :: Int `compare` head [] :: Int  =  LT+id 0 :: Int `compare` head (_:_) :: Int  =  LT+id 0 :: Int `compare` ord c :: Int  =  GT+id 0 :: Int `compare` ord 'a' :: Int  =  GT+id 0 :: Int `compare` q :: Bool  =  GT+id 0 :: Int `compare` not p :: Bool  =  GT+id 0 :: Int `compare` not False :: Bool  =  GT+id 0 :: Int `compare` not True :: Bool  =  GT+id 0 :: Int `compare` not (not _) :: Bool  =  LT+id 0 :: Int `compare` _ || _ :: Bool  =  LT+id 0 :: Int `compare` d :: Char  =  GT+id 0 :: Int `compare` ' ' :: Char  =  GT+id 0 :: Int `compare` ys :: [Int]  =  GT+id 0 :: Int `compare` [0] :: [Int]  =  GT+id 0 :: Int `compare` _:xs :: [Int]  =  LT+id 0 :: Int `compare` [_] :: [Int]  =  LT+id 0 :: Int `compare` _:_:_ :: [Int]  =  LT+id 0 :: Int `compare` x:_ :: [Int]  =  LT+id 0 :: Int `compare` 0:_ :: [Int]  =  LT+id 0 :: Int `compare` id _:_ :: [Int]  =  LT+id 0 :: Int `compare` tail _ :: [Int]  =  GT+id 0 :: Int `compare` _ ++ _ :: [Int]  =  LT+id 0 :: Int `compare` negate :: Int -> Int  =  GT+id 0 :: Int `compare` abs :: Int -> Int  =  GT+id 0 :: Int `compare` (_ +) :: Int -> Int  =  GT+id 0 :: Int `compare` (*) :: Int -> Int -> Int  =  GT+id 0 :: Int `compare` not :: Bool -> Bool  =  GT+id 0 :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+id (id _) :: Int `compare` z :: Int  =  GT+id (id _) :: Int `compare` -1 :: Int  =  GT+id (id _) :: Int `compare` id y :: Int  =  GT+id (id _) :: Int `compare` id 1 :: Int  =  GT+id (id _) :: Int `compare` id (id x) :: Int  =  LT+id (id _) :: Int `compare` id (id 0) :: Int  =  LT+id (id _) :: Int `compare` id (id (id _)) :: Int  =  LT+id (id _) :: Int `compare` id (negate _) :: Int  =  LT+id (id _) :: Int `compare` id (abs _) :: Int  =  LT+id (id _) :: Int `compare` id (_ + _) :: Int  =  LT+id (id _) :: Int `compare` id (head _) :: Int  =  LT+id (id _) :: Int `compare` id (ord _) :: Int  =  LT+id (id _) :: Int `compare` negate x :: Int  =  GT+id (id _) :: Int `compare` negate 0 :: Int  =  GT+id (id _) :: Int `compare` negate (id _) :: Int  =  LT+id (id _) :: Int `compare` abs x :: Int  =  GT+id (id _) :: Int `compare` abs 0 :: Int  =  GT+id (id _) :: Int `compare` abs (id _) :: Int  =  LT+id (id _) :: Int `compare` _ + x :: Int  =  GT+id (id _) :: Int `compare` _ + 0 :: Int  =  LT+id (id _) :: Int `compare` _ + id _ :: Int  =  LT+id (id _) :: Int `compare` x + _ :: Int  =  GT+id (id _) :: Int `compare` 0 + _ :: Int  =  LT+id (id _) :: Int `compare` id _ + _ :: Int  =  LT+id (id _) :: Int `compare` _ * _ :: Int  =  GT+id (id _) :: Int `compare` f _ :: Int  =  GT+id (id _) :: Int `compare` head xs :: Int  =  GT+id (id _) :: Int `compare` head [] :: Int  =  GT+id (id _) :: Int `compare` head (_:_) :: Int  =  LT+id (id _) :: Int `compare` ord c :: Int  =  GT+id (id _) :: Int `compare` ord 'a' :: Int  =  GT+id (id _) :: Int `compare` q :: Bool  =  GT+id (id _) :: Int `compare` not p :: Bool  =  GT+id (id _) :: Int `compare` not False :: Bool  =  GT+id (id _) :: Int `compare` not True :: Bool  =  GT+id (id _) :: Int `compare` not (not _) :: Bool  =  GT+id (id _) :: Int `compare` _ || _ :: Bool  =  GT+id (id _) :: Int `compare` d :: Char  =  GT+id (id _) :: Int `compare` ' ' :: Char  =  GT+id (id _) :: Int `compare` ys :: [Int]  =  GT+id (id _) :: Int `compare` [0] :: [Int]  =  GT+id (id _) :: Int `compare` _:xs :: [Int]  =  GT+id (id _) :: Int `compare` [_] :: [Int]  =  LT+id (id _) :: Int `compare` _:_:_ :: [Int]  =  LT+id (id _) :: Int `compare` x:_ :: [Int]  =  GT+id (id _) :: Int `compare` 0:_ :: [Int]  =  LT+id (id _) :: Int `compare` id _:_ :: [Int]  =  LT+id (id _) :: Int `compare` tail _ :: [Int]  =  GT+id (id _) :: Int `compare` _ ++ _ :: [Int]  =  GT+id (id _) :: Int `compare` negate :: Int -> Int  =  GT+id (id _) :: Int `compare` abs :: Int -> Int  =  GT+id (id _) :: Int `compare` (_ +) :: Int -> Int  =  GT+id (id _) :: Int `compare` (*) :: Int -> Int -> Int  =  GT+id (id _) :: Int `compare` not :: Bool -> Bool  =  GT+id (id _) :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+negate _ :: Int `compare` z :: Int  =  GT+negate _ :: Int `compare` -1 :: Int  =  GT+negate _ :: Int `compare` id y :: Int  =  GT+negate _ :: Int `compare` id 1 :: Int  =  LT+negate _ :: Int `compare` id (id x) :: Int  =  LT+negate _ :: Int `compare` id (id 0) :: Int  =  LT+negate _ :: Int `compare` id (id (id _)) :: Int  =  LT+negate _ :: Int `compare` id (negate _) :: Int  =  LT+negate _ :: Int `compare` id (abs _) :: Int  =  LT+negate _ :: Int `compare` id (_ + _) :: Int  =  LT+negate _ :: Int `compare` id (head _) :: Int  =  LT+negate _ :: Int `compare` id (ord _) :: Int  =  LT+negate _ :: Int `compare` negate x :: Int  =  LT+negate _ :: Int `compare` negate 0 :: Int  =  LT+negate _ :: Int `compare` negate (id _) :: Int  =  LT+negate _ :: Int `compare` abs x :: Int  =  GT+negate _ :: Int `compare` abs 0 :: Int  =  LT+negate _ :: Int `compare` abs (id _) :: Int  =  LT+negate _ :: Int `compare` _ + x :: Int  =  LT+negate _ :: Int `compare` _ + 0 :: Int  =  LT+negate _ :: Int `compare` _ + id _ :: Int  =  LT+negate _ :: Int `compare` x + _ :: Int  =  LT+negate _ :: Int `compare` 0 + _ :: Int  =  LT+negate _ :: Int `compare` id _ + _ :: Int  =  LT+negate _ :: Int `compare` _ * _ :: Int  =  LT+negate _ :: Int `compare` f _ :: Int  =  GT+negate _ :: Int `compare` head xs :: Int  =  LT+negate _ :: Int `compare` head [] :: Int  =  LT+negate _ :: Int `compare` head (_:_) :: Int  =  LT+negate _ :: Int `compare` ord c :: Int  =  GT+negate _ :: Int `compare` ord 'a' :: Int  =  LT+negate _ :: Int `compare` q :: Bool  =  GT+negate _ :: Int `compare` not p :: Bool  =  GT+negate _ :: Int `compare` not False :: Bool  =  LT+negate _ :: Int `compare` not True :: Bool  =  LT+negate _ :: Int `compare` not (not _) :: Bool  =  LT+negate _ :: Int `compare` _ || _ :: Bool  =  LT+negate _ :: Int `compare` d :: Char  =  GT+negate _ :: Int `compare` ' ' :: Char  =  GT+negate _ :: Int `compare` ys :: [Int]  =  GT+negate _ :: Int `compare` [0] :: [Int]  =  GT+negate _ :: Int `compare` _:xs :: [Int]  =  LT+negate _ :: Int `compare` [_] :: [Int]  =  LT+negate _ :: Int `compare` _:_:_ :: [Int]  =  LT+negate _ :: Int `compare` x:_ :: [Int]  =  LT+negate _ :: Int `compare` 0:_ :: [Int]  =  LT+negate _ :: Int `compare` id _:_ :: [Int]  =  LT+negate _ :: Int `compare` tail _ :: [Int]  =  LT+negate _ :: Int `compare` _ ++ _ :: [Int]  =  LT+negate _ :: Int `compare` negate :: Int -> Int  =  GT+negate _ :: Int `compare` abs :: Int -> Int  =  GT+negate _ :: Int `compare` (_ +) :: Int -> Int  =  LT+negate _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT+negate _ :: Int `compare` not :: Bool -> Bool  =  GT+negate _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+abs _ :: Int `compare` z :: Int  =  GT+abs _ :: Int `compare` -1 :: Int  =  GT+abs _ :: Int `compare` id y :: Int  =  GT+abs _ :: Int `compare` id 1 :: Int  =  LT+abs _ :: Int `compare` id (id x) :: Int  =  LT+abs _ :: Int `compare` id (id 0) :: Int  =  LT+abs _ :: Int `compare` id (id (id _)) :: Int  =  LT+abs _ :: Int `compare` id (negate _) :: Int  =  LT+abs _ :: Int `compare` id (abs _) :: Int  =  LT+abs _ :: Int `compare` id (_ + _) :: Int  =  LT+abs _ :: Int `compare` id (head _) :: Int  =  LT+abs _ :: Int `compare` id (ord _) :: Int  =  LT+abs _ :: Int `compare` negate x :: Int  =  LT+abs _ :: Int `compare` negate 0 :: Int  =  LT+abs _ :: Int `compare` negate (id _) :: Int  =  LT+abs _ :: Int `compare` abs x :: Int  =  LT+abs _ :: Int `compare` abs 0 :: Int  =  LT+abs _ :: Int `compare` abs (id _) :: Int  =  LT+abs _ :: Int `compare` _ + x :: Int  =  LT+abs _ :: Int `compare` _ + 0 :: Int  =  LT+abs _ :: Int `compare` _ + id _ :: Int  =  LT+abs _ :: Int `compare` x + _ :: Int  =  LT+abs _ :: Int `compare` 0 + _ :: Int  =  LT+abs _ :: Int `compare` id _ + _ :: Int  =  LT+abs _ :: Int `compare` _ * _ :: Int  =  LT+abs _ :: Int `compare` f _ :: Int  =  GT+abs _ :: Int `compare` head xs :: Int  =  LT+abs _ :: Int `compare` head [] :: Int  =  LT+abs _ :: Int `compare` head (_:_) :: Int  =  LT+abs _ :: Int `compare` ord c :: Int  =  GT+abs _ :: Int `compare` ord 'a' :: Int  =  LT+abs _ :: Int `compare` q :: Bool  =  GT+abs _ :: Int `compare` not p :: Bool  =  GT+abs _ :: Int `compare` not False :: Bool  =  LT+abs _ :: Int `compare` not True :: Bool  =  LT+abs _ :: Int `compare` not (not _) :: Bool  =  LT+abs _ :: Int `compare` _ || _ :: Bool  =  LT+abs _ :: Int `compare` d :: Char  =  GT+abs _ :: Int `compare` ' ' :: Char  =  GT+abs _ :: Int `compare` ys :: [Int]  =  GT+abs _ :: Int `compare` [0] :: [Int]  =  GT+abs _ :: Int `compare` _:xs :: [Int]  =  LT+abs _ :: Int `compare` [_] :: [Int]  =  LT+abs _ :: Int `compare` _:_:_ :: [Int]  =  LT+abs _ :: Int `compare` x:_ :: [Int]  =  LT+abs _ :: Int `compare` 0:_ :: [Int]  =  LT+abs _ :: Int `compare` id _:_ :: [Int]  =  LT+abs _ :: Int `compare` tail _ :: [Int]  =  LT+abs _ :: Int `compare` _ ++ _ :: [Int]  =  LT+abs _ :: Int `compare` negate :: Int -> Int  =  GT+abs _ :: Int `compare` abs :: Int -> Int  =  GT+abs _ :: Int `compare` (_ +) :: Int -> Int  =  LT+abs _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT+abs _ :: Int `compare` not :: Bool -> Bool  =  GT+abs _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+_ + _ :: Int `compare` z :: Int  =  GT+_ + _ :: Int `compare` -1 :: Int  =  GT+_ + _ :: Int `compare` id y :: Int  =  GT+_ + _ :: Int `compare` id 1 :: Int  =  GT+_ + _ :: Int `compare` id (id x) :: Int  =  LT+_ + _ :: Int `compare` id (id 0) :: Int  =  LT+_ + _ :: Int `compare` id (id (id _)) :: Int  =  LT+_ + _ :: Int `compare` id (negate _) :: Int  =  LT+_ + _ :: Int `compare` id (abs _) :: Int  =  LT+_ + _ :: Int `compare` id (_ + _) :: Int  =  LT+_ + _ :: Int `compare` id (head _) :: Int  =  LT+_ + _ :: Int `compare` id (ord _) :: Int  =  LT+_ + _ :: Int `compare` negate x :: Int  =  GT+_ + _ :: Int `compare` negate 0 :: Int  =  GT+_ + _ :: Int `compare` negate (id _) :: Int  =  LT+_ + _ :: Int `compare` abs x :: Int  =  GT+_ + _ :: Int `compare` abs 0 :: Int  =  GT+_ + _ :: Int `compare` abs (id _) :: Int  =  LT+_ + _ :: Int `compare` _ + x :: Int  =  GT+_ + _ :: Int `compare` _ + 0 :: Int  =  LT+_ + _ :: Int `compare` _ + id _ :: Int  =  LT+_ + _ :: Int `compare` x + _ :: Int  =  GT+_ + _ :: Int `compare` 0 + _ :: Int  =  LT+_ + _ :: Int `compare` id _ + _ :: Int  =  LT+_ + _ :: Int `compare` _ * _ :: Int  =  GT+_ + _ :: Int `compare` f _ :: Int  =  GT+_ + _ :: Int `compare` head xs :: Int  =  GT+_ + _ :: Int `compare` head [] :: Int  =  GT+_ + _ :: Int `compare` head (_:_) :: Int  =  LT+_ + _ :: Int `compare` ord c :: Int  =  GT+_ + _ :: Int `compare` ord 'a' :: Int  =  GT+_ + _ :: Int `compare` q :: Bool  =  GT+_ + _ :: Int `compare` not p :: Bool  =  GT+_ + _ :: Int `compare` not False :: Bool  =  GT+_ + _ :: Int `compare` not True :: Bool  =  GT+_ + _ :: Int `compare` not (not _) :: Bool  =  LT+_ + _ :: Int `compare` _ || _ :: Bool  =  GT+_ + _ :: Int `compare` d :: Char  =  GT+_ + _ :: Int `compare` ' ' :: Char  =  GT+_ + _ :: Int `compare` ys :: [Int]  =  GT+_ + _ :: Int `compare` [0] :: [Int]  =  GT+_ + _ :: Int `compare` _:xs :: [Int]  =  GT+_ + _ :: Int `compare` [_] :: [Int]  =  LT+_ + _ :: Int `compare` _:_:_ :: [Int]  =  LT+_ + _ :: Int `compare` x:_ :: [Int]  =  GT+_ + _ :: Int `compare` 0:_ :: [Int]  =  LT+_ + _ :: Int `compare` id _:_ :: [Int]  =  LT+_ + _ :: Int `compare` tail _ :: [Int]  =  GT+_ + _ :: Int `compare` _ ++ _ :: [Int]  =  LT+_ + _ :: Int `compare` negate :: Int -> Int  =  GT+_ + _ :: Int `compare` abs :: Int -> Int  =  GT+_ + _ :: Int `compare` (_ +) :: Int -> Int  =  GT+_ + _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT+_ + _ :: Int `compare` not :: Bool -> Bool  =  GT+_ + _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+head _ :: Int `compare` z :: Int  =  GT+head _ :: Int `compare` -1 :: Int  =  GT+head _ :: Int `compare` id y :: Int  =  GT+head _ :: Int `compare` id 1 :: Int  =  LT+head _ :: Int `compare` id (id x) :: Int  =  LT+head _ :: Int `compare` id (id 0) :: Int  =  LT+head _ :: Int `compare` id (id (id _)) :: Int  =  LT+head _ :: Int `compare` id (negate _) :: Int  =  LT+head _ :: Int `compare` id (abs _) :: Int  =  LT+head _ :: Int `compare` id (_ + _) :: Int  =  LT+head _ :: Int `compare` id (head _) :: Int  =  LT+head _ :: Int `compare` id (ord _) :: Int  =  LT+head _ :: Int `compare` negate x :: Int  =  GT+head _ :: Int `compare` negate 0 :: Int  =  LT+head _ :: Int `compare` negate (id _) :: Int  =  LT+head _ :: Int `compare` abs x :: Int  =  GT+head _ :: Int `compare` abs 0 :: Int  =  LT+head _ :: Int `compare` abs (id _) :: Int  =  LT+head _ :: Int `compare` _ + x :: Int  =  LT+head _ :: Int `compare` _ + 0 :: Int  =  LT+head _ :: Int `compare` _ + id _ :: Int  =  LT+head _ :: Int `compare` x + _ :: Int  =  LT+head _ :: Int `compare` 0 + _ :: Int  =  LT+head _ :: Int `compare` id _ + _ :: Int  =  LT+head _ :: Int `compare` _ * _ :: Int  =  LT+head _ :: Int `compare` f _ :: Int  =  GT+head _ :: Int `compare` head xs :: Int  =  LT+head _ :: Int `compare` head [] :: Int  =  LT+head _ :: Int `compare` head (_:_) :: Int  =  LT+head _ :: Int `compare` ord c :: Int  =  GT+head _ :: Int `compare` ord 'a' :: Int  =  LT+head _ :: Int `compare` q :: Bool  =  GT+head _ :: Int `compare` not p :: Bool  =  GT+head _ :: Int `compare` not False :: Bool  =  LT+head _ :: Int `compare` not True :: Bool  =  LT+head _ :: Int `compare` not (not _) :: Bool  =  LT+head _ :: Int `compare` _ || _ :: Bool  =  LT+head _ :: Int `compare` d :: Char  =  GT+head _ :: Int `compare` ' ' :: Char  =  GT+head _ :: Int `compare` ys :: [Int]  =  GT+head _ :: Int `compare` [0] :: [Int]  =  GT+head _ :: Int `compare` _:xs :: [Int]  =  LT+head _ :: Int `compare` [_] :: [Int]  =  LT+head _ :: Int `compare` _:_:_ :: [Int]  =  LT+head _ :: Int `compare` x:_ :: [Int]  =  LT+head _ :: Int `compare` 0:_ :: [Int]  =  LT+head _ :: Int `compare` id _:_ :: [Int]  =  LT+head _ :: Int `compare` tail _ :: [Int]  =  LT+head _ :: Int `compare` _ ++ _ :: [Int]  =  LT+head _ :: Int `compare` negate :: Int -> Int  =  GT+head _ :: Int `compare` abs :: Int -> Int  =  GT+head _ :: Int `compare` (_ +) :: Int -> Int  =  LT+head _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT+head _ :: Int `compare` not :: Bool -> Bool  =  GT+head _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+ord _ :: Int `compare` z :: Int  =  GT+ord _ :: Int `compare` -1 :: Int  =  GT+ord _ :: Int `compare` id y :: Int  =  LT+ord _ :: Int `compare` id 1 :: Int  =  LT+ord _ :: Int `compare` id (id x) :: Int  =  LT+ord _ :: Int `compare` id (id 0) :: Int  =  LT+ord _ :: Int `compare` id (id (id _)) :: Int  =  LT+ord _ :: Int `compare` id (negate _) :: Int  =  LT+ord _ :: Int `compare` id (abs _) :: Int  =  LT+ord _ :: Int `compare` id (_ + _) :: Int  =  LT+ord _ :: Int `compare` id (head _) :: Int  =  LT+ord _ :: Int `compare` id (ord _) :: Int  =  LT+ord _ :: Int `compare` negate x :: Int  =  LT+ord _ :: Int `compare` negate 0 :: Int  =  LT+ord _ :: Int `compare` negate (id _) :: Int  =  LT+ord _ :: Int `compare` abs x :: Int  =  LT+ord _ :: Int `compare` abs 0 :: Int  =  LT+ord _ :: Int `compare` abs (id _) :: Int  =  LT+ord _ :: Int `compare` _ + x :: Int  =  LT+ord _ :: Int `compare` _ + 0 :: Int  =  LT+ord _ :: Int `compare` _ + id _ :: Int  =  LT+ord _ :: Int `compare` x + _ :: Int  =  LT+ord _ :: Int `compare` 0 + _ :: Int  =  LT+ord _ :: Int `compare` id _ + _ :: Int  =  LT+ord _ :: Int `compare` _ * _ :: Int  =  LT+ord _ :: Int `compare` f _ :: Int  =  GT+ord _ :: Int `compare` head xs :: Int  =  LT+ord _ :: Int `compare` head [] :: Int  =  LT+ord _ :: Int `compare` head (_:_) :: Int  =  LT+ord _ :: Int `compare` ord c :: Int  =  LT+ord _ :: Int `compare` ord 'a' :: Int  =  LT+ord _ :: Int `compare` q :: Bool  =  GT+ord _ :: Int `compare` not p :: Bool  =  GT+ord _ :: Int `compare` not False :: Bool  =  LT+ord _ :: Int `compare` not True :: Bool  =  LT+ord _ :: Int `compare` not (not _) :: Bool  =  LT+ord _ :: Int `compare` _ || _ :: Bool  =  LT+ord _ :: Int `compare` d :: Char  =  GT+ord _ :: Int `compare` ' ' :: Char  =  GT+ord _ :: Int `compare` ys :: [Int]  =  GT+ord _ :: Int `compare` [0] :: [Int]  =  GT+ord _ :: Int `compare` _:xs :: [Int]  =  LT+ord _ :: Int `compare` [_] :: [Int]  =  LT+ord _ :: Int `compare` _:_:_ :: [Int]  =  LT+ord _ :: Int `compare` x:_ :: [Int]  =  LT+ord _ :: Int `compare` 0:_ :: [Int]  =  LT+ord _ :: Int `compare` id _:_ :: [Int]  =  LT+ord _ :: Int `compare` tail _ :: [Int]  =  LT+ord _ :: Int `compare` _ ++ _ :: [Int]  =  LT+ord _ :: Int `compare` negate :: Int -> Int  =  GT+ord _ :: Int `compare` abs :: Int -> Int  =  GT+ord _ :: Int `compare` (_ +) :: Int -> Int  =  LT+ord _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT+ord _ :: Int `compare` not :: Bool -> Bool  =  GT+ord _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+p :: Bool `compare` z :: Int  =  LT+p :: Bool `compare` -1 :: Int  =  LT+p :: Bool `compare` id y :: Int  =  LT+p :: Bool `compare` id 1 :: Int  =  LT+p :: Bool `compare` id (id x) :: Int  =  LT+p :: Bool `compare` id (id 0) :: Int  =  LT+p :: Bool `compare` id (id (id _)) :: Int  =  LT+p :: Bool `compare` id (negate _) :: Int  =  LT+p :: Bool `compare` id (abs _) :: Int  =  LT+p :: Bool `compare` id (_ + _) :: Int  =  LT+p :: Bool `compare` id (head _) :: Int  =  LT+p :: Bool `compare` id (ord _) :: Int  =  LT+p :: Bool `compare` negate x :: Int  =  LT+p :: Bool `compare` negate 0 :: Int  =  LT+p :: Bool `compare` negate (id _) :: Int  =  LT+p :: Bool `compare` abs x :: Int  =  LT+p :: Bool `compare` abs 0 :: Int  =  LT+p :: Bool `compare` abs (id _) :: Int  =  LT+p :: Bool `compare` _ + x :: Int  =  LT+p :: Bool `compare` _ + 0 :: Int  =  LT+p :: Bool `compare` _ + id _ :: Int  =  LT+p :: Bool `compare` x + _ :: Int  =  LT+p :: Bool `compare` 0 + _ :: Int  =  LT+p :: Bool `compare` id _ + _ :: Int  =  LT+p :: Bool `compare` _ * _ :: Int  =  LT+p :: Bool `compare` f _ :: Int  =  LT+p :: Bool `compare` head xs :: Int  =  LT+p :: Bool `compare` head [] :: Int  =  LT+p :: Bool `compare` head (_:_) :: Int  =  LT+p :: Bool `compare` ord c :: Int  =  LT+p :: Bool `compare` ord 'a' :: Int  =  LT+p :: Bool `compare` q :: Bool  =  LT+p :: Bool `compare` not p :: Bool  =  LT+p :: Bool `compare` not False :: Bool  =  LT+p :: Bool `compare` not True :: Bool  =  LT+p :: Bool `compare` not (not _) :: Bool  =  LT+p :: Bool `compare` _ || _ :: Bool  =  LT+p :: Bool `compare` d :: Char  =  LT+p :: Bool `compare` ' ' :: Char  =  LT+p :: Bool `compare` ys :: [Int]  =  LT+p :: Bool `compare` [0] :: [Int]  =  LT+p :: Bool `compare` _:xs :: [Int]  =  LT+p :: Bool `compare` [_] :: [Int]  =  LT+p :: Bool `compare` _:_:_ :: [Int]  =  LT+p :: Bool `compare` x:_ :: [Int]  =  LT+p :: Bool `compare` 0:_ :: [Int]  =  LT+p :: Bool `compare` id _:_ :: [Int]  =  LT+p :: Bool `compare` tail _ :: [Int]  =  LT+p :: Bool `compare` _ ++ _ :: [Int]  =  LT+p :: Bool `compare` negate :: Int -> Int  =  LT+p :: Bool `compare` abs :: Int -> Int  =  LT+p :: Bool `compare` (_ +) :: Int -> Int  =  LT+p :: Bool `compare` (*) :: Int -> Int -> Int  =  LT+p :: Bool `compare` not :: Bool -> Bool  =  LT+p :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  LT+False :: Bool `compare` z :: Int  =  GT+False :: Bool `compare` -1 :: Int  =  LT+False :: Bool `compare` id y :: Int  =  LT+False :: Bool `compare` id 1 :: Int  =  LT+False :: Bool `compare` id (id x) :: Int  =  LT+False :: Bool `compare` id (id 0) :: Int  =  LT+False :: Bool `compare` id (id (id _)) :: Int  =  LT+False :: Bool `compare` id (negate _) :: Int  =  LT+False :: Bool `compare` id (abs _) :: Int  =  LT+False :: Bool `compare` id (_ + _) :: Int  =  LT+False :: Bool `compare` id (head _) :: Int  =  LT+False :: Bool `compare` id (ord _) :: Int  =  LT+False :: Bool `compare` negate x :: Int  =  LT+False :: Bool `compare` negate 0 :: Int  =  LT+False :: Bool `compare` negate (id _) :: Int  =  LT+False :: Bool `compare` abs x :: Int  =  LT+False :: Bool `compare` abs 0 :: Int  =  LT+False :: Bool `compare` abs (id _) :: Int  =  LT+False :: Bool `compare` _ + x :: Int  =  LT+False :: Bool `compare` _ + 0 :: Int  =  LT+False :: Bool `compare` _ + id _ :: Int  =  LT+False :: Bool `compare` x + _ :: Int  =  LT+False :: Bool `compare` 0 + _ :: Int  =  LT+False :: Bool `compare` id _ + _ :: Int  =  LT+False :: Bool `compare` _ * _ :: Int  =  LT+False :: Bool `compare` f _ :: Int  =  LT+False :: Bool `compare` head xs :: Int  =  LT+False :: Bool `compare` head [] :: Int  =  LT+False :: Bool `compare` head (_:_) :: Int  =  LT+False :: Bool `compare` ord c :: Int  =  LT+False :: Bool `compare` ord 'a' :: Int  =  LT+False :: Bool `compare` q :: Bool  =  GT+False :: Bool `compare` not p :: Bool  =  LT+False :: Bool `compare` not False :: Bool  =  LT+False :: Bool `compare` not True :: Bool  =  LT+False :: Bool `compare` not (not _) :: Bool  =  LT+False :: Bool `compare` _ || _ :: Bool  =  LT+False :: Bool `compare` d :: Char  =  GT+False :: Bool `compare` ' ' :: Char  =  LT+False :: Bool `compare` ys :: [Int]  =  GT+False :: Bool `compare` [0] :: [Int]  =  LT+False :: Bool `compare` _:xs :: [Int]  =  LT+False :: Bool `compare` [_] :: [Int]  =  LT+False :: Bool `compare` _:_:_ :: [Int]  =  LT+False :: Bool `compare` x:_ :: [Int]  =  LT+False :: Bool `compare` 0:_ :: [Int]  =  LT+False :: Bool `compare` id _:_ :: [Int]  =  LT+False :: Bool `compare` tail _ :: [Int]  =  LT+False :: Bool `compare` _ ++ _ :: [Int]  =  LT+False :: Bool `compare` negate :: Int -> Int  =  LT+False :: Bool `compare` abs :: Int -> Int  =  LT+False :: Bool `compare` (_ +) :: Int -> Int  =  LT+False :: Bool `compare` (*) :: Int -> Int -> Int  =  LT+False :: Bool `compare` not :: Bool -> Bool  =  LT+False :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  LT+True :: Bool `compare` z :: Int  =  GT+True :: Bool `compare` -1 :: Int  =  LT+True :: Bool `compare` id y :: Int  =  LT+True :: Bool `compare` id 1 :: Int  =  LT+True :: Bool `compare` id (id x) :: Int  =  LT+True :: Bool `compare` id (id 0) :: Int  =  LT+True :: Bool `compare` id (id (id _)) :: Int  =  LT+True :: Bool `compare` id (negate _) :: Int  =  LT+True :: Bool `compare` id (abs _) :: Int  =  LT+True :: Bool `compare` id (_ + _) :: Int  =  LT+True :: Bool `compare` id (head _) :: Int  =  LT+True :: Bool `compare` id (ord _) :: Int  =  LT+True :: Bool `compare` negate x :: Int  =  LT+True :: Bool `compare` negate 0 :: Int  =  LT+True :: Bool `compare` negate (id _) :: Int  =  LT+True :: Bool `compare` abs x :: Int  =  LT+True :: Bool `compare` abs 0 :: Int  =  LT+True :: Bool `compare` abs (id _) :: Int  =  LT+True :: Bool `compare` _ + x :: Int  =  LT+True :: Bool `compare` _ + 0 :: Int  =  LT+True :: Bool `compare` _ + id _ :: Int  =  LT+True :: Bool `compare` x + _ :: Int  =  LT+True :: Bool `compare` 0 + _ :: Int  =  LT+True :: Bool `compare` id _ + _ :: Int  =  LT+True :: Bool `compare` _ * _ :: Int  =  LT+True :: Bool `compare` f _ :: Int  =  LT+True :: Bool `compare` head xs :: Int  =  LT+True :: Bool `compare` head [] :: Int  =  LT+True :: Bool `compare` head (_:_) :: Int  =  LT+True :: Bool `compare` ord c :: Int  =  LT+True :: Bool `compare` ord 'a' :: Int  =  LT+True :: Bool `compare` q :: Bool  =  GT+True :: Bool `compare` not p :: Bool  =  LT+True :: Bool `compare` not False :: Bool  =  LT+True :: Bool `compare` not True :: Bool  =  LT+True :: Bool `compare` not (not _) :: Bool  =  LT+True :: Bool `compare` _ || _ :: Bool  =  LT+True :: Bool `compare` d :: Char  =  GT+True :: Bool `compare` ' ' :: Char  =  LT+True :: Bool `compare` ys :: [Int]  =  GT+True :: Bool `compare` [0] :: [Int]  =  LT+True :: Bool `compare` _:xs :: [Int]  =  LT+True :: Bool `compare` [_] :: [Int]  =  LT+True :: Bool `compare` _:_:_ :: [Int]  =  LT+True :: Bool `compare` x:_ :: [Int]  =  LT+True :: Bool `compare` 0:_ :: [Int]  =  LT+True :: Bool `compare` id _:_ :: [Int]  =  LT+True :: Bool `compare` tail _ :: [Int]  =  LT+True :: Bool `compare` _ ++ _ :: [Int]  =  LT+True :: Bool `compare` negate :: Int -> Int  =  LT+True :: Bool `compare` abs :: Int -> Int  =  LT+True :: Bool `compare` (_ +) :: Int -> Int  =  LT+True :: Bool `compare` (*) :: Int -> Int -> Int  =  LT+True :: Bool `compare` not :: Bool -> Bool  =  LT+True :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  LT+not _ :: Bool `compare` z :: Int  =  GT+not _ :: Bool `compare` -1 :: Int  =  GT+not _ :: Bool `compare` id y :: Int  =  LT+not _ :: Bool `compare` id 1 :: Int  =  LT+not _ :: Bool `compare` id (id x) :: Int  =  LT+not _ :: Bool `compare` id (id 0) :: Int  =  LT+not _ :: Bool `compare` id (id (id _)) :: Int  =  LT+not _ :: Bool `compare` id (negate _) :: Int  =  LT+not _ :: Bool `compare` id (abs _) :: Int  =  LT+not _ :: Bool `compare` id (_ + _) :: Int  =  LT+not _ :: Bool `compare` id (head _) :: Int  =  LT+not _ :: Bool `compare` id (ord _) :: Int  =  LT+not _ :: Bool `compare` negate x :: Int  =  LT+not _ :: Bool `compare` negate 0 :: Int  =  LT+not _ :: Bool `compare` negate (id _) :: Int  =  LT+not _ :: Bool `compare` abs x :: Int  =  LT+not _ :: Bool `compare` abs 0 :: Int  =  LT+not _ :: Bool `compare` abs (id _) :: Int  =  LT+not _ :: Bool `compare` _ + x :: Int  =  LT+not _ :: Bool `compare` _ + 0 :: Int  =  LT+not _ :: Bool `compare` _ + id _ :: Int  =  LT+not _ :: Bool `compare` x + _ :: Int  =  LT+not _ :: Bool `compare` 0 + _ :: Int  =  LT+not _ :: Bool `compare` id _ + _ :: Int  =  LT+not _ :: Bool `compare` _ * _ :: Int  =  LT+not _ :: Bool `compare` f _ :: Int  =  GT+not _ :: Bool `compare` head xs :: Int  =  LT+not _ :: Bool `compare` head [] :: Int  =  LT+not _ :: Bool `compare` head (_:_) :: Int  =  LT+not _ :: Bool `compare` ord c :: Int  =  LT+not _ :: Bool `compare` ord 'a' :: Int  =  LT+not _ :: Bool `compare` q :: Bool  =  GT+not _ :: Bool `compare` not p :: Bool  =  LT+not _ :: Bool `compare` not False :: Bool  =  LT+not _ :: Bool `compare` not True :: Bool  =  LT+not _ :: Bool `compare` not (not _) :: Bool  =  LT+not _ :: Bool `compare` _ || _ :: Bool  =  LT+not _ :: Bool `compare` d :: Char  =  GT+not _ :: Bool `compare` ' ' :: Char  =  GT+not _ :: Bool `compare` ys :: [Int]  =  GT+not _ :: Bool `compare` [0] :: [Int]  =  GT+not _ :: Bool `compare` _:xs :: [Int]  =  LT+not _ :: Bool `compare` [_] :: [Int]  =  LT+not _ :: Bool `compare` _:_:_ :: [Int]  =  LT+not _ :: Bool `compare` x:_ :: [Int]  =  LT+not _ :: Bool `compare` 0:_ :: [Int]  =  LT+not _ :: Bool `compare` id _:_ :: [Int]  =  LT+not _ :: Bool `compare` tail _ :: [Int]  =  LT+not _ :: Bool `compare` _ ++ _ :: [Int]  =  LT+not _ :: Bool `compare` negate :: Int -> Int  =  GT+not _ :: Bool `compare` abs :: Int -> Int  =  GT+not _ :: Bool `compare` (_ +) :: Int -> Int  =  LT+not _ :: Bool `compare` (*) :: Int -> Int -> Int  =  GT+not _ :: Bool `compare` not :: Bool -> Bool  =  GT+not _ :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  GT+c :: Char `compare` z :: Int  =  LT+c :: Char `compare` -1 :: Int  =  LT+c :: Char `compare` id y :: Int  =  LT+c :: Char `compare` id 1 :: Int  =  LT+c :: Char `compare` id (id x) :: Int  =  LT+c :: Char `compare` id (id 0) :: Int  =  LT+c :: Char `compare` id (id (id _)) :: Int  =  LT+c :: Char `compare` id (negate _) :: Int  =  LT+c :: Char `compare` id (abs _) :: Int  =  LT+c :: Char `compare` id (_ + _) :: Int  =  LT+c :: Char `compare` id (head _) :: Int  =  LT+c :: Char `compare` id (ord _) :: Int  =  LT+c :: Char `compare` negate x :: Int  =  LT+c :: Char `compare` negate 0 :: Int  =  LT+c :: Char `compare` negate (id _) :: Int  =  LT+c :: Char `compare` abs x :: Int  =  LT+c :: Char `compare` abs 0 :: Int  =  LT+c :: Char `compare` abs (id _) :: Int  =  LT+c :: Char `compare` _ + x :: Int  =  LT+c :: Char `compare` _ + 0 :: Int  =  LT+c :: Char `compare` _ + id _ :: Int  =  LT+c :: Char `compare` x + _ :: Int  =  LT+c :: Char `compare` 0 + _ :: Int  =  LT+c :: Char `compare` id _ + _ :: Int  =  LT+c :: Char `compare` _ * _ :: Int  =  LT+c :: Char `compare` f _ :: Int  =  LT+c :: Char `compare` head xs :: Int  =  LT+c :: Char `compare` head [] :: Int  =  LT+c :: Char `compare` head (_:_) :: Int  =  LT+c :: Char `compare` ord c :: Int  =  LT+c :: Char `compare` ord 'a' :: Int  =  LT+c :: Char `compare` q :: Bool  =  GT+c :: Char `compare` not p :: Bool  =  LT+c :: Char `compare` not False :: Bool  =  LT+c :: Char `compare` not True :: Bool  =  LT+c :: Char `compare` not (not _) :: Bool  =  LT+c :: Char `compare` _ || _ :: Bool  =  LT+c :: Char `compare` d :: Char  =  LT+c :: Char `compare` ' ' :: Char  =  LT+c :: Char `compare` ys :: [Int]  =  LT+c :: Char `compare` [0] :: [Int]  =  LT+c :: Char `compare` _:xs :: [Int]  =  LT+c :: Char `compare` [_] :: [Int]  =  LT+c :: Char `compare` _:_:_ :: [Int]  =  LT+c :: Char `compare` x:_ :: [Int]  =  LT+c :: Char `compare` 0:_ :: [Int]  =  LT+c :: Char `compare` id _:_ :: [Int]  =  LT+c :: Char `compare` tail _ :: [Int]  =  LT+c :: Char `compare` _ ++ _ :: [Int]  =  LT+c :: Char `compare` negate :: Int -> Int  =  LT+c :: Char `compare` abs :: Int -> Int  =  LT+c :: Char `compare` (_ +) :: Int -> Int  =  LT+c :: Char `compare` (*) :: Int -> Int -> Int  =  LT+c :: Char `compare` not :: Bool -> Bool  =  LT+c :: Char `compare` (||) :: Bool -> Bool -> Bool  =  LT+'a' :: Char `compare` z :: Int  =  GT+'a' :: Char `compare` -1 :: Int  =  LT+'a' :: Char `compare` id y :: Int  =  LT+'a' :: Char `compare` id 1 :: Int  =  LT+'a' :: Char `compare` id (id x) :: Int  =  LT+'a' :: Char `compare` id (id 0) :: Int  =  LT+'a' :: Char `compare` id (id (id _)) :: Int  =  LT+'a' :: Char `compare` id (negate _) :: Int  =  LT+'a' :: Char `compare` id (abs _) :: Int  =  LT+'a' :: Char `compare` id (_ + _) :: Int  =  LT+'a' :: Char `compare` id (head _) :: Int  =  LT+'a' :: Char `compare` id (ord _) :: Int  =  LT+'a' :: Char `compare` negate x :: Int  =  LT+'a' :: Char `compare` negate 0 :: Int  =  LT+'a' :: Char `compare` negate (id _) :: Int  =  LT+'a' :: Char `compare` abs x :: Int  =  LT+'a' :: Char `compare` abs 0 :: Int  =  LT+'a' :: Char `compare` abs (id _) :: Int  =  LT+'a' :: Char `compare` _ + x :: Int  =  LT+'a' :: Char `compare` _ + 0 :: Int  =  LT+'a' :: Char `compare` _ + id _ :: Int  =  LT+'a' :: Char `compare` x + _ :: Int  =  LT+'a' :: Char `compare` 0 + _ :: Int  =  LT+'a' :: Char `compare` id _ + _ :: Int  =  LT+'a' :: Char `compare` _ * _ :: Int  =  LT+'a' :: Char `compare` f _ :: Int  =  LT+'a' :: Char `compare` head xs :: Int  =  LT+'a' :: Char `compare` head [] :: Int  =  LT+'a' :: Char `compare` head (_:_) :: Int  =  LT+'a' :: Char `compare` ord c :: Int  =  LT+'a' :: Char `compare` ord 'a' :: Int  =  LT+'a' :: Char `compare` q :: Bool  =  GT+'a' :: Char `compare` not p :: Bool  =  LT+'a' :: Char `compare` not False :: Bool  =  LT+'a' :: Char `compare` not True :: Bool  =  LT+'a' :: Char `compare` not (not _) :: Bool  =  LT+'a' :: Char `compare` _ || _ :: Bool  =  LT+'a' :: Char `compare` d :: Char  =  GT+'a' :: Char `compare` ' ' :: Char  =  GT+'a' :: Char `compare` ys :: [Int]  =  GT+'a' :: Char `compare` [0] :: [Int]  =  LT+'a' :: Char `compare` _:xs :: [Int]  =  LT+'a' :: Char `compare` [_] :: [Int]  =  LT+'a' :: Char `compare` _:_:_ :: [Int]  =  LT+'a' :: Char `compare` x:_ :: [Int]  =  LT+'a' :: Char `compare` 0:_ :: [Int]  =  LT+'a' :: Char `compare` id _:_ :: [Int]  =  LT+'a' :: Char `compare` tail _ :: [Int]  =  LT+'a' :: Char `compare` _ ++ _ :: [Int]  =  LT+'a' :: Char `compare` negate :: Int -> Int  =  LT+'a' :: Char `compare` abs :: Int -> Int  =  LT+'a' :: Char `compare` (_ +) :: Int -> Int  =  LT+'a' :: Char `compare` (*) :: Int -> Int -> Int  =  LT+'a' :: Char `compare` not :: Bool -> Bool  =  LT+'a' :: Char `compare` (||) :: Bool -> Bool -> Bool  =  LT+xs :: [Int] `compare` z :: Int  =  GT+xs :: [Int] `compare` -1 :: Int  =  LT+xs :: [Int] `compare` id y :: Int  =  LT+xs :: [Int] `compare` id 1 :: Int  =  LT+xs :: [Int] `compare` id (id x) :: Int  =  LT+xs :: [Int] `compare` id (id 0) :: Int  =  LT+xs :: [Int] `compare` id (id (id _)) :: Int  =  LT+xs :: [Int] `compare` id (negate _) :: Int  =  LT+xs :: [Int] `compare` id (abs _) :: Int  =  LT+xs :: [Int] `compare` id (_ + _) :: Int  =  LT+xs :: [Int] `compare` id (head _) :: Int  =  LT+xs :: [Int] `compare` id (ord _) :: Int  =  LT+xs :: [Int] `compare` negate x :: Int  =  LT+xs :: [Int] `compare` negate 0 :: Int  =  LT+xs :: [Int] `compare` negate (id _) :: Int  =  LT+xs :: [Int] `compare` abs x :: Int  =  LT+xs :: [Int] `compare` abs 0 :: Int  =  LT+xs :: [Int] `compare` abs (id _) :: Int  =  LT+xs :: [Int] `compare` _ + x :: Int  =  LT+xs :: [Int] `compare` _ + 0 :: Int  =  LT+xs :: [Int] `compare` _ + id _ :: Int  =  LT+xs :: [Int] `compare` x + _ :: Int  =  LT+xs :: [Int] `compare` 0 + _ :: Int  =  LT+xs :: [Int] `compare` id _ + _ :: Int  =  LT+xs :: [Int] `compare` _ * _ :: Int  =  LT+xs :: [Int] `compare` f _ :: Int  =  LT+xs :: [Int] `compare` head xs :: Int  =  LT+xs :: [Int] `compare` head [] :: Int  =  LT+xs :: [Int] `compare` head (_:_) :: Int  =  LT+xs :: [Int] `compare` ord c :: Int  =  LT+xs :: [Int] `compare` ord 'a' :: Int  =  LT+xs :: [Int] `compare` q :: Bool  =  GT+xs :: [Int] `compare` not p :: Bool  =  LT+xs :: [Int] `compare` not False :: Bool  =  LT+xs :: [Int] `compare` not True :: Bool  =  LT+xs :: [Int] `compare` not (not _) :: Bool  =  LT+xs :: [Int] `compare` _ || _ :: Bool  =  LT+xs :: [Int] `compare` d :: Char  =  GT+xs :: [Int] `compare` ' ' :: Char  =  LT+xs :: [Int] `compare` ys :: [Int]  =  LT+xs :: [Int] `compare` [0] :: [Int]  =  LT+xs :: [Int] `compare` _:xs :: [Int]  =  LT+xs :: [Int] `compare` [_] :: [Int]  =  LT+xs :: [Int] `compare` _:_:_ :: [Int]  =  LT+xs :: [Int] `compare` x:_ :: [Int]  =  LT+xs :: [Int] `compare` 0:_ :: [Int]  =  LT+xs :: [Int] `compare` id _:_ :: [Int]  =  LT+xs :: [Int] `compare` tail _ :: [Int]  =  LT+xs :: [Int] `compare` _ ++ _ :: [Int]  =  LT+xs :: [Int] `compare` negate :: Int -> Int  =  LT+xs :: [Int] `compare` abs :: Int -> Int  =  LT+xs :: [Int] `compare` (_ +) :: Int -> Int  =  LT+xs :: [Int] `compare` (*) :: Int -> Int -> Int  =  LT+xs :: [Int] `compare` not :: Bool -> Bool  =  LT+xs :: [Int] `compare` (||) :: Bool -> Bool -> Bool  =  LT+[] :: [Int] `compare` z :: Int  =  GT+[] :: [Int] `compare` -1 :: Int  =  GT+[] :: [Int] `compare` id y :: Int  =  LT+[] :: [Int] `compare` id 1 :: Int  =  LT+[] :: [Int] `compare` id (id x) :: Int  =  LT+[] :: [Int] `compare` id (id 0) :: Int  =  LT+[] :: [Int] `compare` id (id (id _)) :: Int  =  LT+[] :: [Int] `compare` id (negate _) :: Int  =  LT+[] :: [Int] `compare` id (abs _) :: Int  =  LT+[] :: [Int] `compare` id (_ + _) :: Int  =  LT+[] :: [Int] `compare` id (head _) :: Int  =  LT+[] :: [Int] `compare` id (ord _) :: Int  =  LT+[] :: [Int] `compare` negate x :: Int  =  LT+[] :: [Int] `compare` negate 0 :: Int  =  LT+[] :: [Int] `compare` negate (id _) :: Int  =  LT+[] :: [Int] `compare` abs x :: Int  =  LT+[] :: [Int] `compare` abs 0 :: Int  =  LT+[] :: [Int] `compare` abs (id _) :: Int  =  LT+[] :: [Int] `compare` _ + x :: Int  =  LT+[] :: [Int] `compare` _ + 0 :: Int  =  LT+[] :: [Int] `compare` _ + id _ :: Int  =  LT+[] :: [Int] `compare` x + _ :: Int  =  LT+[] :: [Int] `compare` 0 + _ :: Int  =  LT+[] :: [Int] `compare` id _ + _ :: Int  =  LT+[] :: [Int] `compare` _ * _ :: Int  =  LT+[] :: [Int] `compare` f _ :: Int  =  LT+[] :: [Int] `compare` head xs :: Int  =  LT+[] :: [Int] `compare` head [] :: Int  =  LT+[] :: [Int] `compare` head (_:_) :: Int  =  LT+[] :: [Int] `compare` ord c :: Int  =  LT+[] :: [Int] `compare` ord 'a' :: Int  =  LT+[] :: [Int] `compare` q :: Bool  =  GT+[] :: [Int] `compare` not p :: Bool  =  LT+[] :: [Int] `compare` not False :: Bool  =  LT+[] :: [Int] `compare` not True :: Bool  =  LT+[] :: [Int] `compare` not (not _) :: Bool  =  LT+[] :: [Int] `compare` _ || _ :: Bool  =  LT+[] :: [Int] `compare` d :: Char  =  GT+[] :: [Int] `compare` ' ' :: Char  =  GT+[] :: [Int] `compare` ys :: [Int]  =  GT+[] :: [Int] `compare` [0] :: [Int]  =  LT+[] :: [Int] `compare` _:xs :: [Int]  =  LT+[] :: [Int] `compare` [_] :: [Int]  =  LT+[] :: [Int] `compare` _:_:_ :: [Int]  =  LT+[] :: [Int] `compare` x:_ :: [Int]  =  LT+[] :: [Int] `compare` 0:_ :: [Int]  =  LT+[] :: [Int] `compare` id _:_ :: [Int]  =  LT+[] :: [Int] `compare` tail _ :: [Int]  =  LT+[] :: [Int] `compare` _ ++ _ :: [Int]  =  LT+[] :: [Int] `compare` negate :: Int -> Int  =  LT+[] :: [Int] `compare` abs :: Int -> Int  =  LT+[] :: [Int] `compare` (_ +) :: Int -> Int  =  LT+[] :: [Int] `compare` (*) :: Int -> Int -> Int  =  LT+[] :: [Int] `compare` not :: Bool -> Bool  =  LT+[] :: [Int] `compare` (||) :: Bool -> Bool -> Bool  =  LT+_:_ :: [Int] `compare` z :: Int  =  GT+_:_ :: [Int] `compare` -1 :: Int  =  GT+_:_ :: [Int] `compare` id y :: Int  =  GT+_:_ :: [Int] `compare` id 1 :: Int  =  GT+_:_ :: [Int] `compare` id (id x) :: Int  =  LT+_:_ :: [Int] `compare` id (id 0) :: Int  =  LT+_:_ :: [Int] `compare` id (id (id _)) :: Int  =  LT+_:_ :: [Int] `compare` id (negate _) :: Int  =  LT+_:_ :: [Int] `compare` id (abs _) :: Int  =  LT+_:_ :: [Int] `compare` id (_ + _) :: Int  =  LT+_:_ :: [Int] `compare` id (head _) :: Int  =  LT+_:_ :: [Int] `compare` id (ord _) :: Int  =  LT+_:_ :: [Int] `compare` negate x :: Int  =  GT+_:_ :: [Int] `compare` negate 0 :: Int  =  GT+_:_ :: [Int] `compare` negate (id _) :: Int  =  LT+_:_ :: [Int] `compare` abs x :: Int  =  GT+_:_ :: [Int] `compare` abs 0 :: Int  =  GT+_:_ :: [Int] `compare` abs (id _) :: Int  =  LT+_:_ :: [Int] `compare` _ + x :: Int  =  GT+_:_ :: [Int] `compare` _ + 0 :: Int  =  LT+_:_ :: [Int] `compare` _ + id _ :: Int  =  LT+_:_ :: [Int] `compare` x + _ :: Int  =  GT+_:_ :: [Int] `compare` 0 + _ :: Int  =  LT+_:_ :: [Int] `compare` id _ + _ :: Int  =  LT+_:_ :: [Int] `compare` _ * _ :: Int  =  LT+_:_ :: [Int] `compare` f _ :: Int  =  GT+_:_ :: [Int] `compare` head xs :: Int  =  GT+_:_ :: [Int] `compare` head [] :: Int  =  GT+_:_ :: [Int] `compare` head (_:_) :: Int  =  LT+_:_ :: [Int] `compare` ord c :: Int  =  GT+_:_ :: [Int] `compare` ord 'a' :: Int  =  GT+_:_ :: [Int] `compare` q :: Bool  =  GT+_:_ :: [Int] `compare` not p :: Bool  =  GT+_:_ :: [Int] `compare` not False :: Bool  =  GT+_:_ :: [Int] `compare` not True :: Bool  =  GT+_:_ :: [Int] `compare` not (not _) :: Bool  =  LT+_:_ :: [Int] `compare` _ || _ :: Bool  =  LT+_:_ :: [Int] `compare` d :: Char  =  GT+_:_ :: [Int] `compare` ' ' :: Char  =  GT+_:_ :: [Int] `compare` ys :: [Int]  =  GT+_:_ :: [Int] `compare` [0] :: [Int]  =  GT+_:_ :: [Int] `compare` _:xs :: [Int]  =  LT+_:_ :: [Int] `compare` [_] :: [Int]  =  LT+_:_ :: [Int] `compare` _:_:_ :: [Int]  =  LT+_:_ :: [Int] `compare` x:_ :: [Int]  =  LT+_:_ :: [Int] `compare` 0:_ :: [Int]  =  LT+_:_ :: [Int] `compare` id _:_ :: [Int]  =  LT+_:_ :: [Int] `compare` tail _ :: [Int]  =  GT+_:_ :: [Int] `compare` _ ++ _ :: [Int]  =  LT+_:_ :: [Int] `compare` negate :: Int -> Int  =  GT+_:_ :: [Int] `compare` abs :: Int -> Int  =  GT+_:_ :: [Int] `compare` (_ +) :: Int -> Int  =  GT+_:_ :: [Int] `compare` (*) :: Int -> Int -> Int  =  GT+_:_ :: [Int] `compare` not :: Bool -> Bool  =  GT+_:_ :: [Int] `compare` (||) :: Bool -> Bool -> Bool  =  GT+id :: Int -> Int `compare` z :: Int  =  GT+id :: Int -> Int `compare` -1 :: Int  =  GT+id :: Int -> Int `compare` id y :: Int  =  LT+id :: Int -> Int `compare` id 1 :: Int  =  LT+id :: Int -> Int `compare` id (id x) :: Int  =  LT+id :: Int -> Int `compare` id (id 0) :: Int  =  LT+id :: Int -> Int `compare` id (id (id _)) :: Int  =  LT+id :: Int -> Int `compare` id (negate _) :: Int  =  LT+id :: Int -> Int `compare` id (abs _) :: Int  =  LT+id :: Int -> Int `compare` id (_ + _) :: Int  =  LT+id :: Int -> Int `compare` id (head _) :: Int  =  LT+id :: Int -> Int `compare` id (ord _) :: Int  =  LT+id :: Int -> Int `compare` negate x :: Int  =  LT+id :: Int -> Int `compare` negate 0 :: Int  =  LT+id :: Int -> Int `compare` negate (id _) :: Int  =  LT+id :: Int -> Int `compare` abs x :: Int  =  LT+id :: Int -> Int `compare` abs 0 :: Int  =  LT+id :: Int -> Int `compare` abs (id _) :: Int  =  LT+id :: Int -> Int `compare` _ + x :: Int  =  LT+id :: Int -> Int `compare` _ + 0 :: Int  =  LT+id :: Int -> Int `compare` _ + id _ :: Int  =  LT+id :: Int -> Int `compare` x + _ :: Int  =  LT+id :: Int -> Int `compare` 0 + _ :: Int  =  LT+id :: Int -> Int `compare` id _ + _ :: Int  =  LT+id :: Int -> Int `compare` _ * _ :: Int  =  LT+id :: Int -> Int `compare` f _ :: Int  =  LT+id :: Int -> Int `compare` head xs :: Int  =  LT+id :: Int -> Int `compare` head [] :: Int  =  LT+id :: Int -> Int `compare` head (_:_) :: Int  =  LT+id :: Int -> Int `compare` ord c :: Int  =  LT+id :: Int -> Int `compare` ord 'a' :: Int  =  LT+id :: Int -> Int `compare` q :: Bool  =  GT+id :: Int -> Int `compare` not p :: Bool  =  LT+id :: Int -> Int `compare` not False :: Bool  =  LT+id :: Int -> Int `compare` not True :: Bool  =  LT+id :: Int -> Int `compare` not (not _) :: Bool  =  LT+id :: Int -> Int `compare` _ || _ :: Bool  =  LT+id :: Int -> Int `compare` d :: Char  =  GT+id :: Int -> Int `compare` ' ' :: Char  =  GT+id :: Int -> Int `compare` ys :: [Int]  =  GT+id :: Int -> Int `compare` [0] :: [Int]  =  GT+id :: Int -> Int `compare` _:xs :: [Int]  =  LT+id :: Int -> Int `compare` [_] :: [Int]  =  LT+id :: Int -> Int `compare` _:_:_ :: [Int]  =  LT+id :: Int -> Int `compare` x:_ :: [Int]  =  LT+id :: Int -> Int `compare` 0:_ :: [Int]  =  LT+id :: Int -> Int `compare` id _:_ :: [Int]  =  LT+id :: Int -> Int `compare` tail _ :: [Int]  =  LT+id :: Int -> Int `compare` _ ++ _ :: [Int]  =  LT+id :: Int -> Int `compare` negate :: Int -> Int  =  LT+id :: Int -> Int `compare` abs :: Int -> Int  =  LT+id :: Int -> Int `compare` (_ +) :: Int -> Int  =  LT+id :: Int -> Int `compare` (*) :: Int -> Int -> Int  =  LT+id :: Int -> Int `compare` not :: Bool -> Bool  =  GT+id :: Int -> Int `compare` (||) :: Bool -> Bool -> Bool  =  LT+(+) :: Int -> Int -> Int `compare` z :: Int  =  GT+(+) :: Int -> Int -> Int `compare` -1 :: Int  =  GT+(+) :: Int -> Int -> Int `compare` id y :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id 1 :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (id x) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (id 0) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (id (id _)) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (negate _) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (abs _) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (_ + _) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (head _) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id (ord _) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` negate x :: Int  =  LT+(+) :: Int -> Int -> Int `compare` negate 0 :: Int  =  LT+(+) :: Int -> Int -> Int `compare` negate (id _) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` abs x :: Int  =  LT+(+) :: Int -> Int -> Int `compare` abs 0 :: Int  =  LT+(+) :: Int -> Int -> Int `compare` abs (id _) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` _ + x :: Int  =  LT+(+) :: Int -> Int -> Int `compare` _ + 0 :: Int  =  LT+(+) :: Int -> Int -> Int `compare` _ + id _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` x + _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` 0 + _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` id _ + _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` _ * _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` f _ :: Int  =  LT+(+) :: Int -> Int -> Int `compare` head xs :: Int  =  LT+(+) :: Int -> Int -> Int `compare` head [] :: Int  =  LT+(+) :: Int -> Int -> Int `compare` head (_:_) :: Int  =  LT+(+) :: Int -> Int -> Int `compare` ord c :: Int  =  LT+(+) :: Int -> Int -> Int `compare` ord 'a' :: Int  =  LT+(+) :: Int -> Int -> Int `compare` q :: Bool  =  GT+(+) :: Int -> Int -> Int `compare` not p :: Bool  =  LT+(+) :: Int -> Int -> Int `compare` not False :: Bool  =  LT+(+) :: Int -> Int -> Int `compare` not True :: Bool  =  LT+(+) :: Int -> Int -> Int `compare` not (not _) :: Bool  =  LT+(+) :: Int -> Int -> Int `compare` _ || _ :: Bool  =  LT+(+) :: Int -> Int -> Int `compare` d :: Char  =  GT+(+) :: Int -> Int -> Int `compare` ' ' :: Char  =  GT+(+) :: Int -> Int -> Int `compare` ys :: [Int]  =  GT+(+) :: Int -> Int -> Int `compare` [0] :: [Int]  =  GT+(+) :: Int -> Int -> Int `compare` _:xs :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` [_] :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` _:_:_ :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` x:_ :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` 0:_ :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` id _:_ :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` tail _ :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` _ ++ _ :: [Int]  =  LT+(+) :: Int -> Int -> Int `compare` negate :: Int -> Int  =  GT+(+) :: Int -> Int -> Int `compare` abs :: Int -> Int  =  GT+(+) :: Int -> Int -> Int `compare` (_ +) :: Int -> Int  =  LT+(+) :: Int -> Int -> Int `compare` (*) :: Int -> Int -> Int  =  GT+(+) :: Int -> Int -> Int `compare` not :: Bool -> Bool  =  GT+(+) :: Int -> Int -> Int `compare` (||) :: Bool -> Bool -> Bool  =  GT+z :: Int `compare` y :: Int  =  GT+z :: Int `compare` 1 :: Int  =  LT+z :: Int `compare` id x :: Int  =  LT+z :: Int `compare` id 0 :: Int  =  LT+z :: Int `compare` id (id _) :: Int  =  LT+z :: Int `compare` negate _ :: Int  =  LT+z :: Int `compare` abs _ :: Int  =  LT+z :: Int `compare` _ + _ :: Int  =  LT+z :: Int `compare` head _ :: Int  =  LT+z :: Int `compare` ord _ :: Int  =  LT+z :: Int `compare` p :: Bool  =  GT+z :: Int `compare` False :: Bool  =  LT+z :: Int `compare` True :: Bool  =  LT+z :: Int `compare` not _ :: Bool  =  LT+z :: Int `compare` c :: Char  =  GT+z :: Int `compare` 'a' :: Char  =  LT+z :: Int `compare` xs :: [Int]  =  LT+z :: Int `compare` [] :: [Int]  =  LT+z :: Int `compare` _:_ :: [Int]  =  LT+z :: Int `compare` id :: Int -> Int  =  LT+z :: Int `compare` (+) :: Int -> Int -> Int  =  LT+-1 :: Int `compare` y :: Int  =  GT+-1 :: Int `compare` 1 :: Int  =  GT+-1 :: Int `compare` id x :: Int  =  LT+-1 :: Int `compare` id 0 :: Int  =  LT+-1 :: Int `compare` id (id _) :: Int  =  LT+-1 :: Int `compare` negate _ :: Int  =  LT+-1 :: Int `compare` abs _ :: Int  =  LT+-1 :: Int `compare` _ + _ :: Int  =  LT+-1 :: Int `compare` head _ :: Int  =  LT+-1 :: Int `compare` ord _ :: Int  =  LT+-1 :: Int `compare` p :: Bool  =  GT+-1 :: Int `compare` False :: Bool  =  GT+-1 :: Int `compare` True :: Bool  =  GT+-1 :: Int `compare` not _ :: Bool  =  LT+-1 :: Int `compare` c :: Char  =  GT+-1 :: Int `compare` 'a' :: Char  =  GT+-1 :: Int `compare` xs :: [Int]  =  GT+-1 :: Int `compare` [] :: [Int]  =  LT+-1 :: Int `compare` _:_ :: [Int]  =  LT+-1 :: Int `compare` id :: Int -> Int  =  LT+-1 :: Int `compare` (+) :: Int -> Int -> Int  =  LT+id y :: Int `compare` y :: Int  =  GT+id y :: Int `compare` 1 :: Int  =  GT+id y :: Int `compare` id x :: Int  =  GT+id y :: Int `compare` id 0 :: Int  =  LT+id y :: Int `compare` id (id _) :: Int  =  LT+id y :: Int `compare` negate _ :: Int  =  LT+id y :: Int `compare` abs _ :: Int  =  LT+id y :: Int `compare` _ + _ :: Int  =  LT+id y :: Int `compare` head _ :: Int  =  LT+id y :: Int `compare` ord _ :: Int  =  GT+id y :: Int `compare` p :: Bool  =  GT+id y :: Int `compare` False :: Bool  =  GT+id y :: Int `compare` True :: Bool  =  GT+id y :: Int `compare` not _ :: Bool  =  GT+id y :: Int `compare` c :: Char  =  GT+id y :: Int `compare` 'a' :: Char  =  GT+id y :: Int `compare` xs :: [Int]  =  GT+id y :: Int `compare` [] :: [Int]  =  GT+id y :: Int `compare` _:_ :: [Int]  =  LT+id y :: Int `compare` id :: Int -> Int  =  GT+id y :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id 1 :: Int `compare` y :: Int  =  GT+id 1 :: Int `compare` 1 :: Int  =  GT+id 1 :: Int `compare` id x :: Int  =  GT+id 1 :: Int `compare` id 0 :: Int  =  GT+id 1 :: Int `compare` id (id _) :: Int  =  LT+id 1 :: Int `compare` negate _ :: Int  =  GT+id 1 :: Int `compare` abs _ :: Int  =  GT+id 1 :: Int `compare` _ + _ :: Int  =  LT+id 1 :: Int `compare` head _ :: Int  =  GT+id 1 :: Int `compare` ord _ :: Int  =  GT+id 1 :: Int `compare` p :: Bool  =  GT+id 1 :: Int `compare` False :: Bool  =  GT+id 1 :: Int `compare` True :: Bool  =  GT+id 1 :: Int `compare` not _ :: Bool  =  GT+id 1 :: Int `compare` c :: Char  =  GT+id 1 :: Int `compare` 'a' :: Char  =  GT+id 1 :: Int `compare` xs :: [Int]  =  GT+id 1 :: Int `compare` [] :: [Int]  =  GT+id 1 :: Int `compare` _:_ :: [Int]  =  LT+id 1 :: Int `compare` id :: Int -> Int  =  GT+id 1 :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (id x) :: Int `compare` y :: Int  =  GT+id (id x) :: Int `compare` 1 :: Int  =  GT+id (id x) :: Int `compare` id x :: Int  =  GT+id (id x) :: Int `compare` id 0 :: Int  =  GT+id (id x) :: Int `compare` id (id _) :: Int  =  GT+id (id x) :: Int `compare` negate _ :: Int  =  GT+id (id x) :: Int `compare` abs _ :: Int  =  GT+id (id x) :: Int `compare` _ + _ :: Int  =  GT+id (id x) :: Int `compare` head _ :: Int  =  GT+id (id x) :: Int `compare` ord _ :: Int  =  GT+id (id x) :: Int `compare` p :: Bool  =  GT+id (id x) :: Int `compare` False :: Bool  =  GT+id (id x) :: Int `compare` True :: Bool  =  GT+id (id x) :: Int `compare` not _ :: Bool  =  GT+id (id x) :: Int `compare` c :: Char  =  GT+id (id x) :: Int `compare` 'a' :: Char  =  GT+id (id x) :: Int `compare` xs :: [Int]  =  GT+id (id x) :: Int `compare` [] :: [Int]  =  GT+id (id x) :: Int `compare` _:_ :: [Int]  =  GT+id (id x) :: Int `compare` id :: Int -> Int  =  GT+id (id x) :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (id 0) :: Int `compare` y :: Int  =  GT+id (id 0) :: Int `compare` 1 :: Int  =  GT+id (id 0) :: Int `compare` id x :: Int  =  GT+id (id 0) :: Int `compare` id 0 :: Int  =  GT+id (id 0) :: Int `compare` id (id _) :: Int  =  GT+id (id 0) :: Int `compare` negate _ :: Int  =  GT+id (id 0) :: Int `compare` abs _ :: Int  =  GT+id (id 0) :: Int `compare` _ + _ :: Int  =  GT+id (id 0) :: Int `compare` head _ :: Int  =  GT+id (id 0) :: Int `compare` ord _ :: Int  =  GT+id (id 0) :: Int `compare` p :: Bool  =  GT+id (id 0) :: Int `compare` False :: Bool  =  GT+id (id 0) :: Int `compare` True :: Bool  =  GT+id (id 0) :: Int `compare` not _ :: Bool  =  GT+id (id 0) :: Int `compare` c :: Char  =  GT+id (id 0) :: Int `compare` 'a' :: Char  =  GT+id (id 0) :: Int `compare` xs :: [Int]  =  GT+id (id 0) :: Int `compare` [] :: [Int]  =  GT+id (id 0) :: Int `compare` _:_ :: [Int]  =  GT+id (id 0) :: Int `compare` id :: Int -> Int  =  GT+id (id 0) :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (id (id _)) :: Int `compare` y :: Int  =  GT+id (id (id _)) :: Int `compare` 1 :: Int  =  GT+id (id (id _)) :: Int `compare` id x :: Int  =  GT+id (id (id _)) :: Int `compare` id 0 :: Int  =  GT+id (id (id _)) :: Int `compare` id (id _) :: Int  =  GT+id (id (id _)) :: Int `compare` negate _ :: Int  =  GT+id (id (id _)) :: Int `compare` abs _ :: Int  =  GT+id (id (id _)) :: Int `compare` _ + _ :: Int  =  GT+id (id (id _)) :: Int `compare` head _ :: Int  =  GT+id (id (id _)) :: Int `compare` ord _ :: Int  =  GT+id (id (id _)) :: Int `compare` p :: Bool  =  GT+id (id (id _)) :: Int `compare` False :: Bool  =  GT+id (id (id _)) :: Int `compare` True :: Bool  =  GT+id (id (id _)) :: Int `compare` not _ :: Bool  =  GT+id (id (id _)) :: Int `compare` c :: Char  =  GT+id (id (id _)) :: Int `compare` 'a' :: Char  =  GT+id (id (id _)) :: Int `compare` xs :: [Int]  =  GT+id (id (id _)) :: Int `compare` [] :: [Int]  =  GT+id (id (id _)) :: Int `compare` _:_ :: [Int]  =  GT+id (id (id _)) :: Int `compare` id :: Int -> Int  =  GT+id (id (id _)) :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (negate _) :: Int `compare` y :: Int  =  GT+id (negate _) :: Int `compare` 1 :: Int  =  GT+id (negate _) :: Int `compare` id x :: Int  =  GT+id (negate _) :: Int `compare` id 0 :: Int  =  GT+id (negate _) :: Int `compare` id (id _) :: Int  =  GT+id (negate _) :: Int `compare` negate _ :: Int  =  GT+id (negate _) :: Int `compare` abs _ :: Int  =  GT+id (negate _) :: Int `compare` _ + _ :: Int  =  GT+id (negate _) :: Int `compare` head _ :: Int  =  GT+id (negate _) :: Int `compare` ord _ :: Int  =  GT+id (negate _) :: Int `compare` p :: Bool  =  GT+id (negate _) :: Int `compare` False :: Bool  =  GT+id (negate _) :: Int `compare` True :: Bool  =  GT+id (negate _) :: Int `compare` not _ :: Bool  =  GT+id (negate _) :: Int `compare` c :: Char  =  GT+id (negate _) :: Int `compare` 'a' :: Char  =  GT+id (negate _) :: Int `compare` xs :: [Int]  =  GT+id (negate _) :: Int `compare` [] :: [Int]  =  GT+id (negate _) :: Int `compare` _:_ :: [Int]  =  GT+id (negate _) :: Int `compare` id :: Int -> Int  =  GT+id (negate _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (abs _) :: Int `compare` y :: Int  =  GT+id (abs _) :: Int `compare` 1 :: Int  =  GT+id (abs _) :: Int `compare` id x :: Int  =  GT+id (abs _) :: Int `compare` id 0 :: Int  =  GT+id (abs _) :: Int `compare` id (id _) :: Int  =  GT+id (abs _) :: Int `compare` negate _ :: Int  =  GT+id (abs _) :: Int `compare` abs _ :: Int  =  GT+id (abs _) :: Int `compare` _ + _ :: Int  =  GT+id (abs _) :: Int `compare` head _ :: Int  =  GT+id (abs _) :: Int `compare` ord _ :: Int  =  GT+id (abs _) :: Int `compare` p :: Bool  =  GT+id (abs _) :: Int `compare` False :: Bool  =  GT+id (abs _) :: Int `compare` True :: Bool  =  GT+id (abs _) :: Int `compare` not _ :: Bool  =  GT+id (abs _) :: Int `compare` c :: Char  =  GT+id (abs _) :: Int `compare` 'a' :: Char  =  GT+id (abs _) :: Int `compare` xs :: [Int]  =  GT+id (abs _) :: Int `compare` [] :: [Int]  =  GT+id (abs _) :: Int `compare` _:_ :: [Int]  =  GT+id (abs _) :: Int `compare` id :: Int -> Int  =  GT+id (abs _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (_ + _) :: Int `compare` y :: Int  =  GT+id (_ + _) :: Int `compare` 1 :: Int  =  GT+id (_ + _) :: Int `compare` id x :: Int  =  GT+id (_ + _) :: Int `compare` id 0 :: Int  =  GT+id (_ + _) :: Int `compare` id (id _) :: Int  =  GT+id (_ + _) :: Int `compare` negate _ :: Int  =  GT+id (_ + _) :: Int `compare` abs _ :: Int  =  GT+id (_ + _) :: Int `compare` _ + _ :: Int  =  GT+id (_ + _) :: Int `compare` head _ :: Int  =  GT+id (_ + _) :: Int `compare` ord _ :: Int  =  GT+id (_ + _) :: Int `compare` p :: Bool  =  GT+id (_ + _) :: Int `compare` False :: Bool  =  GT+id (_ + _) :: Int `compare` True :: Bool  =  GT+id (_ + _) :: Int `compare` not _ :: Bool  =  GT+id (_ + _) :: Int `compare` c :: Char  =  GT+id (_ + _) :: Int `compare` 'a' :: Char  =  GT+id (_ + _) :: Int `compare` xs :: [Int]  =  GT+id (_ + _) :: Int `compare` [] :: [Int]  =  GT+id (_ + _) :: Int `compare` _:_ :: [Int]  =  GT+id (_ + _) :: Int `compare` id :: Int -> Int  =  GT+id (_ + _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (head _) :: Int `compare` y :: Int  =  GT+id (head _) :: Int `compare` 1 :: Int  =  GT+id (head _) :: Int `compare` id x :: Int  =  GT+id (head _) :: Int `compare` id 0 :: Int  =  GT+id (head _) :: Int `compare` id (id _) :: Int  =  GT+id (head _) :: Int `compare` negate _ :: Int  =  GT+id (head _) :: Int `compare` abs _ :: Int  =  GT+id (head _) :: Int `compare` _ + _ :: Int  =  GT+id (head _) :: Int `compare` head _ :: Int  =  GT+id (head _) :: Int `compare` ord _ :: Int  =  GT+id (head _) :: Int `compare` p :: Bool  =  GT+id (head _) :: Int `compare` False :: Bool  =  GT+id (head _) :: Int `compare` True :: Bool  =  GT+id (head _) :: Int `compare` not _ :: Bool  =  GT+id (head _) :: Int `compare` c :: Char  =  GT+id (head _) :: Int `compare` 'a' :: Char  =  GT+id (head _) :: Int `compare` xs :: [Int]  =  GT+id (head _) :: Int `compare` [] :: [Int]  =  GT+id (head _) :: Int `compare` _:_ :: [Int]  =  GT+id (head _) :: Int `compare` id :: Int -> Int  =  GT+id (head _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT+id (ord _) :: Int `compare` y :: Int  =  GT+id (ord _) :: Int `compare` 1 :: Int  =  GT+id (ord _) :: Int `compare` id x :: Int  =  GT+id (ord _) :: Int `compare` id 0 :: Int  =  GT+id (ord _) :: Int `compare` id (id _) :: Int  =  GT+id (ord _) :: Int `compare` negate _ :: Int  =  GT+id (ord _) :: Int `compare` abs _ :: Int  =  GT+id (ord _) :: Int `compare` _ + _ :: Int  =  GT+id (ord _) :: Int `compare` head _ :: Int  =  GT+id (ord _) :: Int `compare` ord _ :: Int  =  GT+
bench/match-list.hs view
@@ -1,6 +1,6 @@ -- match-list.hs -- how long it takes to match expression in a list? ----- Copyright (c) 2021 Rudy Matela.+-- Copyright (c) 2021-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). -- -- This program has the same parameters as other match*.hs benchmarks.@@ -19,6 +19,6 @@  main :: IO () main  =  do-  putStrLn $ unlines $ map showEq $ allRules-  putStrLn $ unlines $ map show $ mapMaybe query $ take 1080 $ exprs+  putStrLn $ unlines $ map showEq allRules+  putStrLn $ unlines $ map show $ mapMaybe query $ take 1080 exprs   print $ (== ']') $ last $ show $ mapMaybe query exprs
+ bench/match-list.txt view
@@ -0,0 +1,795 @@+id p  =  p+p && p  =  p+p || p  =  p+p && q  =  q && p+p || q  =  q || p+not (not p)  =  p+p && True  =  p+True && p  =  p+p && False  =  False+False && p  =  False+p || True  =  True+True || p  =  True+p || False  =  p+False || p  =  p+p && not p  =  False+p || not p  =  True+not p && p  =  False+not p || p  =  True+(p && q) && r  =  p && (q && r)+(p || q) || r  =  p || (q || r)+not (p && q)  =  not p || not q+not (p || q)  =  not p && not q+not False  =  True+not True  =  False+not (not p && not q)  =  p || q+not (not p || not q)  =  p && q+p && not (p && q)  =  p && not q+id x  =  x+abs (abs x)  =  abs x+x + 0  =  x+0 + x  =  x+x * 1  =  x+1 * x  =  x+x * 0  =  0+0 * x  =  0+x + y  =  y + x+x * y  =  y * x+(x + y) + z  =  x + (y + z)+(x * y) * z  =  x * (y * z)+(x + x) * y  =  x * (y + y)+x * (y + 1)  =  x + x * y+(x + 1) * y  =  x + x * y+x * (y + z)  =  x * y + x * z+(x + y) * z  =  x * z + y * z+negate (negate x)  =  x+x + negate x  =  0+negate x + x  =  0+abs (negate x)  =  abs x+2 * x  =  x + x+x * 2  =  x + x+3 * x  =  x + (x + x)+x * 3  =  x + (x + x)+4 * x  =  x + (x + (x + x))+x * 4  =  x + (x + (x + x))+abs (x * x)  =  x * x+abs x * abs y  =  abs (x * y)+abs x * abs x  =  abs (x + x)+abs (abs x + abs y)  =  abs x + abs y+abs (x + x) * y  =  abs x * y + abs x * y+abs x * signum x  =  x+signum x * abs x  =  x+id xs  =  xs+head (x:xs)  =  x+tail (x:xs)  =  xs+xs ++ []  =  xs+[] ++ xs  =  xs+[x] ++ xs  =  x:xs+(x:xs) ++ ys  =  x:(xs ++ ys)+(xs ++ ys) ++ zs  =  xs ++ (ys ++ zs)+elem x (sort xs)  =  elem x xs+elem x (insert y xs)  =  elem x (y:xs)+sort (sort xs)  =  sort xs+insert x []  =  [x]+sort (xs ++ ys)  =  sort (ys ++ xs)+sort (insert x xs)  =  insert x (sort xs)+sort (x:xs)  =  insert x (sort xs)+sort (xs ++ sort ys)  =  sort (xs ++ ys)+sort (sort xs ++ ys)  =  sort (xs ++ ys)+insert x (insert y xs)  =  insert y (insert x xs)+insert x (x:xs)  =  x:x:xs+insert x [y]  =  insert y [x]+length (x:xs)  =  length (y:xs)+length (xs ++ ys)  =  length (ys ++ xs)+length (x:y:xs)  =  length (z:x':xs)+length (x:(xs ++ ys))  =  length (y:(ys ++ xs))+length (xs ++ (ys ++ zs))  =  length (xs ++ (zs ++ ys))+not (odd x)  =  even x+not (even x)  =  odd x+x == x  =  True+x /= x  =  False+p == p  =  True+p /= p  =  False+f (g x)  =  (f . g) x+map id xs  =  xs+map (f . g) xs  =  map f (map g xs)+f . id  =  f+id . f  =  f+(f . g) . h  =  f . (g . h)+not . not  =  id++(id x :: Int,[(x :: Int,_ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id _ :: Int)],x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(id x :: Int,[(x :: Int,y :: Int)],x :: Int)+(id x :: Int,[(x :: Int,1 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord _ :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(not False :: Bool,[],True :: Bool)+(not True :: Bool,[],False :: Bool)+(not (not p) :: Bool,[(p :: Bool,_ :: Bool)],p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(id x :: Int,[(x :: Int,z :: Int)],x :: Int)+(id x :: Int,[(x :: Int,-1 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id y :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id 1 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (ord _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + id _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,x + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,0 + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id _ + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ * _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,f _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head xs :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head [] :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (_:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord c :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord 'a' :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,x :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,y :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,1 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,x :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ :: Int)],y * x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],x :: Int)+(not (not p) :: Bool,[(p :: Bool,p :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,False :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,True :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not _ :: Bool)],p :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(x == x :: Bool,[(x :: Int,_ :: Int)],True :: Bool)+(p == p :: Bool,[(p :: Bool,_ :: Bool)],True :: Bool)+(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])+(xs ++ [] :: [Int],[(xs :: [Int],_ :: [Int])],xs :: [Int])+([] ++ xs :: [Int],[(xs :: [Int],_ :: [Int])],xs :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+(id x :: Int,[(x :: Int,x' :: Int)],x :: Int)+(id x :: Int,[(x :: Int,2 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id z :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (-1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id y) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id 1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id x)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id 0)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (id _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (negate _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (abs _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (_ + _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (head _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (ord _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (x + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (0 + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id _ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ * _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (f _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head xs) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head []) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head (_:_)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (ord c) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (ord 'a') :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate y :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate 1 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (negate _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (abs _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (_ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (head _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (ord _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs y :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs 1 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (negate _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (abs _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (_ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (head _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (ord _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + y :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + 1 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + id x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + id 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + id (id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + negate _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + abs _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + (_ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + head _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ + ord _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,x + x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,x + 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,x + id _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,0 + x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,0 + 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,0 + id _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id _ + x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id _ + 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id _ + id _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ * x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ * 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,_ * id _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,f x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,f 0 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,f (id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,y + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,1 + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id x + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id 0 + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id _) + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate _ + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs _ + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,(_ + _) + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head _ + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord _ + _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,x * _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,0 * _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id _ * _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,g _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head ys :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head [0] :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (_:xs) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head [_] :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (_:_:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (x:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (0:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (id _:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (tail _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (_ ++ _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord d :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord ' ' :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,z :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,-1 :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head xs :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,head [] :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,head (_:_) :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord c :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord 'a' :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,x :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x * y :: Int,[(y :: Int,y :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,1 :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,head _ :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,y :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,y :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(y +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,1 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,1 :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(1 +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id x :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id x +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id 0 +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id (id _) +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(negate _ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(abs _ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,((_ + _) +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,head _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,head _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(head _ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(ord _ +) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,x :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,x :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x *) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,0 :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,0 :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 *) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,id _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,id _ :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,g :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,z :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,-1 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id y :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 1 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id x) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id 0) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id (id _)) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (negate _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (abs _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (_ + _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (head _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (ord _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate (id _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs (id _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + id _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,x + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ * _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,f _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head xs :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head [] :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head (_:_) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord c :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord 'a' :: Int)],y + x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,y :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,1 :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id x :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 0 :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id _) :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,head _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord _ :: Int)],y * x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],ys :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[0] :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:xs :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[_] :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],x:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],0:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],id _:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],tail _ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ ++ _ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,id _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,id _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,id _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,y :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,1 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id 0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id (id _) :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,negate _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,abs _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,_ + _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,head _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,ord _ :: Int)],x :: Int)+(not (not p) :: Bool,[(p :: Bool,q :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not p :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not False :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not True :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not (not _) :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,_ || _ :: Bool)],p :: Bool)+(not (p || q) :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],not p && not q :: Bool)+(not (p && q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],not p || not q :: Bool)+(not (odd x) :: Bool,[(x :: Int,_ :: Int)],even x :: Bool)+(not (even x) :: Bool,[(x :: Int,_ :: Int)],odd x :: Bool)+(p || q :: Bool,[(q :: Bool,q :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not p :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not False :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not True :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not (not _) :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ || _ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p && q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,q :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not (not _) :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ || _ :: Bool)],q || p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],q && p :: Bool)+(tail (x:xs) :: [Int],[(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],xs :: [Int])+(xs ++ [] :: [Int],[(xs :: [Int],xs :: [Int])],xs :: [Int])+([] ++ xs :: [Int],[(xs :: [Int],xs :: [Int])],xs :: [Int])+(xs ++ [] :: [Int],[(xs :: [Int],[] :: [Int])],xs :: [Int])+([] ++ xs :: [Int],[(xs :: [Int],_:_ :: [Int])],xs :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],xs :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+(xs ++ [] :: [Int],[(xs :: [Int],_:_ :: [Int])],xs :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_:_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],x:(xs ++ ys) :: [Int])+((xs ++ ys) ++ zs :: [Int],[(zs :: [Int],_ :: [Int]),(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int])],xs ++ (ys ++ zs) :: [Int])+(sort (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],insert x (sort xs) :: [Int])+(insert x [] :: [Int],[(x :: Int,_ :: Int)],[x] :: [Int])+(insert x (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:x:xs :: [Int])+(id x :: Int,[(x :: Int,y' :: Int)],x :: Int)+(id x :: Int,[(x :: Int,-2 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id x' :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id 2 :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id z) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (-1)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id y)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id 1)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (id x))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (id 0))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (id (id _)))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (negate _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (abs _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (_ + _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (head _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id (ord _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (negate x)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (negate 0)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (negate (id _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (abs x)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (abs 0)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (abs (id _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (_ + x)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (_ + 0)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (_ + id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (x + _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (0 + _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id _ + _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (_ * _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (f _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (head xs)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (head [])) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (head (_:_))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (ord c)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (ord 'a')) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate y) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate 1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (id x)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (id 0)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (id (id _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (negate _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (abs _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (_ + _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (head _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate (ord _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs y) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs 1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (id x)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (id 0)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (id (id _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (negate _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (abs _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (_ + _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (head _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs (ord _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + y) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + 1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + id x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + id 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + id (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + negate _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + abs _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + (_ + _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + head _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ + ord _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (x + x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (x + 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (x + id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (0 + x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (0 + 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (0 + id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id _ + x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id _ + 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id _ + id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ * x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ * 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (_ * id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (f x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (f 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (f (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (y + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (1 + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id x + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id 0 + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id (id _) + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (negate _ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (abs _ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id ((_ + _) + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head _ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (ord _ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (x * _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (0 * _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (id _ * _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (g _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head ys) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head [0]) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head (_:xs)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head [_]) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head (_:_:_)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head (x:_)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head (0:_)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head (id _:_)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head (tail _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (head (_ ++ _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (ord d) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,id (ord ' ') :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate z :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (-1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id y) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id 1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (id x)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (id 0)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (id (id _))) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (negate _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (abs _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (_ + _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (head _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id (ord _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (negate x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (negate 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (negate (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (abs x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (abs 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (abs (id _)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (_ + x) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (_ + 0) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (_ + id _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (x + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (0 + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (id _ + _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (_ * _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (f _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (head xs) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (head []) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (head (_:_)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (ord c) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,negate (ord 'a') :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs z :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (-1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id y) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id 1) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id (id x)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id (id 0)) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,abs (id (id (id _))) :: Int)],x :: Int)++True
bench/match-noop.hs view
@@ -1,6 +1,6 @@ -- exprs.hs -- how long it takes to enumerate expressions? ----- Copyright (c) 2021 Rudy Matela.+-- Copyright (c) 2021-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). -- -- This program has the same parameters as other match*.hs benchmarks.@@ -19,6 +19,6 @@  main :: IO () main  =  do-  putStrLn $ unlines $ map showEq $ allRules-  putStrLn $ unlines $ map show $ mapMaybe query $ take 1080 $ exprs+  putStrLn $ unlines $ map showEq allRules+  putStrLn $ unlines $ map show $ mapMaybe query $ take 1080 exprs   print $ (== ']') $ last $ show $ mapMaybe query exprs
+ bench/match-noop.txt view
@@ -0,0 +1,1182 @@+id p  =  p+p && p  =  p+p || p  =  p+p && q  =  q && p+p || q  =  q || p+not (not p)  =  p+p && True  =  p+True && p  =  p+p && False  =  False+False && p  =  False+p || True  =  True+True || p  =  True+p || False  =  p+False || p  =  p+p && not p  =  False+p || not p  =  True+not p && p  =  False+not p || p  =  True+(p && q) && r  =  p && (q && r)+(p || q) || r  =  p || (q || r)+not (p && q)  =  not p || not q+not (p || q)  =  not p && not q+not False  =  True+not True  =  False+not (not p && not q)  =  p || q+not (not p || not q)  =  p && q+p && not (p && q)  =  p && not q+id x  =  x+abs (abs x)  =  abs x+x + 0  =  x+0 + x  =  x+x * 1  =  x+1 * x  =  x+x * 0  =  0+0 * x  =  0+x + y  =  y + x+x * y  =  y * x+(x + y) + z  =  x + (y + z)+(x * y) * z  =  x * (y * z)+(x + x) * y  =  x * (y + y)+x * (y + 1)  =  x + x * y+(x + 1) * y  =  x + x * y+x * (y + z)  =  x * y + x * z+(x + y) * z  =  x * z + y * z+negate (negate x)  =  x+x + negate x  =  0+negate x + x  =  0+abs (negate x)  =  abs x+2 * x  =  x + x+x * 2  =  x + x+3 * x  =  x + (x + x)+x * 3  =  x + (x + x)+4 * x  =  x + (x + (x + x))+x * 4  =  x + (x + (x + x))+abs (x * x)  =  x * x+abs x * abs y  =  abs (x * y)+abs x * abs x  =  abs (x + x)+abs (abs x + abs y)  =  abs x + abs y+abs (x + x) * y  =  abs x * y + abs x * y+abs x * signum x  =  x+signum x * abs x  =  x+id xs  =  xs+head (x:xs)  =  x+tail (x:xs)  =  xs+xs ++ []  =  xs+[] ++ xs  =  xs+[x] ++ xs  =  x:xs+(x:xs) ++ ys  =  x:(xs ++ ys)+(xs ++ ys) ++ zs  =  xs ++ (ys ++ zs)+elem x (sort xs)  =  elem x xs+elem x (insert y xs)  =  elem x (y:xs)+sort (sort xs)  =  sort xs+insert x []  =  [x]+sort (xs ++ ys)  =  sort (ys ++ xs)+sort (insert x xs)  =  insert x (sort xs)+sort (x:xs)  =  insert x (sort xs)+sort (xs ++ sort ys)  =  sort (xs ++ ys)+sort (sort xs ++ ys)  =  sort (xs ++ ys)+insert x (insert y xs)  =  insert y (insert x xs)+insert x (x:xs)  =  x:x:xs+insert x [y]  =  insert y [x]+length (x:xs)  =  length (y:xs)+length (xs ++ ys)  =  length (ys ++ xs)+length (x:y:xs)  =  length (z:x':xs)+length (x:(xs ++ ys))  =  length (y:(ys ++ xs))+length (xs ++ (ys ++ zs))  =  length (xs ++ (zs ++ ys))+not (odd x)  =  even x+not (even x)  =  odd x+x == x  =  True+x /= x  =  False+p == p  =  True+p /= p  =  False+f (g x)  =  (f . g) x+map id xs  =  xs+map (f . g) xs  =  map f (map g xs)+f . id  =  f+id . f  =  f+(f . g) . h  =  f . (g . h)+not . not  =  id++(_ :: Int,[],_ :: Int)+(x :: Int,[],x :: Int)+(0 :: Int,[],0 :: Int)+(id _ :: Int,[],id _ :: Int)+(_ :: Bool,[],_ :: Bool)+(_ :: Char,[],_ :: Char)+(_ :: [Int],[],_ :: [Int])+(y :: Int,[],y :: Int)+(1 :: Int,[],1 :: Int)+(id x :: Int,[],id x :: Int)+(id 0 :: Int,[],id 0 :: Int)+(id (id _) :: Int,[],id (id _) :: Int)+(negate _ :: Int,[],negate _ :: Int)+(abs _ :: Int,[],abs _ :: Int)+(_ + _ :: Int,[],_ + _ :: Int)+(head _ :: Int,[],head _ :: Int)+(ord _ :: Int,[],ord _ :: Int)+(p :: Bool,[],p :: Bool)+(False :: Bool,[],False :: Bool)+(True :: Bool,[],True :: Bool)+(not _ :: Bool,[],not _ :: Bool)+(c :: Char,[],c :: Char)+('a' :: Char,[],'a' :: Char)+(xs :: [Int],[],xs :: [Int])+([] :: [Int],[],[] :: [Int])+(_:_ :: [Int],[],_:_ :: [Int])+(id :: Int -> Int,[],id :: Int -> Int)+((+) :: Int -> Int -> Int,[],(+) :: Int -> Int -> Int)+(z :: Int,[],z :: Int)+(-1 :: Int,[],-1 :: Int)+(id y :: Int,[],id y :: Int)+(id 1 :: Int,[],id 1 :: Int)+(id (id x) :: Int,[],id (id x) :: Int)+(id (id 0) :: Int,[],id (id 0) :: Int)+(id (id (id _)) :: Int,[],id (id (id _)) :: Int)+(id (negate _) :: Int,[],id (negate _) :: Int)+(id (abs _) :: Int,[],id (abs _) :: Int)+(id (_ + _) :: Int,[],id (_ + _) :: Int)+(id (head _) :: Int,[],id (head _) :: Int)+(id (ord _) :: Int,[],id (ord _) :: Int)+(negate x :: Int,[],negate x :: Int)+(negate 0 :: Int,[],negate 0 :: Int)+(negate (id _) :: Int,[],negate (id _) :: Int)+(abs x :: Int,[],abs x :: Int)+(abs 0 :: Int,[],abs 0 :: Int)+(abs (id _) :: Int,[],abs (id _) :: Int)+(_ + x :: Int,[],_ + x :: Int)+(_ + 0 :: Int,[],_ + 0 :: Int)+(_ + id _ :: Int,[],_ + id _ :: Int)+(x + _ :: Int,[],x + _ :: Int)+(0 + _ :: Int,[],0 + _ :: Int)+(id _ + _ :: Int,[],id _ + _ :: Int)+(_ * _ :: Int,[],_ * _ :: Int)+(f _ :: Int,[],f _ :: Int)+(head xs :: Int,[],head xs :: Int)+(head [] :: Int,[],head [] :: Int)+(head (_:_) :: Int,[],head (_:_) :: Int)+(ord c :: Int,[],ord c :: Int)+(ord 'a' :: Int,[],ord 'a' :: Int)+(q :: Bool,[],q :: Bool)+(not p :: Bool,[],not p :: Bool)+(not False :: Bool,[],not False :: Bool)+(not True :: Bool,[],not True :: Bool)+(not (not _) :: Bool,[],not (not _) :: Bool)+(_ || _ :: Bool,[],_ || _ :: Bool)+(d :: Char,[],d :: Char)+(' ' :: Char,[],' ' :: Char)+(ys :: [Int],[],ys :: [Int])+([0] :: [Int],[],[0] :: [Int])+(_:xs :: [Int],[],_:xs :: [Int])+([_] :: [Int],[],[_] :: [Int])+(_:_:_ :: [Int],[],_:_:_ :: [Int])+(x:_ :: [Int],[],x:_ :: [Int])+(0:_ :: [Int],[],0:_ :: [Int])+(id _:_ :: [Int],[],id _:_ :: [Int])+(tail _ :: [Int],[],tail _ :: [Int])+(_ ++ _ :: [Int],[],_ ++ _ :: [Int])+(negate :: Int -> Int,[],negate :: Int -> Int)+(abs :: Int -> Int,[],abs :: Int -> Int)+((_ +) :: Int -> Int,[],(_ +) :: Int -> Int)+((*) :: Int -> Int -> Int,[],(*) :: Int -> Int -> Int)+(not :: Bool -> Bool,[],not :: Bool -> Bool)+((||) :: Bool -> Bool -> Bool,[],(||) :: Bool -> Bool -> Bool)+(x' :: Int,[],x' :: Int)+(2 :: Int,[],2 :: Int)+(id z :: Int,[],id z :: Int)+(id (-1) :: Int,[],id (-1) :: Int)+(id (id y) :: Int,[],id (id y) :: Int)+(id (id 1) :: Int,[],id (id 1) :: Int)+(id (id (id x)) :: Int,[],id (id (id x)) :: Int)+(id (id (id 0)) :: Int,[],id (id (id 0)) :: Int)+(id (id (id (id _))) :: Int,[],id (id (id (id _))) :: Int)+(id (id (negate _)) :: Int,[],id (id (negate _)) :: Int)+(id (id (abs _)) :: Int,[],id (id (abs _)) :: Int)+(id (id (_ + _)) :: Int,[],id (id (_ + _)) :: Int)+(id (id (head _)) :: Int,[],id (id (head _)) :: Int)+(id (id (ord _)) :: Int,[],id (id (ord _)) :: Int)+(id (negate x) :: Int,[],id (negate x) :: Int)+(id (negate 0) :: Int,[],id (negate 0) :: Int)+(id (negate (id _)) :: Int,[],id (negate (id _)) :: Int)+(id (abs x) :: Int,[],id (abs x) :: Int)+(id (abs 0) :: Int,[],id (abs 0) :: Int)+(id (abs (id _)) :: Int,[],id (abs (id _)) :: Int)+(id (_ + x) :: Int,[],id (_ + x) :: Int)+(id (_ + 0) :: Int,[],id (_ + 0) :: Int)+(id (_ + id _) :: Int,[],id (_ + id _) :: Int)+(id (x + _) :: Int,[],id (x + _) :: Int)+(id (0 + _) :: Int,[],id (0 + _) :: Int)+(id (id _ + _) :: Int,[],id (id _ + _) :: Int)+(id (_ * _) :: Int,[],id (_ * _) :: Int)+(id (f _) :: Int,[],id (f _) :: Int)+(id (head xs) :: Int,[],id (head xs) :: Int)+(id (head []) :: Int,[],id (head []) :: Int)+(id (head (_:_)) :: Int,[],id (head (_:_)) :: Int)+(id (ord c) :: Int,[],id (ord c) :: Int)+(id (ord 'a') :: Int,[],id (ord 'a') :: Int)+(negate y :: Int,[],negate y :: Int)+(negate 1 :: Int,[],negate 1 :: Int)+(negate (id x) :: Int,[],negate (id x) :: Int)+(negate (id 0) :: Int,[],negate (id 0) :: Int)+(negate (id (id _)) :: Int,[],negate (id (id _)) :: Int)+(negate (negate _) :: Int,[],negate (negate _) :: Int)+(negate (abs _) :: Int,[],negate (abs _) :: Int)+(negate (_ + _) :: Int,[],negate (_ + _) :: Int)+(negate (head _) :: Int,[],negate (head _) :: Int)+(negate (ord _) :: Int,[],negate (ord _) :: Int)+(abs y :: Int,[],abs y :: Int)+(abs 1 :: Int,[],abs 1 :: Int)+(abs (id x) :: Int,[],abs (id x) :: Int)+(abs (id 0) :: Int,[],abs (id 0) :: Int)+(abs (id (id _)) :: Int,[],abs (id (id _)) :: Int)+(abs (negate _) :: Int,[],abs (negate _) :: Int)+(abs (abs _) :: Int,[],abs (abs _) :: Int)+(abs (_ + _) :: Int,[],abs (_ + _) :: Int)+(abs (head _) :: Int,[],abs (head _) :: Int)+(abs (ord _) :: Int,[],abs (ord _) :: Int)+(_ + y :: Int,[],_ + y :: Int)+(_ + 1 :: Int,[],_ + 1 :: Int)+(_ + id x :: Int,[],_ + id x :: Int)+(_ + id 0 :: Int,[],_ + id 0 :: Int)+(_ + id (id _) :: Int,[],_ + id (id _) :: Int)+(_ + negate _ :: Int,[],_ + negate _ :: Int)+(_ + abs _ :: Int,[],_ + abs _ :: Int)+(_ + (_ + _) :: Int,[],_ + (_ + _) :: Int)+(_ + head _ :: Int,[],_ + head _ :: Int)+(_ + ord _ :: Int,[],_ + ord _ :: Int)+(x + x :: Int,[],x + x :: Int)+(x + 0 :: Int,[],x + 0 :: Int)+(x + id _ :: Int,[],x + id _ :: Int)+(0 + x :: Int,[],0 + x :: Int)+(0 + 0 :: Int,[],0 + 0 :: Int)+(0 + id _ :: Int,[],0 + id _ :: Int)+(id _ + x :: Int,[],id _ + x :: Int)+(id _ + 0 :: Int,[],id _ + 0 :: Int)+(id _ + id _ :: Int,[],id _ + id _ :: Int)+(_ * x :: Int,[],_ * x :: Int)+(_ * 0 :: Int,[],_ * 0 :: Int)+(_ * id _ :: Int,[],_ * id _ :: Int)+(f x :: Int,[],f x :: Int)+(f 0 :: Int,[],f 0 :: Int)+(f (id _) :: Int,[],f (id _) :: Int)+(y + _ :: Int,[],y + _ :: Int)+(1 + _ :: Int,[],1 + _ :: Int)+(id x + _ :: Int,[],id x + _ :: Int)+(id 0 + _ :: Int,[],id 0 + _ :: Int)+(id (id _) + _ :: Int,[],id (id _) + _ :: Int)+(negate _ + _ :: Int,[],negate _ + _ :: Int)+(abs _ + _ :: Int,[],abs _ + _ :: Int)+((_ + _) + _ :: Int,[],(_ + _) + _ :: Int)+(head _ + _ :: Int,[],head _ + _ :: Int)+(ord _ + _ :: Int,[],ord _ + _ :: Int)+(x * _ :: Int,[],x * _ :: Int)+(0 * _ :: Int,[],0 * _ :: Int)+(id _ * _ :: Int,[],id _ * _ :: Int)+(g _ :: Int,[],g _ :: Int)+(head ys :: Int,[],head ys :: Int)+(head [0] :: Int,[],head [0] :: Int)+(head (_:xs) :: Int,[],head (_:xs) :: Int)+(head [_] :: Int,[],head [_] :: Int)+(head (_:_:_) :: Int,[],head (_:_:_) :: Int)+(head (x:_) :: Int,[],head (x:_) :: Int)+(head (0:_) :: Int,[],head (0:_) :: Int)+(head (id _:_) :: Int,[],head (id _:_) :: Int)+(head (tail _) :: Int,[],head (tail _) :: Int)+(head (_ ++ _) :: Int,[],head (_ ++ _) :: Int)+(ord d :: Int,[],ord d :: Int)+(ord ' ' :: Int,[],ord ' ' :: Int)+(r :: Bool,[],r :: Bool)+(not q :: Bool,[],not q :: Bool)+(not (not p) :: Bool,[],not (not p) :: Bool)+(not (not False) :: Bool,[],not (not False) :: Bool)+(not (not True) :: Bool,[],not (not True) :: Bool)+(not (not (not _)) :: Bool,[],not (not (not _)) :: Bool)+(not (_ || _) :: Bool,[],not (_ || _) :: Bool)+(_ || p :: Bool,[],_ || p :: Bool)+(_ || False :: Bool,[],_ || False :: Bool)+(_ || True :: Bool,[],_ || True :: Bool)+(_ || not _ :: Bool,[],_ || not _ :: Bool)+(p || _ :: Bool,[],p || _ :: Bool)+(False || _ :: Bool,[],False || _ :: Bool)+(True || _ :: Bool,[],True || _ :: Bool)+(not _ || _ :: Bool,[],not _ || _ :: Bool)+(_ && _ :: Bool,[],_ && _ :: Bool)+(_ == _ :: Bool,[],_ == _ :: Bool)+(_ == _ :: Bool,[],_ == _ :: Bool)+(odd _ :: Bool,[],odd _ :: Bool)+(even _ :: Bool,[],even _ :: Bool)+(elem _ _ :: Bool,[],elem _ _ :: Bool)+(e :: Char,[],e :: Char)+('b' :: Char,[],'b' :: Char)+(zs :: [Int],[],zs :: [Int])+([0,0] :: [Int],[],[0,0] :: [Int])+([1] :: [Int],[],[1] :: [Int])+(_:ys :: [Int],[],_:ys :: [Int])+(_:[0] :: [Int],[],_:[0] :: [Int])+(_:_:xs :: [Int],[],_:_:xs :: [Int])+([_,_] :: [Int],[],[_,_] :: [Int])+(_:_:_:_ :: [Int],[],_:_:_:_ :: [Int])+(_:x:_ :: [Int],[],_:x:_ :: [Int])+(_:0:_ :: [Int],[],_:0:_ :: [Int])+(_:id _:_ :: [Int],[],_:id _:_ :: [Int])+(_:tail _ :: [Int],[],_:tail _ :: [Int])+(_:(_ ++ _) :: [Int],[],_:(_ ++ _) :: [Int])+(x:xs :: [Int],[],x:xs :: [Int])+([x] :: [Int],[],[x] :: [Int])+(x:_:_ :: [Int],[],x:_:_ :: [Int])+(0:xs :: [Int],[],0:xs :: [Int])+([0] :: [Int],[],[0] :: [Int])+(0:_:_ :: [Int],[],0:_:_ :: [Int])+(id _:xs :: [Int],[],id _:xs :: [Int])+([id _] :: [Int],[],[id _] :: [Int])+(id _:_:_ :: [Int],[],id _:_:_ :: [Int])+(y:_ :: [Int],[],y:_ :: [Int])+(1:_ :: [Int],[],1:_ :: [Int])+(id x:_ :: [Int],[],id x:_ :: [Int])+(id 0:_ :: [Int],[],id 0:_ :: [Int])+(id (id _):_ :: [Int],[],id (id _):_ :: [Int])+(negate _:_ :: [Int],[],negate _:_ :: [Int])+(abs _:_ :: [Int],[],abs _:_ :: [Int])+(_ + _:_ :: [Int],[],_ + _:_ :: [Int])+(head _:_ :: [Int],[],head _:_ :: [Int])+(ord _:_ :: [Int],[],ord _:_ :: [Int])+(tail xs :: [Int],[],tail xs :: [Int])+(tail [] :: [Int],[],tail [] :: [Int])+(tail (_:_) :: [Int],[],tail (_:_) :: [Int])+(_ ++ xs :: [Int],[],_ ++ xs :: [Int])+(_ ++ [] :: [Int],[],_ ++ [] :: [Int])+(_ ++ (_:_) :: [Int],[],_ ++ (_:_) :: [Int])+(xs ++ _ :: [Int],[],xs ++ _ :: [Int])+([] ++ _ :: [Int],[],[] ++ _ :: [Int])+((_:_) ++ _ :: [Int],[],(_:_) ++ _ :: [Int])+(sort _ :: [Int],[],sort _ :: [Int])+(insert _ _ :: [Int],[],insert _ _ :: [Int])+((x +) :: Int -> Int,[],(x +) :: Int -> Int)+((0 +) :: Int -> Int,[],(0 +) :: Int -> Int)+((id _ +) :: Int -> Int,[],(id _ +) :: Int -> Int)+((_ *) :: Int -> Int,[],(_ *) :: Int -> Int)+(f :: Int -> Int,[],f :: Int -> Int)+((_ ||) :: Bool -> Bool,[],(_ ||) :: Bool -> Bool)+((&&) :: Bool -> Bool -> Bool,[],(&&) :: Bool -> Bool -> Bool)+(y' :: Int,[],y' :: Int)+(-2 :: Int,[],-2 :: Int)+(id x' :: Int,[],id x' :: Int)+(id 2 :: Int,[],id 2 :: Int)+(id (id z) :: Int,[],id (id z) :: Int)+(id (id (-1)) :: Int,[],id (id (-1)) :: Int)+(id (id (id y)) :: Int,[],id (id (id y)) :: Int)+(id (id (id 1)) :: Int,[],id (id (id 1)) :: Int)+(id (id (id (id x))) :: Int,[],id (id (id (id x))) :: Int)+(id (id (id (id 0))) :: Int,[],id (id (id (id 0))) :: Int)+(id (id (id (id (id _)))) :: Int,[],id (id (id (id (id _)))) :: Int)+(id (id (id (negate _))) :: Int,[],id (id (id (negate _))) :: Int)+(id (id (id (abs _))) :: Int,[],id (id (id (abs _))) :: Int)+(id (id (id (_ + _))) :: Int,[],id (id (id (_ + _))) :: Int)+(id (id (id (head _))) :: Int,[],id (id (id (head _))) :: Int)+(id (id (id (ord _))) :: Int,[],id (id (id (ord _))) :: Int)+(id (id (negate x)) :: Int,[],id (id (negate x)) :: Int)+(id (id (negate 0)) :: Int,[],id (id (negate 0)) :: Int)+(id (id (negate (id _))) :: Int,[],id (id (negate (id _))) :: Int)+(id (id (abs x)) :: Int,[],id (id (abs x)) :: Int)+(id (id (abs 0)) :: Int,[],id (id (abs 0)) :: Int)+(id (id (abs (id _))) :: Int,[],id (id (abs (id _))) :: Int)+(id (id (_ + x)) :: Int,[],id (id (_ + x)) :: Int)+(id (id (_ + 0)) :: Int,[],id (id (_ + 0)) :: Int)+(id (id (_ + id _)) :: Int,[],id (id (_ + id _)) :: Int)+(id (id (x + _)) :: Int,[],id (id (x + _)) :: Int)+(id (id (0 + _)) :: Int,[],id (id (0 + _)) :: Int)+(id (id (id _ + _)) :: Int,[],id (id (id _ + _)) :: Int)+(id (id (_ * _)) :: Int,[],id (id (_ * _)) :: Int)+(id (id (f _)) :: Int,[],id (id (f _)) :: Int)+(id (id (head xs)) :: Int,[],id (id (head xs)) :: Int)+(id (id (head [])) :: Int,[],id (id (head [])) :: Int)+(id (id (head (_:_))) :: Int,[],id (id (head (_:_))) :: Int)+(id (id (ord c)) :: Int,[],id (id (ord c)) :: Int)+(id (id (ord 'a')) :: Int,[],id (id (ord 'a')) :: Int)+(id (negate y) :: Int,[],id (negate y) :: Int)+(id (negate 1) :: Int,[],id (negate 1) :: Int)+(id (negate (id x)) :: Int,[],id (negate (id x)) :: Int)+(id (negate (id 0)) :: Int,[],id (negate (id 0)) :: Int)+(id (negate (id (id _))) :: Int,[],id (negate (id (id _))) :: Int)+(id (negate (negate _)) :: Int,[],id (negate (negate _)) :: Int)+(id (negate (abs _)) :: Int,[],id (negate (abs _)) :: Int)+(id (negate (_ + _)) :: Int,[],id (negate (_ + _)) :: Int)+(id (negate (head _)) :: Int,[],id (negate (head _)) :: Int)+(id (negate (ord _)) :: Int,[],id (negate (ord _)) :: Int)+(id (abs y) :: Int,[],id (abs y) :: Int)+(id (abs 1) :: Int,[],id (abs 1) :: Int)+(id (abs (id x)) :: Int,[],id (abs (id x)) :: Int)+(id (abs (id 0)) :: Int,[],id (abs (id 0)) :: Int)+(id (abs (id (id _))) :: Int,[],id (abs (id (id _))) :: Int)+(id (abs (negate _)) :: Int,[],id (abs (negate _)) :: Int)+(id (abs (abs _)) :: Int,[],id (abs (abs _)) :: Int)+(id (abs (_ + _)) :: Int,[],id (abs (_ + _)) :: Int)+(id (abs (head _)) :: Int,[],id (abs (head _)) :: Int)+(id (abs (ord _)) :: Int,[],id (abs (ord _)) :: Int)+(id (_ + y) :: Int,[],id (_ + y) :: Int)+(id (_ + 1) :: Int,[],id (_ + 1) :: Int)+(id (_ + id x) :: Int,[],id (_ + id x) :: Int)+(id (_ + id 0) :: Int,[],id (_ + id 0) :: Int)+(id (_ + id (id _)) :: Int,[],id (_ + id (id _)) :: Int)+(id (_ + negate _) :: Int,[],id (_ + negate _) :: Int)+(id (_ + abs _) :: Int,[],id (_ + abs _) :: Int)+(id (_ + (_ + _)) :: Int,[],id (_ + (_ + _)) :: Int)+(id (_ + head _) :: Int,[],id (_ + head _) :: Int)+(id (_ + ord _) :: Int,[],id (_ + ord _) :: Int)+(id (x + x) :: Int,[],id (x + x) :: Int)+(id (x + 0) :: Int,[],id (x + 0) :: Int)+(id (x + id _) :: Int,[],id (x + id _) :: Int)+(id (0 + x) :: Int,[],id (0 + x) :: Int)+(id (0 + 0) :: Int,[],id (0 + 0) :: Int)+(id (0 + id _) :: Int,[],id (0 + id _) :: Int)+(id (id _ + x) :: Int,[],id (id _ + x) :: Int)+(id (id _ + 0) :: Int,[],id (id _ + 0) :: Int)+(id (id _ + id _) :: Int,[],id (id _ + id _) :: Int)+(id (_ * x) :: Int,[],id (_ * x) :: Int)+(id (_ * 0) :: Int,[],id (_ * 0) :: Int)+(id (_ * id _) :: Int,[],id (_ * id _) :: Int)+(id (f x) :: Int,[],id (f x) :: Int)+(id (f 0) :: Int,[],id (f 0) :: Int)+(id (f (id _)) :: Int,[],id (f (id _)) :: Int)+(id (y + _) :: Int,[],id (y + _) :: Int)+(id (1 + _) :: Int,[],id (1 + _) :: Int)+(id (id x + _) :: Int,[],id (id x + _) :: Int)+(id (id 0 + _) :: Int,[],id (id 0 + _) :: Int)+(id (id (id _) + _) :: Int,[],id (id (id _) + _) :: Int)+(id (negate _ + _) :: Int,[],id (negate _ + _) :: Int)+(id (abs _ + _) :: Int,[],id (abs _ + _) :: Int)+(id ((_ + _) + _) :: Int,[],id ((_ + _) + _) :: Int)+(id (head _ + _) :: Int,[],id (head _ + _) :: Int)+(id (ord _ + _) :: Int,[],id (ord _ + _) :: Int)+(id (x * _) :: Int,[],id (x * _) :: Int)+(id (0 * _) :: Int,[],id (0 * _) :: Int)+(id (id _ * _) :: Int,[],id (id _ * _) :: Int)+(id (g _) :: Int,[],id (g _) :: Int)+(id (head ys) :: Int,[],id (head ys) :: Int)+(id (head [0]) :: Int,[],id (head [0]) :: Int)+(id (head (_:xs)) :: Int,[],id (head (_:xs)) :: Int)+(id (head [_]) :: Int,[],id (head [_]) :: Int)+(id (head (_:_:_)) :: Int,[],id (head (_:_:_)) :: Int)+(id (head (x:_)) :: Int,[],id (head (x:_)) :: Int)+(id (head (0:_)) :: Int,[],id (head (0:_)) :: Int)+(id (head (id _:_)) :: Int,[],id (head (id _:_)) :: Int)+(id (head (tail _)) :: Int,[],id (head (tail _)) :: Int)+(id (head (_ ++ _)) :: Int,[],id (head (_ ++ _)) :: Int)+(id (ord d) :: Int,[],id (ord d) :: Int)+(id (ord ' ') :: Int,[],id (ord ' ') :: Int)+(negate z :: Int,[],negate z :: Int)+(negate (-1) :: Int,[],negate (-1) :: Int)+(negate (id y) :: Int,[],negate (id y) :: Int)+(negate (id 1) :: Int,[],negate (id 1) :: Int)+(negate (id (id x)) :: Int,[],negate (id (id x)) :: Int)+(negate (id (id 0)) :: Int,[],negate (id (id 0)) :: Int)+(negate (id (id (id _))) :: Int,[],negate (id (id (id _))) :: Int)+(negate (id (negate _)) :: Int,[],negate (id (negate _)) :: Int)+(negate (id (abs _)) :: Int,[],negate (id (abs _)) :: Int)+(negate (id (_ + _)) :: Int,[],negate (id (_ + _)) :: Int)+(negate (id (head _)) :: Int,[],negate (id (head _)) :: Int)+(negate (id (ord _)) :: Int,[],negate (id (ord _)) :: Int)+(negate (negate x) :: Int,[],negate (negate x) :: Int)+(negate (negate 0) :: Int,[],negate (negate 0) :: Int)+(negate (negate (id _)) :: Int,[],negate (negate (id _)) :: Int)+(negate (abs x) :: Int,[],negate (abs x) :: Int)+(negate (abs 0) :: Int,[],negate (abs 0) :: Int)+(negate (abs (id _)) :: Int,[],negate (abs (id _)) :: Int)+(negate (_ + x) :: Int,[],negate (_ + x) :: Int)+(negate (_ + 0) :: Int,[],negate (_ + 0) :: Int)+(negate (_ + id _) :: Int,[],negate (_ + id _) :: Int)+(negate (x + _) :: Int,[],negate (x + _) :: Int)+(negate (0 + _) :: Int,[],negate (0 + _) :: Int)+(negate (id _ + _) :: Int,[],negate (id _ + _) :: Int)+(negate (_ * _) :: Int,[],negate (_ * _) :: Int)+(negate (f _) :: Int,[],negate (f _) :: Int)+(negate (head xs) :: Int,[],negate (head xs) :: Int)+(negate (head []) :: Int,[],negate (head []) :: Int)+(negate (head (_:_)) :: Int,[],negate (head (_:_)) :: Int)+(negate (ord c) :: Int,[],negate (ord c) :: Int)+(negate (ord 'a') :: Int,[],negate (ord 'a') :: Int)+(abs z :: Int,[],abs z :: Int)+(abs (-1) :: Int,[],abs (-1) :: Int)+(abs (id y) :: Int,[],abs (id y) :: Int)+(abs (id 1) :: Int,[],abs (id 1) :: Int)+(abs (id (id x)) :: Int,[],abs (id (id x)) :: Int)+(abs (id (id 0)) :: Int,[],abs (id (id 0)) :: Int)+(abs (id (id (id _))) :: Int,[],abs (id (id (id _))) :: Int)+(abs (id (negate _)) :: Int,[],abs (id (negate _)) :: Int)+(abs (id (abs _)) :: Int,[],abs (id (abs _)) :: Int)+(abs (id (_ + _)) :: Int,[],abs (id (_ + _)) :: Int)+(abs (id (head _)) :: Int,[],abs (id (head _)) :: Int)+(abs (id (ord _)) :: Int,[],abs (id (ord _)) :: Int)+(abs (negate x) :: Int,[],abs (negate x) :: Int)+(abs (negate 0) :: Int,[],abs (negate 0) :: Int)+(abs (negate (id _)) :: Int,[],abs (negate (id _)) :: Int)+(abs (abs x) :: Int,[],abs (abs x) :: Int)+(abs (abs 0) :: Int,[],abs (abs 0) :: Int)+(abs (abs (id _)) :: Int,[],abs (abs (id _)) :: Int)+(abs (_ + x) :: Int,[],abs (_ + x) :: Int)+(abs (_ + 0) :: Int,[],abs (_ + 0) :: Int)+(abs (_ + id _) :: Int,[],abs (_ + id _) :: Int)+(abs (x + _) :: Int,[],abs (x + _) :: Int)+(abs (0 + _) :: Int,[],abs (0 + _) :: Int)+(abs (id _ + _) :: Int,[],abs (id _ + _) :: Int)+(abs (_ * _) :: Int,[],abs (_ * _) :: Int)+(abs (f _) :: Int,[],abs (f _) :: Int)+(abs (head xs) :: Int,[],abs (head xs) :: Int)+(abs (head []) :: Int,[],abs (head []) :: Int)+(abs (head (_:_)) :: Int,[],abs (head (_:_)) :: Int)+(abs (ord c) :: Int,[],abs (ord c) :: Int)+(abs (ord 'a') :: Int,[],abs (ord 'a') :: Int)+(_ + z :: Int,[],_ + z :: Int)+(_ + (-1) :: Int,[],_ + (-1) :: Int)+(_ + id y :: Int,[],_ + id y :: Int)+(_ + id 1 :: Int,[],_ + id 1 :: Int)+(_ + id (id x) :: Int,[],_ + id (id x) :: Int)+(_ + id (id 0) :: Int,[],_ + id (id 0) :: Int)+(_ + id (id (id _)) :: Int,[],_ + id (id (id _)) :: Int)+(_ + id (negate _) :: Int,[],_ + id (negate _) :: Int)+(_ + id (abs _) :: Int,[],_ + id (abs _) :: Int)+(_ + id (_ + _) :: Int,[],_ + id (_ + _) :: Int)+(_ + id (head _) :: Int,[],_ + id (head _) :: Int)+(_ + id (ord _) :: Int,[],_ + id (ord _) :: Int)+(_ + negate x :: Int,[],_ + negate x :: Int)+(_ + negate 0 :: Int,[],_ + negate 0 :: Int)+(_ + negate (id _) :: Int,[],_ + negate (id _) :: Int)+(_ + abs x :: Int,[],_ + abs x :: Int)+(_ + abs 0 :: Int,[],_ + abs 0 :: Int)+(_ + abs (id _) :: Int,[],_ + abs (id _) :: Int)+(_ + (_ + x) :: Int,[],_ + (_ + x) :: Int)+(_ + (_ + 0) :: Int,[],_ + (_ + 0) :: Int)+(_ + (_ + id _) :: Int,[],_ + (_ + id _) :: Int)+(_ + (x + _) :: Int,[],_ + (x + _) :: Int)+(_ + (0 + _) :: Int,[],_ + (0 + _) :: Int)+(_ + (id _ + _) :: Int,[],_ + (id _ + _) :: Int)+(_ + _ * _ :: Int,[],_ + _ * _ :: Int)+(_ + f _ :: Int,[],_ + f _ :: Int)+(_ + head xs :: Int,[],_ + head xs :: Int)+(_ + head [] :: Int,[],_ + head [] :: Int)+(_ + head (_:_) :: Int,[],_ + head (_:_) :: Int)+(_ + ord c :: Int,[],_ + ord c :: Int)+(_ + ord 'a' :: Int,[],_ + ord 'a' :: Int)+(x + y :: Int,[],x + y :: Int)+(x + 1 :: Int,[],x + 1 :: Int)+(x + id x :: Int,[],x + id x :: Int)+(x + id 0 :: Int,[],x + id 0 :: Int)+(x + id (id _) :: Int,[],x + id (id _) :: Int)+(x + negate _ :: Int,[],x + negate _ :: Int)+(x + abs _ :: Int,[],x + abs _ :: Int)+(x + (_ + _) :: Int,[],x + (_ + _) :: Int)+(x + head _ :: Int,[],x + head _ :: Int)+(x + ord _ :: Int,[],x + ord _ :: Int)+(0 + y :: Int,[],0 + y :: Int)+(0 + 1 :: Int,[],0 + 1 :: Int)+(0 + id x :: Int,[],0 + id x :: Int)+(0 + id 0 :: Int,[],0 + id 0 :: Int)+(0 + id (id _) :: Int,[],0 + id (id _) :: Int)+(0 + negate _ :: Int,[],0 + negate _ :: Int)+(0 + abs _ :: Int,[],0 + abs _ :: Int)+(0 + (_ + _) :: Int,[],0 + (_ + _) :: Int)+(0 + head _ :: Int,[],0 + head _ :: Int)+(0 + ord _ :: Int,[],0 + ord _ :: Int)+(id _ + y :: Int,[],id _ + y :: Int)+(id _ + 1 :: Int,[],id _ + 1 :: Int)+(id _ + id x :: Int,[],id _ + id x :: Int)+(id _ + id 0 :: Int,[],id _ + id 0 :: Int)+(id _ + id (id _) :: Int,[],id _ + id (id _) :: Int)+(id _ + negate _ :: Int,[],id _ + negate _ :: Int)+(id _ + abs _ :: Int,[],id _ + abs _ :: Int)+(id _ + (_ + _) :: Int,[],id _ + (_ + _) :: Int)+(id _ + head _ :: Int,[],id _ + head _ :: Int)+(id _ + ord _ :: Int,[],id _ + ord _ :: Int)+(_ * y :: Int,[],_ * y :: Int)+(_ * 1 :: Int,[],_ * 1 :: Int)+(_ * id x :: Int,[],_ * id x :: Int)+(_ * id 0 :: Int,[],_ * id 0 :: Int)+(_ * id (id _) :: Int,[],_ * id (id _) :: Int)+(_ * negate _ :: Int,[],_ * negate _ :: Int)+(_ * abs _ :: Int,[],_ * abs _ :: Int)+(_ * (_ + _) :: Int,[],_ * (_ + _) :: Int)+(_ * head _ :: Int,[],_ * head _ :: Int)+(_ * ord _ :: Int,[],_ * ord _ :: Int)+(f y :: Int,[],f y :: Int)+(f 1 :: Int,[],f 1 :: Int)+(f (id x) :: Int,[],f (id x) :: Int)+(f (id 0) :: Int,[],f (id 0) :: Int)+(f (id (id _)) :: Int,[],f (id (id _)) :: Int)+(f (negate _) :: Int,[],f (negate _) :: Int)+(f (abs _) :: Int,[],f (abs _) :: Int)+(f (_ + _) :: Int,[],f (_ + _) :: Int)+(f (head _) :: Int,[],f (head _) :: Int)+(f (ord _) :: Int,[],f (ord _) :: Int)+(y + x :: Int,[],y + x :: Int)+(y + 0 :: Int,[],y + 0 :: Int)+(y + id _ :: Int,[],y + id _ :: Int)+(1 + x :: Int,[],1 + x :: Int)+(1 + 0 :: Int,[],1 + 0 :: Int)+(1 + id _ :: Int,[],1 + id _ :: Int)+(id x + x :: Int,[],id x + x :: Int)+(id x + 0 :: Int,[],id x + 0 :: Int)+(id x + id _ :: Int,[],id x + id _ :: Int)+(id 0 + x :: Int,[],id 0 + x :: Int)+(id 0 + 0 :: Int,[],id 0 + 0 :: Int)+(id 0 + id _ :: Int,[],id 0 + id _ :: Int)+(id (id _) + x :: Int,[],id (id _) + x :: Int)+(id (id _) + 0 :: Int,[],id (id _) + 0 :: Int)+(id (id _) + id _ :: Int,[],id (id _) + id _ :: Int)+(negate _ + x :: Int,[],negate _ + x :: Int)+(negate _ + 0 :: Int,[],negate _ + 0 :: Int)+(negate _ + id _ :: Int,[],negate _ + id _ :: Int)+(abs _ + x :: Int,[],abs _ + x :: Int)+(abs _ + 0 :: Int,[],abs _ + 0 :: Int)+(abs _ + id _ :: Int,[],abs _ + id _ :: Int)+((_ + _) + x :: Int,[],(_ + _) + x :: Int)+((_ + _) + 0 :: Int,[],(_ + _) + 0 :: Int)+((_ + _) + id _ :: Int,[],(_ + _) + id _ :: Int)+(head _ + x :: Int,[],head _ + x :: Int)+(head _ + 0 :: Int,[],head _ + 0 :: Int)+(head _ + id _ :: Int,[],head _ + id _ :: Int)+(ord _ + x :: Int,[],ord _ + x :: Int)+(ord _ + 0 :: Int,[],ord _ + 0 :: Int)+(ord _ + id _ :: Int,[],ord _ + id _ :: Int)+(x * x :: Int,[],x * x :: Int)+(x * 0 :: Int,[],x * 0 :: Int)+(x * id _ :: Int,[],x * id _ :: Int)+(0 * x :: Int,[],0 * x :: Int)+(0 * 0 :: Int,[],0 * 0 :: Int)+(0 * id _ :: Int,[],0 * id _ :: Int)+(id _ * x :: Int,[],id _ * x :: Int)+(id _ * 0 :: Int,[],id _ * 0 :: Int)+(id _ * id _ :: Int,[],id _ * id _ :: Int)+(g x :: Int,[],g x :: Int)+(g 0 :: Int,[],g 0 :: Int)+(g (id _) :: Int,[],g (id _) :: Int)+(z + _ :: Int,[],z + _ :: Int)+((-1) + _ :: Int,[],(-1) + _ :: Int)+(id y + _ :: Int,[],id y + _ :: Int)+(id 1 + _ :: Int,[],id 1 + _ :: Int)+(id (id x) + _ :: Int,[],id (id x) + _ :: Int)+(id (id 0) + _ :: Int,[],id (id 0) + _ :: Int)+(id (id (id _)) + _ :: Int,[],id (id (id _)) + _ :: Int)+(id (negate _) + _ :: Int,[],id (negate _) + _ :: Int)+(id (abs _) + _ :: Int,[],id (abs _) + _ :: Int)+(id (_ + _) + _ :: Int,[],id (_ + _) + _ :: Int)+(id (head _) + _ :: Int,[],id (head _) + _ :: Int)+(id (ord _) + _ :: Int,[],id (ord _) + _ :: Int)+(negate x + _ :: Int,[],negate x + _ :: Int)+(negate 0 + _ :: Int,[],negate 0 + _ :: Int)+(negate (id _) + _ :: Int,[],negate (id _) + _ :: Int)+(abs x + _ :: Int,[],abs x + _ :: Int)+(abs 0 + _ :: Int,[],abs 0 + _ :: Int)+(abs (id _) + _ :: Int,[],abs (id _) + _ :: Int)+((_ + x) + _ :: Int,[],(_ + x) + _ :: Int)+((_ + 0) + _ :: Int,[],(_ + 0) + _ :: Int)+((_ + id _) + _ :: Int,[],(_ + id _) + _ :: Int)+((x + _) + _ :: Int,[],(x + _) + _ :: Int)+((0 + _) + _ :: Int,[],(0 + _) + _ :: Int)+((id _ + _) + _ :: Int,[],(id _ + _) + _ :: Int)+(_ * _ + _ :: Int,[],_ * _ + _ :: Int)+(f _ + _ :: Int,[],f _ + _ :: Int)+(head xs + _ :: Int,[],head xs + _ :: Int)+(head [] + _ :: Int,[],head [] + _ :: Int)+(head (_:_) + _ :: Int,[],head (_:_) + _ :: Int)+(ord c + _ :: Int,[],ord c + _ :: Int)+(ord 'a' + _ :: Int,[],ord 'a' + _ :: Int)+(y * _ :: Int,[],y * _ :: Int)+(1 * _ :: Int,[],1 * _ :: Int)+(id x * _ :: Int,[],id x * _ :: Int)+(id 0 * _ :: Int,[],id 0 * _ :: Int)+(id (id _) * _ :: Int,[],id (id _) * _ :: Int)+(negate _ * _ :: Int,[],negate _ * _ :: Int)+(abs _ * _ :: Int,[],abs _ * _ :: Int)+((_ + _) * _ :: Int,[],(_ + _) * _ :: Int)+(head _ * _ :: Int,[],head _ * _ :: Int)+(ord _ * _ :: Int,[],ord _ * _ :: Int)+(h _ :: Int,[],h _ :: Int)+(head zs :: Int,[],head zs :: Int)+(head [0,0] :: Int,[],head [0,0] :: Int)+(head [1] :: Int,[],head [1] :: Int)+(head (_:ys) :: Int,[],head (_:ys) :: Int)+(head (_:[0]) :: Int,[],head (_:[0]) :: Int)+(head (_:_:xs) :: Int,[],head (_:_:xs) :: Int)+(head [_,_] :: Int,[],head [_,_] :: Int)+(head (_:_:_:_) :: Int,[],head (_:_:_:_) :: Int)+(head (_:x:_) :: Int,[],head (_:x:_) :: Int)+(head (_:0:_) :: Int,[],head (_:0:_) :: Int)+(head (_:id _:_) :: Int,[],head (_:id _:_) :: Int)+(head (_:tail _) :: Int,[],head (_:tail _) :: Int)+(head (_:(_ ++ _)) :: Int,[],head (_:(_ ++ _)) :: Int)+(head (x:xs) :: Int,[],head (x:xs) :: Int)+(head [x] :: Int,[],head [x] :: Int)+(head (x:_:_) :: Int,[],head (x:_:_) :: Int)+(head (0:xs) :: Int,[],head (0:xs) :: Int)+(head [0] :: Int,[],head [0] :: Int)+(head (0:_:_) :: Int,[],head (0:_:_) :: Int)+(head (id _:xs) :: Int,[],head (id _:xs) :: Int)+(head [id _] :: Int,[],head [id _] :: Int)+(head (id _:_:_) :: Int,[],head (id _:_:_) :: Int)+(head (y:_) :: Int,[],head (y:_) :: Int)+(head (1:_) :: Int,[],head (1:_) :: Int)+(head (id x:_) :: Int,[],head (id x:_) :: Int)+(head (id 0:_) :: Int,[],head (id 0:_) :: Int)+(head (id (id _):_) :: Int,[],head (id (id _):_) :: Int)+(head (negate _:_) :: Int,[],head (negate _:_) :: Int)+(head (abs _:_) :: Int,[],head (abs _:_) :: Int)+(head (_ + _:_) :: Int,[],head (_ + _:_) :: Int)+(head (head _:_) :: Int,[],head (head _:_) :: Int)+(head (ord _:_) :: Int,[],head (ord _:_) :: Int)+(head (tail xs) :: Int,[],head (tail xs) :: Int)+(head (tail []) :: Int,[],head (tail []) :: Int)+(head (tail (_:_)) :: Int,[],head (tail (_:_)) :: Int)+(head (_ ++ xs) :: Int,[],head (_ ++ xs) :: Int)+(head (_ ++ []) :: Int,[],head (_ ++ []) :: Int)+(head (_ ++ (_:_)) :: Int,[],head (_ ++ (_:_)) :: Int)+(head (xs ++ _) :: Int,[],head (xs ++ _) :: Int)+(head ([] ++ _) :: Int,[],head ([] ++ _) :: Int)+(head ((_:_) ++ _) :: Int,[],head ((_:_) ++ _) :: Int)+(head (sort _) :: Int,[],head (sort _) :: Int)+(head (insert _ _) :: Int,[],head (insert _ _) :: Int)+(ord e :: Int,[],ord e :: Int)+(ord 'b' :: Int,[],ord 'b' :: Int)+(p' :: Bool,[],p' :: Bool)+(not r :: Bool,[],not r :: Bool)+(not (not q) :: Bool,[],not (not q) :: Bool)+(not (not (not p)) :: Bool,[],not (not (not p)) :: Bool)+(not (not (not False)) :: Bool,[],not (not (not False)) :: Bool)+(not (not (not True)) :: Bool,[],not (not (not True)) :: Bool)+(not (not (not (not _))) :: Bool,[],not (not (not (not _))) :: Bool)+(not (not (_ || _)) :: Bool,[],not (not (_ || _)) :: Bool)+(not (_ || p) :: Bool,[],not (_ || p) :: Bool)+(not (_ || False) :: Bool,[],not (_ || False) :: Bool)+(not (_ || True) :: Bool,[],not (_ || True) :: Bool)+(not (_ || not _) :: Bool,[],not (_ || not _) :: Bool)+(not (p || _) :: Bool,[],not (p || _) :: Bool)+(not (False || _) :: Bool,[],not (False || _) :: Bool)+(not (True || _) :: Bool,[],not (True || _) :: Bool)+(not (not _ || _) :: Bool,[],not (not _ || _) :: Bool)+(not (_ && _) :: Bool,[],not (_ && _) :: Bool)+(not (_ == _) :: Bool,[],not (_ == _) :: Bool)+(not (_ == _) :: Bool,[],not (_ == _) :: Bool)+(not (odd _) :: Bool,[],not (odd _) :: Bool)+(not (even _) :: Bool,[],not (even _) :: Bool)+(not (elem _ _) :: Bool,[],not (elem _ _) :: Bool)+(_ || q :: Bool,[],_ || q :: Bool)+(_ || not p :: Bool,[],_ || not p :: Bool)+(_ || not False :: Bool,[],_ || not False :: Bool)+(_ || not True :: Bool,[],_ || not True :: Bool)+(_ || not (not _) :: Bool,[],_ || not (not _) :: Bool)+(_ || (_ || _) :: Bool,[],_ || (_ || _) :: Bool)+(p || p :: Bool,[],p || p :: Bool)+(p || False :: Bool,[],p || False :: Bool)+(p || True :: Bool,[],p || True :: Bool)+(p || not _ :: Bool,[],p || not _ :: Bool)+(False || p :: Bool,[],False || p :: Bool)+(False || False :: Bool,[],False || False :: Bool)+(False || True :: Bool,[],False || True :: Bool)+(False || not _ :: Bool,[],False || not _ :: Bool)+(True || p :: Bool,[],True || p :: Bool)+(True || False :: Bool,[],True || False :: Bool)+(True || True :: Bool,[],True || True :: Bool)+(True || not _ :: Bool,[],True || not _ :: Bool)+(not _ || p :: Bool,[],not _ || p :: Bool)+(not _ || False :: Bool,[],not _ || False :: Bool)+(not _ || True :: Bool,[],not _ || True :: Bool)+(not _ || not _ :: Bool,[],not _ || not _ :: Bool)+(_ && p :: Bool,[],_ && p :: Bool)+(_ && False :: Bool,[],_ && False :: Bool)+(_ && True :: Bool,[],_ && True :: Bool)+(_ && not _ :: Bool,[],_ && not _ :: Bool)+(q || _ :: Bool,[],q || _ :: Bool)+(not p || _ :: Bool,[],not p || _ :: Bool)+(not False || _ :: Bool,[],not False || _ :: Bool)+(not True || _ :: Bool,[],not True || _ :: Bool)+(not (not _) || _ :: Bool,[],not (not _) || _ :: Bool)+((_ || _) || _ :: Bool,[],(_ || _) || _ :: Bool)+(p && _ :: Bool,[],p && _ :: Bool)+(False && _ :: Bool,[],False && _ :: Bool)+(True && _ :: Bool,[],True && _ :: Bool)+(not _ && _ :: Bool,[],not _ && _ :: Bool)+(_ ==> _ :: Bool,[],_ ==> _ :: Bool)+(_ == x :: Bool,[],_ == x :: Bool)+(_ == 0 :: Bool,[],_ == 0 :: Bool)+(_ == id _ :: Bool,[],_ == id _ :: Bool)+(x == _ :: Bool,[],x == _ :: Bool)+(0 == _ :: Bool,[],0 == _ :: Bool)+(id _ == _ :: Bool,[],id _ == _ :: Bool)+(_ == p :: Bool,[],_ == p :: Bool)+(_ == False :: Bool,[],_ == False :: Bool)+(_ == True :: Bool,[],_ == True :: Bool)+(_ == not _ :: Bool,[],_ == not _ :: Bool)+(p == _ :: Bool,[],p == _ :: Bool)+(False == _ :: Bool,[],False == _ :: Bool)+(True == _ :: Bool,[],True == _ :: Bool)+(not _ == _ :: Bool,[],not _ == _ :: Bool)+(_ <= _ :: Bool,[],_ <= _ :: Bool)+(_ <= _ :: Bool,[],_ <= _ :: Bool)+(odd x :: Bool,[],odd x :: Bool)+(odd 0 :: Bool,[],odd 0 :: Bool)+(odd (id _) :: Bool,[],odd (id _) :: Bool)+(even x :: Bool,[],even x :: Bool)+(even 0 :: Bool,[],even 0 :: Bool)+(even (id _) :: Bool,[],even (id _) :: Bool)+(elem _ xs :: Bool,[],elem _ xs :: Bool)+(elem _ [] :: Bool,[],elem _ [] :: Bool)+(elem _ (_:_) :: Bool,[],elem _ (_:_) :: Bool)+(elem x _ :: Bool,[],elem x _ :: Bool)+(elem 0 _ :: Bool,[],elem 0 _ :: Bool)+(elem (id _) _ :: Bool,[],elem (id _) _ :: Bool)+(c' :: Char,[],c' :: Char)+('A' :: Char,[],'A' :: Char)+(xs' :: [Int],[],xs' :: [Int])+([0,0,0] :: [Int],[],[0,0,0] :: [Int])+([0,1] :: [Int],[],[0,1] :: [Int])+([1,0] :: [Int],[],[1,0] :: [Int])+([-1] :: [Int],[],[-1] :: [Int])+(_:zs :: [Int],[],_:zs :: [Int])+(_:[0,0] :: [Int],[],_:[0,0] :: [Int])+(_:[1] :: [Int],[],_:[1] :: [Int])+(_:_:ys :: [Int],[],_:_:ys :: [Int])+(_:_:[0] :: [Int],[],_:_:[0] :: [Int])+(_:_:_:xs :: [Int],[],_:_:_:xs :: [Int])+([_,_,_] :: [Int],[],[_,_,_] :: [Int])+(_:_:_:_:_ :: [Int],[],_:_:_:_:_ :: [Int])+(_:_:x:_ :: [Int],[],_:_:x:_ :: [Int])+(_:_:0:_ :: [Int],[],_:_:0:_ :: [Int])+(_:_:id _:_ :: [Int],[],_:_:id _:_ :: [Int])+(_:_:tail _ :: [Int],[],_:_:tail _ :: [Int])+(_:_:(_ ++ _) :: [Int],[],_:_:(_ ++ _) :: [Int])+(_:x:xs :: [Int],[],_:x:xs :: [Int])+([_,x] :: [Int],[],[_,x] :: [Int])+(_:x:_:_ :: [Int],[],_:x:_:_ :: [Int])+(_:0:xs :: [Int],[],_:0:xs :: [Int])+([_,0] :: [Int],[],[_,0] :: [Int])+(_:0:_:_ :: [Int],[],_:0:_:_ :: [Int])+(_:id _:xs :: [Int],[],_:id _:xs :: [Int])+([_,id _] :: [Int],[],[_,id _] :: [Int])+(_:id _:_:_ :: [Int],[],_:id _:_:_ :: [Int])+(_:y:_ :: [Int],[],_:y:_ :: [Int])+(_:1:_ :: [Int],[],_:1:_ :: [Int])+(_:id x:_ :: [Int],[],_:id x:_ :: [Int])+(_:id 0:_ :: [Int],[],_:id 0:_ :: [Int])+(_:id (id _):_ :: [Int],[],_:id (id _):_ :: [Int])+(_:negate _:_ :: [Int],[],_:negate _:_ :: [Int])+(_:abs _:_ :: [Int],[],_:abs _:_ :: [Int])+(_:_ + _:_ :: [Int],[],_:_ + _:_ :: [Int])+(_:head _:_ :: [Int],[],_:head _:_ :: [Int])+(_:ord _:_ :: [Int],[],_:ord _:_ :: [Int])+(_:tail xs :: [Int],[],_:tail xs :: [Int])+(_:tail [] :: [Int],[],_:tail [] :: [Int])+(_:tail (_:_) :: [Int],[],_:tail (_:_) :: [Int])+(_:(_ ++ xs) :: [Int],[],_:(_ ++ xs) :: [Int])+(_:(_ ++ []) :: [Int],[],_:(_ ++ []) :: [Int])+(_:(_ ++ (_:_)) :: [Int],[],_:(_ ++ (_:_)) :: [Int])+(_:(xs ++ _) :: [Int],[],_:(xs ++ _) :: [Int])+(_:([] ++ _) :: [Int],[],_:([] ++ _) :: [Int])+(_:((_:_) ++ _) :: [Int],[],_:((_:_) ++ _) :: [Int])+(_:sort _ :: [Int],[],_:sort _ :: [Int])+(_:insert _ _ :: [Int],[],_:insert _ _ :: [Int])+(x:ys :: [Int],[],x:ys :: [Int])+(x:[0] :: [Int],[],x:[0] :: [Int])+(x:_:xs :: [Int],[],x:_:xs :: [Int])+([x,_] :: [Int],[],[x,_] :: [Int])+(x:_:_:_ :: [Int],[],x:_:_:_ :: [Int])+(x:x:_ :: [Int],[],x:x:_ :: [Int])+(x:0:_ :: [Int],[],x:0:_ :: [Int])+(x:id _:_ :: [Int],[],x:id _:_ :: [Int])+(x:tail _ :: [Int],[],x:tail _ :: [Int])+(x:(_ ++ _) :: [Int],[],x:(_ ++ _) :: [Int])+(0:ys :: [Int],[],0:ys :: [Int])+(0:[0] :: [Int],[],0:[0] :: [Int])+(0:_:xs :: [Int],[],0:_:xs :: [Int])+([0,_] :: [Int],[],[0,_] :: [Int])+(0:_:_:_ :: [Int],[],0:_:_:_ :: [Int])+(0:x:_ :: [Int],[],0:x:_ :: [Int])+(0:0:_ :: [Int],[],0:0:_ :: [Int])+(0:id _:_ :: [Int],[],0:id _:_ :: [Int])+(0:tail _ :: [Int],[],0:tail _ :: [Int])+(0:(_ ++ _) :: [Int],[],0:(_ ++ _) :: [Int])+(id _:ys :: [Int],[],id _:ys :: [Int])+(id _:[0] :: [Int],[],id _:[0] :: [Int])+(id _:_:xs :: [Int],[],id _:_:xs :: [Int])+([id _,_] :: [Int],[],[id _,_] :: [Int])+(id _:_:_:_ :: [Int],[],id _:_:_:_ :: [Int])+(id _:x:_ :: [Int],[],id _:x:_ :: [Int])+(id _:0:_ :: [Int],[],id _:0:_ :: [Int])+(id _:id _:_ :: [Int],[],id _:id _:_ :: [Int])+(id _:tail _ :: [Int],[],id _:tail _ :: [Int])+(id _:(_ ++ _) :: [Int],[],id _:(_ ++ _) :: [Int])+(y:xs :: [Int],[],y:xs :: [Int])+([y] :: [Int],[],[y] :: [Int])+(y:_:_ :: [Int],[],y:_:_ :: [Int])+(1:xs :: [Int],[],1:xs :: [Int])+([1] :: [Int],[],[1] :: [Int])+(1:_:_ :: [Int],[],1:_:_ :: [Int])+(id x:xs :: [Int],[],id x:xs :: [Int])+([id x] :: [Int],[],[id x] :: [Int])+(id x:_:_ :: [Int],[],id x:_:_ :: [Int])+(id 0:xs :: [Int],[],id 0:xs :: [Int])+([id 0] :: [Int],[],[id 0] :: [Int])+(id 0:_:_ :: [Int],[],id 0:_:_ :: [Int])+(id (id _):xs :: [Int],[],id (id _):xs :: [Int])+([id (id _)] :: [Int],[],[id (id _)] :: [Int])+(id (id _):_:_ :: [Int],[],id (id _):_:_ :: [Int])+(negate _:xs :: [Int],[],negate _:xs :: [Int])+([negate _] :: [Int],[],[negate _] :: [Int])+(negate _:_:_ :: [Int],[],negate _:_:_ :: [Int])+(abs _:xs :: [Int],[],abs _:xs :: [Int])+([abs _] :: [Int],[],[abs _] :: [Int])+(abs _:_:_ :: [Int],[],abs _:_:_ :: [Int])+(_ + _:xs :: [Int],[],_ + _:xs :: [Int])+([_ + _] :: [Int],[],[_ + _] :: [Int])+(_ + _:_:_ :: [Int],[],_ + _:_:_ :: [Int])+(head _:xs :: [Int],[],head _:xs :: [Int])+([head _] :: [Int],[],[head _] :: [Int])+(head _:_:_ :: [Int],[],head _:_:_ :: [Int])+(ord _:xs :: [Int],[],ord _:xs :: [Int])+([ord _] :: [Int],[],[ord _] :: [Int])+(ord _:_:_ :: [Int],[],ord _:_:_ :: [Int])+(z:_ :: [Int],[],z:_ :: [Int])+((-1):_ :: [Int],[],(-1):_ :: [Int])+(id y:_ :: [Int],[],id y:_ :: [Int])+(id 1:_ :: [Int],[],id 1:_ :: [Int])+(id (id x):_ :: [Int],[],id (id x):_ :: [Int])+(id (id 0):_ :: [Int],[],id (id 0):_ :: [Int])+(id (id (id _)):_ :: [Int],[],id (id (id _)):_ :: [Int])+(id (negate _):_ :: [Int],[],id (negate _):_ :: [Int])+(id (abs _):_ :: [Int],[],id (abs _):_ :: [Int])+(id (_ + _):_ :: [Int],[],id (_ + _):_ :: [Int])+(id (head _):_ :: [Int],[],id (head _):_ :: [Int])+(id (ord _):_ :: [Int],[],id (ord _):_ :: [Int])+(negate x:_ :: [Int],[],negate x:_ :: [Int])+(negate 0:_ :: [Int],[],negate 0:_ :: [Int])+(negate (id _):_ :: [Int],[],negate (id _):_ :: [Int])+(abs x:_ :: [Int],[],abs x:_ :: [Int])+(abs 0:_ :: [Int],[],abs 0:_ :: [Int])+(abs (id _):_ :: [Int],[],abs (id _):_ :: [Int])+(_ + x:_ :: [Int],[],_ + x:_ :: [Int])+(_ + 0:_ :: [Int],[],_ + 0:_ :: [Int])+(_ + id _:_ :: [Int],[],_ + id _:_ :: [Int])+(x + _:_ :: [Int],[],x + _:_ :: [Int])+(0 + _:_ :: [Int],[],0 + _:_ :: [Int])+(id _ + _:_ :: [Int],[],id _ + _:_ :: [Int])+(_ * _:_ :: [Int],[],_ * _:_ :: [Int])+(f _:_ :: [Int],[],f _:_ :: [Int])+(head xs:_ :: [Int],[],head xs:_ :: [Int])+(head []:_ :: [Int],[],head []:_ :: [Int])+(head (_:_):_ :: [Int],[],head (_:_):_ :: [Int])+(ord c:_ :: [Int],[],ord c:_ :: [Int])+(ord 'a':_ :: [Int],[],ord 'a':_ :: [Int])+(tail ys :: [Int],[],tail ys :: [Int])+(tail [0] :: [Int],[],tail [0] :: [Int])+(tail (_:xs) :: [Int],[],tail (_:xs) :: [Int])+(tail [_] :: [Int],[],tail [_] :: [Int])+(tail (_:_:_) :: [Int],[],tail (_:_:_) :: [Int])+(tail (x:_) :: [Int],[],tail (x:_) :: [Int])+(tail (0:_) :: [Int],[],tail (0:_) :: [Int])+(tail (id _:_) :: [Int],[],tail (id _:_) :: [Int])+(tail (tail _) :: [Int],[],tail (tail _) :: [Int])+(tail (_ ++ _) :: [Int],[],tail (_ ++ _) :: [Int])+(_ ++ ys :: [Int],[],_ ++ ys :: [Int])+(_ ++ [0] :: [Int],[],_ ++ [0] :: [Int])+(_ ++ (_:xs) :: [Int],[],_ ++ (_:xs) :: [Int])+(_ ++ [_] :: [Int],[],_ ++ [_] :: [Int])+(_ ++ (_:_:_) :: [Int],[],_ ++ (_:_:_) :: [Int])+(_ ++ (x:_) :: [Int],[],_ ++ (x:_) :: [Int])+(_ ++ (0:_) :: [Int],[],_ ++ (0:_) :: [Int])+(_ ++ (id _:_) :: [Int],[],_ ++ (id _:_) :: [Int])+(_ ++ tail _ :: [Int],[],_ ++ tail _ :: [Int])+(_ ++ (_ ++ _) :: [Int],[],_ ++ (_ ++ _) :: [Int])+(xs ++ xs :: [Int],[],xs ++ xs :: [Int])+(xs ++ [] :: [Int],[],xs ++ [] :: [Int])+(xs ++ (_:_) :: [Int],[],xs ++ (_:_) :: [Int])+([] ++ xs :: [Int],[],[] ++ xs :: [Int])+([] ++ [] :: [Int],[],[] ++ [] :: [Int])+([] ++ (_:_) :: [Int],[],[] ++ (_:_) :: [Int])+((_:_) ++ xs :: [Int],[],(_:_) ++ xs :: [Int])+((_:_) ++ [] :: [Int],[],(_:_) ++ [] :: [Int])+((_:_) ++ (_:_) :: [Int],[],(_:_) ++ (_:_) :: [Int])+(ys ++ _ :: [Int],[],ys ++ _ :: [Int])+([0] ++ _ :: [Int],[],[0] ++ _ :: [Int])+((_:xs) ++ _ :: [Int],[],(_:xs) ++ _ :: [Int])+([_] ++ _ :: [Int],[],[_] ++ _ :: [Int])+((_:_:_) ++ _ :: [Int],[],(_:_:_) ++ _ :: [Int])+((x:_) ++ _ :: [Int],[],(x:_) ++ _ :: [Int])+((0:_) ++ _ :: [Int],[],(0:_) ++ _ :: [Int])+((id _:_) ++ _ :: [Int],[],(id _:_) ++ _ :: [Int])+(tail _ ++ _ :: [Int],[],tail _ ++ _ :: [Int])+((_ ++ _) ++ _ :: [Int],[],(_ ++ _) ++ _ :: [Int])+(sort xs :: [Int],[],sort xs :: [Int])+(sort [] :: [Int],[],sort [] :: [Int])+(sort (_:_) :: [Int],[],sort (_:_) :: [Int])+(insert _ xs :: [Int],[],insert _ xs :: [Int])+(insert _ [] :: [Int],[],insert _ [] :: [Int])+(insert _ (_:_) :: [Int],[],insert _ (_:_) :: [Int])+(insert x _ :: [Int],[],insert x _ :: [Int])+(insert 0 _ :: [Int],[],insert 0 _ :: [Int])+(insert (id _) _ :: [Int],[],insert (id _) _ :: [Int])+((y +) :: Int -> Int,[],(y +) :: Int -> Int)+((1 +) :: Int -> Int,[],(1 +) :: Int -> Int)+((id x +) :: Int -> Int,[],(id x +) :: Int -> Int)+((id 0 +) :: Int -> Int,[],(id 0 +) :: Int -> Int)+((id (id _) +) :: Int -> Int,[],(id (id _) +) :: Int -> Int)+((negate _ +) :: Int -> Int,[],(negate _ +) :: Int -> Int)+((abs _ +) :: Int -> Int,[],(abs _ +) :: Int -> Int)+(((_ + _) +) :: Int -> Int,[],((_ + _) +) :: Int -> Int)+((head _ +) :: Int -> Int,[],(head _ +) :: Int -> Int)+((ord _ +) :: Int -> Int,[],(ord _ +) :: Int -> Int)+((x *) :: Int -> Int,[],(x *) :: Int -> Int)+((0 *) :: Int -> Int,[],(0 *) :: Int -> Int)+((id _ *) :: Int -> Int,[],(id _ *) :: Int -> Int)+(g :: Int -> Int,[],g :: Int -> Int)+((p ||) :: Bool -> Bool,[],(p ||) :: Bool -> Bool)+((False ||) :: Bool -> Bool,[],(False ||) :: Bool -> Bool)+((True ||) :: Bool -> Bool,[],(True ||) :: Bool -> Bool)+((not _ ||) :: Bool -> Bool,[],(not _ ||) :: Bool -> Bool)+((_ &&) :: Bool -> Bool,[],(_ &&) :: Bool -> Bool)+((==>) :: Bool -> Bool -> Bool,[],(==>) :: Bool -> Bool -> Bool)+(z' :: Int,[],z' :: Int)+(3 :: Int,[],3 :: Int)+(id y' :: Int,[],id y' :: Int)+(id (-2) :: Int,[],id (-2) :: Int)+(id (id x') :: Int,[],id (id x') :: Int)+(id (id 2) :: Int,[],id (id 2) :: Int)+(id (id (id z)) :: Int,[],id (id (id z)) :: Int)+(id (id (id (-1))) :: Int,[],id (id (id (-1))) :: Int)+(id (id (id (id y))) :: Int,[],id (id (id (id y))) :: Int)+(id (id (id (id 1))) :: Int,[],id (id (id (id 1))) :: Int)+(id (id (id (id (id x)))) :: Int,[],id (id (id (id (id x)))) :: Int)+(id (id (id (id (id 0)))) :: Int,[],id (id (id (id (id 0)))) :: Int)+(id (id (id (id (id (id _))))) :: Int,[],id (id (id (id (id (id _))))) :: Int)+(id (id (id (id (negate _)))) :: Int,[],id (id (id (id (negate _)))) :: Int)+(id (id (id (id (abs _)))) :: Int,[],id (id (id (id (abs _)))) :: Int)+(id (id (id (id (_ + _)))) :: Int,[],id (id (id (id (_ + _)))) :: Int)+(id (id (id (id (head _)))) :: Int,[],id (id (id (id (head _)))) :: Int)+(id (id (id (id (ord _)))) :: Int,[],id (id (id (id (ord _)))) :: Int)+(id (id (id (negate x))) :: Int,[],id (id (id (negate x))) :: Int)+(id (id (id (negate 0))) :: Int,[],id (id (id (negate 0))) :: Int)+(id (id (id (negate (id _)))) :: Int,[],id (id (id (negate (id _)))) :: Int)+(id (id (id (abs x))) :: Int,[],id (id (id (abs x))) :: Int)+(id (id (id (abs 0))) :: Int,[],id (id (id (abs 0))) :: Int)+(id (id (id (abs (id _)))) :: Int,[],id (id (id (abs (id _)))) :: Int)+(id (id (id (_ + x))) :: Int,[],id (id (id (_ + x))) :: Int)+(id (id (id (_ + 0))) :: Int,[],id (id (id (_ + 0))) :: Int)+(id (id (id (_ + id _))) :: Int,[],id (id (id (_ + id _))) :: Int)+(id (id (id (x + _))) :: Int,[],id (id (id (x + _))) :: Int)+(id (id (id (0 + _))) :: Int,[],id (id (id (0 + _))) :: Int)+(id (id (id (id _ + _))) :: Int,[],id (id (id (id _ + _))) :: Int)+(id (id (id (_ * _))) :: Int,[],id (id (id (_ * _))) :: Int)+(id (id (id (f _))) :: Int,[],id (id (id (f _))) :: Int)+(id (id (id (head xs))) :: Int,[],id (id (id (head xs))) :: Int)+(id (id (id (head []))) :: Int,[],id (id (id (head []))) :: Int)+(id (id (id (head (_:_)))) :: Int,[],id (id (id (head (_:_)))) :: Int)+(id (id (id (ord c))) :: Int,[],id (id (id (ord c))) :: Int)+(id (id (id (ord 'a'))) :: Int,[],id (id (id (ord 'a'))) :: Int)+(id (id (negate y)) :: Int,[],id (id (negate y)) :: Int)+(id (id (negate 1)) :: Int,[],id (id (negate 1)) :: Int)+(id (id (negate (id x))) :: Int,[],id (id (negate (id x))) :: Int)+(id (id (negate (id 0))) :: Int,[],id (id (negate (id 0))) :: Int)+(id (id (negate (id (id _)))) :: Int,[],id (id (negate (id (id _)))) :: Int)+(id (id (negate (negate _))) :: Int,[],id (id (negate (negate _))) :: Int)+(id (id (negate (abs _))) :: Int,[],id (id (negate (abs _))) :: Int)+(id (id (negate (_ + _))) :: Int,[],id (id (negate (_ + _))) :: Int)+(id (id (negate (head _))) :: Int,[],id (id (negate (head _))) :: Int)+(id (id (negate (ord _))) :: Int,[],id (id (negate (ord _))) :: Int)+(id (id (abs y)) :: Int,[],id (id (abs y)) :: Int)+(id (id (abs 1)) :: Int,[],id (id (abs 1)) :: Int)+(id (id (abs (id x))) :: Int,[],id (id (abs (id x))) :: Int)+(id (id (abs (id 0))) :: Int,[],id (id (abs (id 0))) :: Int)+(id (id (abs (id (id _)))) :: Int,[],id (id (abs (id (id _)))) :: Int)+(id (id (abs (negate _))) :: Int,[],id (id (abs (negate _))) :: Int)+(id (id (abs (abs _))) :: Int,[],id (id (abs (abs _))) :: Int)+(id (id (abs (_ + _))) :: Int,[],id (id (abs (_ + _))) :: Int)+(id (id (abs (head _))) :: Int,[],id (id (abs (head _))) :: Int)+(id (id (abs (ord _))) :: Int,[],id (id (abs (ord _))) :: Int)+(id (id (_ + y)) :: Int,[],id (id (_ + y)) :: Int)+(id (id (_ + 1)) :: Int,[],id (id (_ + 1)) :: Int)+(id (id (_ + id x)) :: Int,[],id (id (_ + id x)) :: Int)+(id (id (_ + id 0)) :: Int,[],id (id (_ + id 0)) :: Int)+(id (id (_ + id (id _))) :: Int,[],id (id (_ + id (id _))) :: Int)+(id (id (_ + negate _)) :: Int,[],id (id (_ + negate _)) :: Int)+(id (id (_ + abs _)) :: Int,[],id (id (_ + abs _)) :: Int)+(id (id (_ + (_ + _))) :: Int,[],id (id (_ + (_ + _))) :: Int)+(id (id (_ + head _)) :: Int,[],id (id (_ + head _)) :: Int)+(id (id (_ + ord _)) :: Int,[],id (id (_ + ord _)) :: Int)+(id (id (x + x)) :: Int,[],id (id (x + x)) :: Int)+(id (id (x + 0)) :: Int,[],id (id (x + 0)) :: Int)+(id (id (x + id _)) :: Int,[],id (id (x + id _)) :: Int)+(id (id (0 + x)) :: Int,[],id (id (0 + x)) :: Int)+(id (id (0 + 0)) :: Int,[],id (id (0 + 0)) :: Int)+(id (id (0 + id _)) :: Int,[],id (id (0 + id _)) :: Int)+(id (id (id _ + x)) :: Int,[],id (id (id _ + x)) :: Int)+(id (id (id _ + 0)) :: Int,[],id (id (id _ + 0)) :: Int)+(id (id (id _ + id _)) :: Int,[],id (id (id _ + id _)) :: Int)+(id (id (_ * x)) :: Int,[],id (id (_ * x)) :: Int)+(id (id (_ * 0)) :: Int,[],id (id (_ * 0)) :: Int)+(id (id (_ * id _)) :: Int,[],id (id (_ * id _)) :: Int)+(id (id (f x)) :: Int,[],id (id (f x)) :: Int)+(id (id (f 0)) :: Int,[],id (id (f 0)) :: Int)+(id (id (f (id _))) :: Int,[],id (id (f (id _))) :: Int)+(id (id (y + _)) :: Int,[],id (id (y + _)) :: Int)+(id (id (1 + _)) :: Int,[],id (id (1 + _)) :: Int)+(id (id (id x + _)) :: Int,[],id (id (id x + _)) :: Int)+(id (id (id 0 + _)) :: Int,[],id (id (id 0 + _)) :: Int)+(id (id (id (id _) + _)) :: Int,[],id (id (id (id _) + _)) :: Int)+(id (id (negate _ + _)) :: Int,[],id (id (negate _ + _)) :: Int)+(id (id (abs _ + _)) :: Int,[],id (id (abs _ + _)) :: Int)+(id (id ((_ + _) + _)) :: Int,[],id (id ((_ + _) + _)) :: Int)+(id (id (head _ + _)) :: Int,[],id (id (head _ + _)) :: Int)+(id (id (ord _ + _)) :: Int,[],id (id (ord _ + _)) :: Int)+(id (id (x * _)) :: Int,[],id (id (x * _)) :: Int)+(id (id (0 * _)) :: Int,[],id (id (0 * _)) :: Int)+(id (id (id _ * _)) :: Int,[],id (id (id _ * _)) :: Int)+(id (id (g _)) :: Int,[],id (id (g _)) :: Int)+(id (id (head ys)) :: Int,[],id (id (head ys)) :: Int)+(id (id (head [0])) :: Int,[],id (id (head [0])) :: Int)+(id (id (head (_:xs))) :: Int,[],id (id (head (_:xs))) :: Int)+(id (id (head [_])) :: Int,[],id (id (head [_])) :: Int)+(id (id (head (_:_:_))) :: Int,[],id (id (head (_:_:_))) :: Int)+(id (id (head (x:_))) :: Int,[],id (id (head (x:_))) :: Int)+(id (id (head (0:_))) :: Int,[],id (id (head (0:_))) :: Int)+(id (id (head (id _:_))) :: Int,[],id (id (head (id _:_))) :: Int)+(id (id (head (tail _))) :: Int,[],id (id (head (tail _))) :: Int)+(id (id (head (_ ++ _))) :: Int,[],id (id (head (_ ++ _))) :: Int)+(id (id (ord d)) :: Int,[],id (id (ord d)) :: Int)+(id (id (ord ' ')) :: Int,[],id (id (ord ' ')) :: Int)+(id (negate z) :: Int,[],id (negate z) :: Int)+(id (negate (-1)) :: Int,[],id (negate (-1)) :: Int)+(id (negate (id y)) :: Int,[],id (negate (id y)) :: Int)+(id (negate (id 1)) :: Int,[],id (negate (id 1)) :: Int)+(id (negate (id (id x))) :: Int,[],id (negate (id (id x))) :: Int)+(id (negate (id (id 0))) :: Int,[],id (negate (id (id 0))) :: Int)+(id (negate (id (id (id _)))) :: Int,[],id (negate (id (id (id _)))) :: Int)+(id (negate (id (negate _))) :: Int,[],id (negate (id (negate _))) :: Int)+(id (negate (id (abs _))) :: Int,[],id (negate (id (abs _))) :: Int)+(id (negate (id (_ + _))) :: Int,[],id (negate (id (_ + _))) :: Int)+(id (negate (id (head _))) :: Int,[],id (negate (id (head _))) :: Int)+(id (negate (id (ord _))) :: Int,[],id (negate (id (ord _))) :: Int)+(id (negate (negate x)) :: Int,[],id (negate (negate x)) :: Int)+(id (negate (negate 0)) :: Int,[],id (negate (negate 0)) :: Int)+(id (negate (negate (id _))) :: Int,[],id (negate (negate (id _))) :: Int)+(id (negate (abs x)) :: Int,[],id (negate (abs x)) :: Int)+(id (negate (abs 0)) :: Int,[],id (negate (abs 0)) :: Int)+(id (negate (abs (id _))) :: Int,[],id (negate (abs (id _))) :: Int)+(id (negate (_ + x)) :: Int,[],id (negate (_ + x)) :: Int)+(id (negate (_ + 0)) :: Int,[],id (negate (_ + 0)) :: Int)+(id (negate (_ + id _)) :: Int,[],id (negate (_ + id _)) :: Int)+(id (negate (x + _)) :: Int,[],id (negate (x + _)) :: Int)+(id (negate (0 + _)) :: Int,[],id (negate (0 + _)) :: Int)+(id (negate (id _ + _)) :: Int,[],id (negate (id _ + _)) :: Int)+(id (negate (_ * _)) :: Int,[],id (negate (_ * _)) :: Int)+(id (negate (f _)) :: Int,[],id (negate (f _)) :: Int)+(id (negate (head xs)) :: Int,[],id (negate (head xs)) :: Int)+(id (negate (head [])) :: Int,[],id (negate (head [])) :: Int)+(id (negate (head (_:_))) :: Int,[],id (negate (head (_:_))) :: Int)+(id (negate (ord c)) :: Int,[],id (negate (ord c)) :: Int)+(id (negate (ord 'a')) :: Int,[],id (negate (ord 'a')) :: Int)+(id (abs z) :: Int,[],id (abs z) :: Int)+(id (abs (-1)) :: Int,[],id (abs (-1)) :: Int)+(id (abs (id y)) :: Int,[],id (abs (id y)) :: Int)+(id (abs (id 1)) :: Int,[],id (abs (id 1)) :: Int)+(id (abs (id (id x))) :: Int,[],id (abs (id (id x))) :: Int)+(id (abs (id (id 0))) :: Int,[],id (abs (id (id 0))) :: Int)+(id (abs (id (id (id _)))) :: Int,[],id (abs (id (id (id _)))) :: Int)++True
bench/match-triexpr.hs view
@@ -1,6 +1,6 @@ -- triexpr.hs -- how long it takes to match expressions in a Triexpr? ----- Copyright (c) 2021 Rudy Matela.+-- Copyright (c) 2021-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). -- -- This program has the same parameters as other match*.hs benchmarks.@@ -19,8 +19,8 @@  main :: IO () main  =  do-  putStrLn $ unlines $ map showEq $ allRules-  putStrLn $ unlines $ map show $ mapMaybe query $ take 1080 $ exprs+  putStrLn $ unlines $ map showEq allRules+  putStrLn $ unlines $ map show $ mapMaybe query $ take 1080 exprs   print $ (== ']') $ last $ show $ mapMaybe query exprs  trie :: Triexpr Expr
+ bench/match-triexpr.txt view
@@ -0,0 +1,795 @@+id p  =  p+p && p  =  p+p || p  =  p+p && q  =  q && p+p || q  =  q || p+not (not p)  =  p+p && True  =  p+True && p  =  p+p && False  =  False+False && p  =  False+p || True  =  True+True || p  =  True+p || False  =  p+False || p  =  p+p && not p  =  False+p || not p  =  True+not p && p  =  False+not p || p  =  True+(p && q) && r  =  p && (q && r)+(p || q) || r  =  p || (q || r)+not (p && q)  =  not p || not q+not (p || q)  =  not p && not q+not False  =  True+not True  =  False+not (not p && not q)  =  p || q+not (not p || not q)  =  p && q+p && not (p && q)  =  p && not q+id x  =  x+abs (abs x)  =  abs x+x + 0  =  x+0 + x  =  x+x * 1  =  x+1 * x  =  x+x * 0  =  0+0 * x  =  0+x + y  =  y + x+x * y  =  y * x+(x + y) + z  =  x + (y + z)+(x * y) * z  =  x * (y * z)+(x + x) * y  =  x * (y + y)+x * (y + 1)  =  x + x * y+(x + 1) * y  =  x + x * y+x * (y + z)  =  x * y + x * z+(x + y) * z  =  x * z + y * z+negate (negate x)  =  x+x + negate x  =  0+negate x + x  =  0+abs (negate x)  =  abs x+2 * x  =  x + x+x * 2  =  x + x+3 * x  =  x + (x + x)+x * 3  =  x + (x + x)+4 * x  =  x + (x + (x + x))+x * 4  =  x + (x + (x + x))+abs (x * x)  =  x * x+abs x * abs y  =  abs (x * y)+abs x * abs x  =  abs (x + x)+abs (abs x + abs y)  =  abs x + abs y+abs (x + x) * y  =  abs x * y + abs x * y+abs x * signum x  =  x+signum x * abs x  =  x+id xs  =  xs+head (x:xs)  =  x+tail (x:xs)  =  xs+xs ++ []  =  xs+[] ++ xs  =  xs+[x] ++ xs  =  x:xs+(x:xs) ++ ys  =  x:(xs ++ ys)+(xs ++ ys) ++ zs  =  xs ++ (ys ++ zs)+elem x (sort xs)  =  elem x xs+elem x (insert y xs)  =  elem x (y:xs)+sort (sort xs)  =  sort xs+insert x []  =  [x]+sort (xs ++ ys)  =  sort (ys ++ xs)+sort (insert x xs)  =  insert x (sort xs)+sort (x:xs)  =  insert x (sort xs)+sort (xs ++ sort ys)  =  sort (xs ++ ys)+sort (sort xs ++ ys)  =  sort (xs ++ ys)+insert x (insert y xs)  =  insert y (insert x xs)+insert x (x:xs)  =  x:x:xs+insert x [y]  =  insert y [x]+length (x:xs)  =  length (y:xs)+length (xs ++ ys)  =  length (ys ++ xs)+length (x:y:xs)  =  length (z:x':xs)+length (x:(xs ++ ys))  =  length (y:(ys ++ xs))+length (xs ++ (ys ++ zs))  =  length (xs ++ (zs ++ ys))+not (odd x)  =  even x+not (even x)  =  odd x+x == x  =  True+x /= x  =  False+p == p  =  True+p /= p  =  False+f (g x)  =  (f . g) x+map id xs  =  xs+map (f . g) xs  =  map f (map g xs)+f . id  =  f+id . f  =  f+(f . g) . h  =  f . (g . h)+not . not  =  id++(id x :: Int,[(x :: Int,_ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,x :: Int)],x :: Int)+(id x :: Int,[(x :: Int,0 :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(id x :: Int,[(x :: Int,y :: Int)],x :: Int)+(id x :: Int,[(x :: Int,1 :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(id x :: Int,[(x :: Int,head _ :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord _ :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(not False :: Bool,[],True :: Bool)+(not True :: Bool,[],False :: Bool)+(not (not p) :: Bool,[(p :: Bool,_ :: Bool)],p :: Bool)+(p || p :: Bool,[(p :: Bool,_ :: Bool)],p :: Bool)+(id x :: Int,[(x :: Int,z :: Int)],x :: Int)+(id x :: Int,[(x :: Int,-1 :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(id x :: Int,[(x :: Int,head xs :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head [] :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (_:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord c :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord 'a' :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,x :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,y :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,1 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,x :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ :: Int)],y * x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],x :: Int)+(not (not p) :: Bool,[(p :: Bool,p :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,False :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,True :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not _ :: Bool)],p :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p && p :: Bool,[(p :: Bool,_ :: Bool)],p :: Bool)+(x == x :: Bool,[(x :: Int,_ :: Int)],True :: Bool)+(p == p :: Bool,[(p :: Bool,_ :: Bool)],True :: Bool)+(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])+(xs ++ [] :: [Int],[(xs :: [Int],_ :: [Int])],xs :: [Int])+([] ++ xs :: [Int],[(xs :: [Int],_ :: [Int])],xs :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+(id x :: Int,[(x :: Int,x' :: Int)],x :: Int)+(id x :: Int,[(x :: Int,2 :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,z :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,-1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (negate _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (abs _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (_ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (head _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (ord _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ * _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,f _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head xs :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head [] :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (_:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord c :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord 'a' :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(y +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(1 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id 0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id (id _) +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(negate _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(abs _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,((_ + _) +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(head _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(ord _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,g :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(id x :: Int,[(x :: Int,head ys :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head [0] :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (_:xs) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head [_] :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (_:_:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (x:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (0:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (id _:_) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (tail _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,head (_ ++ _) :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord d :: Int)],x :: Int)+(id x :: Int,[(x :: Int,ord ' ' :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,z :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,-1 :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head xs :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,head [] :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,head (_:_) :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord c :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord 'a' :: Int),(x :: Int,_ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,x :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)+(x * y :: Int,[(y :: Int,y :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,1 :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,head _ :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,_ :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,y :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,y :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(y +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,1 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,1 :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(1 +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id x :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id x +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id 0 +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id (id _) +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(negate _ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(abs _ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,((_ + _) +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,head _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,head _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(head _ +) :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(ord _ +) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,x :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,x :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x *) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,0 :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,0 :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 *) :: Int -> Int)],(f . g) x :: Int)+(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,id _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,id _ :: Int)],y * x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ *) :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,g :: Int -> Int)],(f . g) x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,z :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,-1 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id y :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 1 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id x) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id 0) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id (id _)) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (negate _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (abs _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (_ + _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (head _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (ord _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate (id _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs (id _) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + x :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + 0 :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + id _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,x + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ + _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ * _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,f _ :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head xs :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head [] :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head (_:_) :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord c :: Int)],y + x :: Int)+(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord 'a' :: Int)],y + x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,y :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,1 :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id x :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 0 :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id _) :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,head _ :: Int)],y * x :: Int)+(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord _ :: Int)],y * x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],ys :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[0] :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:xs :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[_] :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],x:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],0:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],id _:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],tail _ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ ++ _ :: [Int]),(x :: Int,_ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,id _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,id _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,id _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,y :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,1 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id x :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id 0 :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id (id _) :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,negate _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,abs _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,_ + _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,head _ :: Int)],x :: Int)+(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,ord _ :: Int)],x :: Int)+(not (not p) :: Bool,[(p :: Bool,q :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not p :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not False :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not True :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,not (not _) :: Bool)],p :: Bool)+(not (not p) :: Bool,[(p :: Bool,_ || _ :: Bool)],p :: Bool)+(not (p || q) :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],not p && not q :: Bool)+(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],not p && not q :: Bool)+(not (p && q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],not p || not q :: Bool)+(not (odd x) :: Bool,[(x :: Int,_ :: Int)],even x :: Bool)+(not (even x) :: Bool,[(x :: Int,_ :: Int)],odd x :: Bool)+(p || q :: Bool,[(q :: Bool,q :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not p :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not False :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not True :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not (not _) :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ || _ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)+(p || p :: Bool,[(p :: Bool,p :: Bool)],p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || p :: Bool,[(p :: Bool,False :: Bool)],p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || p :: Bool,[(p :: Bool,True :: Bool)],p :: Bool)+(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)+(p || p :: Bool,[(p :: Bool,not _ :: Bool)],p :: Bool)+(p && q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,q :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not p :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not False :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not True :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not (not _) :: Bool)],q || p :: Bool)+(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ || _ :: Bool)],q || p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],q && p :: Bool)+(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],q && p :: Bool)+(tail (x:xs) :: [Int],[(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],xs :: [Int])+(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],xs :: [Int])+(xs ++ [] :: [Int],[(xs :: [Int],xs :: [Int])],xs :: [Int])+([] ++ xs :: [Int],[(xs :: [Int],xs :: [Int])],xs :: [Int])+(xs ++ [] :: [Int],[(xs :: [Int],[] :: [Int])],xs :: [Int])+([] ++ xs :: [Int],[(xs :: [Int],_:_ :: [Int])],xs :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],xs :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+(xs ++ [] :: [Int],[(xs :: [Int],_:_ :: [Int])],xs :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_:_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],x:(xs ++ ys) :: [Int])+((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],x:(xs ++ ys) :: [Int])+((xs ++ ys) ++ zs :: [Int],[(zs :: [Int],_ :: [Int]),(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int])],xs ++ (ys ++ zs) :: [Int])+(sort (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],insert x (sort xs) :: [Int])+(insert x [] :: [Int],[(x :: Int,_ :: Int)],[x] :: [Int])+(insert x (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:x:xs :: [Int])+(id x :: Int,[(x :: Int,y' :: Int)],x :: Int)+(id x :: Int,[(x :: Int,-2 :: Int)],x :: Int)+(f (g x) :: Int,[(x :: Int,x' :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,2 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id z :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (-1) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id y) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id 1) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (id x)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (id 0)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (id (id _))) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (negate _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (abs _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (_ + _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (head _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (ord _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (negate x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (negate 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (negate (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (abs x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (abs 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (abs (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (_ + x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (_ + 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (_ + id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (x + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (0 + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (_ * _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (f _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (head xs) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (head []) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (head (_:_)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (ord c) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (ord 'a') :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate 1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (id x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (id 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (id (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (negate _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (abs _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (_ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (head _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (ord _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs 1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (id x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (id 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (id (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (negate _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (abs _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (_ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (head _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (ord _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + 1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + (_ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x + x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x + 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x + id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 + x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 + 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 + id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ + x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ + 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ + id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ * x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ * 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ * id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,f x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,f 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,f (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,y + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,1 + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id x + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 0 + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id _) + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,(_ + _) + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x * _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 * _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ * _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,g _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head ys :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head [0] :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (_:xs) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head [_] :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (_:_:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (x:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (0:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (id _:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (tail _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (_ ++ _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord d :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord ' ' :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,z :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,-1 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id y :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 1 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id x) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id 0) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (id _)) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (negate _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (abs _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (_ + _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (head _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (ord _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate 0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,negate (id _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs 0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,abs (id _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + 0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ + id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,x + _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,0 + _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id _ + _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,_ * _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,f _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head xs :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head [] :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,head (_:_) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord c :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,ord 'a' :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,z :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,-1 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id y :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id 1 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id x) :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id 0) :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)+(f (g x) :: Int,[(x :: Int,id (id (id _)) :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)++True
bench/pairs.hs view
@@ -1,6 +1,6 @@ -- pairs.hs -- a thousand pairs of expressions ----- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test import System.Environment (getArgs)
+ bench/pairs.txt view
@@ -0,0 +1,1001 @@+(_ :: Int,_ :: Int)+(_ :: Int,x :: Int)+(_ :: Int,0 :: Int)+(_ :: Int,id _ :: Int)+(_ :: Int,_ :: Bool)+(_ :: Int,_ :: Char)+(_ :: Int,_ :: [Int])+(x :: Int,_ :: Int)+(0 :: Int,_ :: Int)+(id _ :: Int,_ :: Int)+(_ :: Bool,_ :: Int)+(_ :: Char,_ :: Int)+(_ :: [Int],_ :: Int)+(_ :: Int,y :: Int)+(_ :: Int,1 :: Int)+(_ :: Int,id x :: Int)+(_ :: Int,id 0 :: Int)+(_ :: Int,id (id _) :: Int)+(_ :: Int,negate _ :: Int)+(_ :: Int,abs _ :: Int)+(_ :: Int,_ + _ :: Int)+(_ :: Int,head _ :: Int)+(_ :: Int,ord _ :: Int)+(_ :: Int,p :: Bool)+(_ :: Int,False :: Bool)+(_ :: Int,True :: Bool)+(_ :: Int,not _ :: Bool)+(_ :: Int,c :: Char)+(_ :: Int,'a' :: Char)+(_ :: Int,xs :: [Int])+(_ :: Int,[] :: [Int])+(_ :: Int,_:_ :: [Int])+(_ :: Int,id :: Int -> Int)+(_ :: Int,(+) :: Int -> Int -> Int)+(x :: Int,x :: Int)+(x :: Int,0 :: Int)+(x :: Int,id _ :: Int)+(x :: Int,_ :: Bool)+(x :: Int,_ :: Char)+(x :: Int,_ :: [Int])+(0 :: Int,x :: Int)+(0 :: Int,0 :: Int)+(0 :: Int,id _ :: Int)+(0 :: Int,_ :: Bool)+(0 :: Int,_ :: Char)+(0 :: Int,_ :: [Int])+(id _ :: Int,x :: Int)+(id _ :: Int,0 :: Int)+(id _ :: Int,id _ :: Int)+(id _ :: Int,_ :: Bool)+(id _ :: Int,_ :: Char)+(id _ :: Int,_ :: [Int])+(_ :: Bool,x :: Int)+(_ :: Bool,0 :: Int)+(_ :: Bool,id _ :: Int)+(_ :: Bool,_ :: Bool)+(_ :: Bool,_ :: Char)+(_ :: Bool,_ :: [Int])+(_ :: Char,x :: Int)+(_ :: Char,0 :: Int)+(_ :: Char,id _ :: Int)+(_ :: Char,_ :: Bool)+(_ :: Char,_ :: Char)+(_ :: Char,_ :: [Int])+(_ :: [Int],x :: Int)+(_ :: [Int],0 :: Int)+(_ :: [Int],id _ :: Int)+(_ :: [Int],_ :: Bool)+(_ :: [Int],_ :: Char)+(_ :: [Int],_ :: [Int])+(y :: Int,_ :: Int)+(1 :: Int,_ :: Int)+(id x :: Int,_ :: Int)+(id 0 :: Int,_ :: Int)+(id (id _) :: Int,_ :: Int)+(negate _ :: Int,_ :: Int)+(abs _ :: Int,_ :: Int)+(_ + _ :: Int,_ :: Int)+(head _ :: Int,_ :: Int)+(ord _ :: Int,_ :: Int)+(p :: Bool,_ :: Int)+(False :: Bool,_ :: Int)+(True :: Bool,_ :: Int)+(not _ :: Bool,_ :: Int)+(c :: Char,_ :: Int)+('a' :: Char,_ :: Int)+(xs :: [Int],_ :: Int)+([] :: [Int],_ :: Int)+(_:_ :: [Int],_ :: Int)+(id :: Int -> Int,_ :: Int)+((+) :: Int -> Int -> Int,_ :: Int)+(_ :: Int,z :: Int)+(_ :: Int,-1 :: Int)+(_ :: Int,id y :: Int)+(_ :: Int,id 1 :: Int)+(_ :: Int,id (id x) :: Int)+(_ :: Int,id (id 0) :: Int)+(_ :: Int,id (id (id _)) :: Int)+(_ :: Int,id (negate _) :: Int)+(_ :: Int,id (abs _) :: Int)+(_ :: Int,id (_ + _) :: Int)+(_ :: Int,id (head _) :: Int)+(_ :: Int,id (ord _) :: Int)+(_ :: Int,negate x :: Int)+(_ :: Int,negate 0 :: Int)+(_ :: Int,negate (id _) :: Int)+(_ :: Int,abs x :: Int)+(_ :: Int,abs 0 :: Int)+(_ :: Int,abs (id _) :: Int)+(_ :: Int,_ + x :: Int)+(_ :: Int,_ + 0 :: Int)+(_ :: Int,_ + id _ :: Int)+(_ :: Int,x + _ :: Int)+(_ :: Int,0 + _ :: Int)+(_ :: Int,id _ + _ :: Int)+(_ :: Int,_ * _ :: Int)+(_ :: Int,f _ :: Int)+(_ :: Int,head xs :: Int)+(_ :: Int,head [] :: Int)+(_ :: Int,head (_:_) :: Int)+(_ :: Int,ord c :: Int)+(_ :: Int,ord 'a' :: Int)+(_ :: Int,q :: Bool)+(_ :: Int,not p :: Bool)+(_ :: Int,not False :: Bool)+(_ :: Int,not True :: Bool)+(_ :: Int,not (not _) :: Bool)+(_ :: Int,_ || _ :: Bool)+(_ :: Int,d :: Char)+(_ :: Int,' ' :: Char)+(_ :: Int,ys :: [Int])+(_ :: Int,[0] :: [Int])+(_ :: Int,_:xs :: [Int])+(_ :: Int,[_] :: [Int])+(_ :: Int,_:_:_ :: [Int])+(_ :: Int,x:_ :: [Int])+(_ :: Int,0:_ :: [Int])+(_ :: Int,id _:_ :: [Int])+(_ :: Int,tail _ :: [Int])+(_ :: Int,_ ++ _ :: [Int])+(_ :: Int,negate :: Int -> Int)+(_ :: Int,abs :: Int -> Int)+(_ :: Int,(_ +) :: Int -> Int)+(_ :: Int,(*) :: Int -> Int -> Int)+(_ :: Int,not :: Bool -> Bool)+(_ :: Int,(||) :: Bool -> Bool -> Bool)+(x :: Int,y :: Int)+(x :: Int,1 :: Int)+(x :: Int,id x :: Int)+(x :: Int,id 0 :: Int)+(x :: Int,id (id _) :: Int)+(x :: Int,negate _ :: Int)+(x :: Int,abs _ :: Int)+(x :: Int,_ + _ :: Int)+(x :: Int,head _ :: Int)+(x :: Int,ord _ :: Int)+(x :: Int,p :: Bool)+(x :: Int,False :: Bool)+(x :: Int,True :: Bool)+(x :: Int,not _ :: Bool)+(x :: Int,c :: Char)+(x :: Int,'a' :: Char)+(x :: Int,xs :: [Int])+(x :: Int,[] :: [Int])+(x :: Int,_:_ :: [Int])+(x :: Int,id :: Int -> Int)+(x :: Int,(+) :: Int -> Int -> Int)+(0 :: Int,y :: Int)+(0 :: Int,1 :: Int)+(0 :: Int,id x :: Int)+(0 :: Int,id 0 :: Int)+(0 :: Int,id (id _) :: Int)+(0 :: Int,negate _ :: Int)+(0 :: Int,abs _ :: Int)+(0 :: Int,_ + _ :: Int)+(0 :: Int,head _ :: Int)+(0 :: Int,ord _ :: Int)+(0 :: Int,p :: Bool)+(0 :: Int,False :: Bool)+(0 :: Int,True :: Bool)+(0 :: Int,not _ :: Bool)+(0 :: Int,c :: Char)+(0 :: Int,'a' :: Char)+(0 :: Int,xs :: [Int])+(0 :: Int,[] :: [Int])+(0 :: Int,_:_ :: [Int])+(0 :: Int,id :: Int -> Int)+(0 :: Int,(+) :: Int -> Int -> Int)+(id _ :: Int,y :: Int)+(id _ :: Int,1 :: Int)+(id _ :: Int,id x :: Int)+(id _ :: Int,id 0 :: Int)+(id _ :: Int,id (id _) :: Int)+(id _ :: Int,negate _ :: Int)+(id _ :: Int,abs _ :: Int)+(id _ :: Int,_ + _ :: Int)+(id _ :: Int,head _ :: Int)+(id _ :: Int,ord _ :: Int)+(id _ :: Int,p :: Bool)+(id _ :: Int,False :: Bool)+(id _ :: Int,True :: Bool)+(id _ :: Int,not _ :: Bool)+(id _ :: Int,c :: Char)+(id _ :: Int,'a' :: Char)+(id _ :: Int,xs :: [Int])+(id _ :: Int,[] :: [Int])+(id _ :: Int,_:_ :: [Int])+(id _ :: Int,id :: Int -> Int)+(id _ :: Int,(+) :: Int -> Int -> Int)+(_ :: Bool,y :: Int)+(_ :: Bool,1 :: Int)+(_ :: Bool,id x :: Int)+(_ :: Bool,id 0 :: Int)+(_ :: Bool,id (id _) :: Int)+(_ :: Bool,negate _ :: Int)+(_ :: Bool,abs _ :: Int)+(_ :: Bool,_ + _ :: Int)+(_ :: Bool,head _ :: Int)+(_ :: Bool,ord _ :: Int)+(_ :: Bool,p :: Bool)+(_ :: Bool,False :: Bool)+(_ :: Bool,True :: Bool)+(_ :: Bool,not _ :: Bool)+(_ :: Bool,c :: Char)+(_ :: Bool,'a' :: Char)+(_ :: Bool,xs :: [Int])+(_ :: Bool,[] :: [Int])+(_ :: Bool,_:_ :: [Int])+(_ :: Bool,id :: Int -> Int)+(_ :: Bool,(+) :: Int -> Int -> Int)+(_ :: Char,y :: Int)+(_ :: Char,1 :: Int)+(_ :: Char,id x :: Int)+(_ :: Char,id 0 :: Int)+(_ :: Char,id (id _) :: Int)+(_ :: Char,negate _ :: Int)+(_ :: Char,abs _ :: Int)+(_ :: Char,_ + _ :: Int)+(_ :: Char,head _ :: Int)+(_ :: Char,ord _ :: Int)+(_ :: Char,p :: Bool)+(_ :: Char,False :: Bool)+(_ :: Char,True :: Bool)+(_ :: Char,not _ :: Bool)+(_ :: Char,c :: Char)+(_ :: Char,'a' :: Char)+(_ :: Char,xs :: [Int])+(_ :: Char,[] :: [Int])+(_ :: Char,_:_ :: [Int])+(_ :: Char,id :: Int -> Int)+(_ :: Char,(+) :: Int -> Int -> Int)+(_ :: [Int],y :: Int)+(_ :: [Int],1 :: Int)+(_ :: [Int],id x :: Int)+(_ :: [Int],id 0 :: Int)+(_ :: [Int],id (id _) :: Int)+(_ :: [Int],negate _ :: Int)+(_ :: [Int],abs _ :: Int)+(_ :: [Int],_ + _ :: Int)+(_ :: [Int],head _ :: Int)+(_ :: [Int],ord _ :: Int)+(_ :: [Int],p :: Bool)+(_ :: [Int],False :: Bool)+(_ :: [Int],True :: Bool)+(_ :: [Int],not _ :: Bool)+(_ :: [Int],c :: Char)+(_ :: [Int],'a' :: Char)+(_ :: [Int],xs :: [Int])+(_ :: [Int],[] :: [Int])+(_ :: [Int],_:_ :: [Int])+(_ :: [Int],id :: Int -> Int)+(_ :: [Int],(+) :: Int -> Int -> Int)+(y :: Int,x :: Int)+(y :: Int,0 :: Int)+(y :: Int,id _ :: Int)+(y :: Int,_ :: Bool)+(y :: Int,_ :: Char)+(y :: Int,_ :: [Int])+(1 :: Int,x :: Int)+(1 :: Int,0 :: Int)+(1 :: Int,id _ :: Int)+(1 :: Int,_ :: Bool)+(1 :: Int,_ :: Char)+(1 :: Int,_ :: [Int])+(id x :: Int,x :: Int)+(id x :: Int,0 :: Int)+(id x :: Int,id _ :: Int)+(id x :: Int,_ :: Bool)+(id x :: Int,_ :: Char)+(id x :: Int,_ :: [Int])+(id 0 :: Int,x :: Int)+(id 0 :: Int,0 :: Int)+(id 0 :: Int,id _ :: Int)+(id 0 :: Int,_ :: Bool)+(id 0 :: Int,_ :: Char)+(id 0 :: Int,_ :: [Int])+(id (id _) :: Int,x :: Int)+(id (id _) :: Int,0 :: Int)+(id (id _) :: Int,id _ :: Int)+(id (id _) :: Int,_ :: Bool)+(id (id _) :: Int,_ :: Char)+(id (id _) :: Int,_ :: [Int])+(negate _ :: Int,x :: Int)+(negate _ :: Int,0 :: Int)+(negate _ :: Int,id _ :: Int)+(negate _ :: Int,_ :: Bool)+(negate _ :: Int,_ :: Char)+(negate _ :: Int,_ :: [Int])+(abs _ :: Int,x :: Int)+(abs _ :: Int,0 :: Int)+(abs _ :: Int,id _ :: Int)+(abs _ :: Int,_ :: Bool)+(abs _ :: Int,_ :: Char)+(abs _ :: Int,_ :: [Int])+(_ + _ :: Int,x :: Int)+(_ + _ :: Int,0 :: Int)+(_ + _ :: Int,id _ :: Int)+(_ + _ :: Int,_ :: Bool)+(_ + _ :: Int,_ :: Char)+(_ + _ :: Int,_ :: [Int])+(head _ :: Int,x :: Int)+(head _ :: Int,0 :: Int)+(head _ :: Int,id _ :: Int)+(head _ :: Int,_ :: Bool)+(head _ :: Int,_ :: Char)+(head _ :: Int,_ :: [Int])+(ord _ :: Int,x :: Int)+(ord _ :: Int,0 :: Int)+(ord _ :: Int,id _ :: Int)+(ord _ :: Int,_ :: Bool)+(ord _ :: Int,_ :: Char)+(ord _ :: Int,_ :: [Int])+(p :: Bool,x :: Int)+(p :: Bool,0 :: Int)+(p :: Bool,id _ :: Int)+(p :: Bool,_ :: Bool)+(p :: Bool,_ :: Char)+(p :: Bool,_ :: [Int])+(False :: Bool,x :: Int)+(False :: Bool,0 :: Int)+(False :: Bool,id _ :: Int)+(False :: Bool,_ :: Bool)+(False :: Bool,_ :: Char)+(False :: Bool,_ :: [Int])+(True :: Bool,x :: Int)+(True :: Bool,0 :: Int)+(True :: Bool,id _ :: Int)+(True :: Bool,_ :: Bool)+(True :: Bool,_ :: Char)+(True :: Bool,_ :: [Int])+(not _ :: Bool,x :: Int)+(not _ :: Bool,0 :: Int)+(not _ :: Bool,id _ :: Int)+(not _ :: Bool,_ :: Bool)+(not _ :: Bool,_ :: Char)+(not _ :: Bool,_ :: [Int])+(c :: Char,x :: Int)+(c :: Char,0 :: Int)+(c :: Char,id _ :: Int)+(c :: Char,_ :: Bool)+(c :: Char,_ :: Char)+(c :: Char,_ :: [Int])+('a' :: Char,x :: Int)+('a' :: Char,0 :: Int)+('a' :: Char,id _ :: Int)+('a' :: Char,_ :: Bool)+('a' :: Char,_ :: Char)+('a' :: Char,_ :: [Int])+(xs :: [Int],x :: Int)+(xs :: [Int],0 :: Int)+(xs :: [Int],id _ :: Int)+(xs :: [Int],_ :: Bool)+(xs :: [Int],_ :: Char)+(xs :: [Int],_ :: [Int])+([] :: [Int],x :: Int)+([] :: [Int],0 :: Int)+([] :: [Int],id _ :: Int)+([] :: [Int],_ :: Bool)+([] :: [Int],_ :: Char)+([] :: [Int],_ :: [Int])+(_:_ :: [Int],x :: Int)+(_:_ :: [Int],0 :: Int)+(_:_ :: [Int],id _ :: Int)+(_:_ :: [Int],_ :: Bool)+(_:_ :: [Int],_ :: Char)+(_:_ :: [Int],_ :: [Int])+(id :: Int -> Int,x :: Int)+(id :: Int -> Int,0 :: Int)+(id :: Int -> Int,id _ :: Int)+(id :: Int -> Int,_ :: Bool)+(id :: Int -> Int,_ :: Char)+(id :: Int -> Int,_ :: [Int])+((+) :: Int -> Int -> Int,x :: Int)+((+) :: Int -> Int -> Int,0 :: Int)+((+) :: Int -> Int -> Int,id _ :: Int)+((+) :: Int -> Int -> Int,_ :: Bool)+((+) :: Int -> Int -> Int,_ :: Char)+((+) :: Int -> Int -> Int,_ :: [Int])+(z :: Int,_ :: Int)+(-1 :: Int,_ :: Int)+(id y :: Int,_ :: Int)+(id 1 :: Int,_ :: Int)+(id (id x) :: Int,_ :: Int)+(id (id 0) :: Int,_ :: Int)+(id (id (id _)) :: Int,_ :: Int)+(id (negate _) :: Int,_ :: Int)+(id (abs _) :: Int,_ :: Int)+(id (_ + _) :: Int,_ :: Int)+(id (head _) :: Int,_ :: Int)+(id (ord _) :: Int,_ :: Int)+(negate x :: Int,_ :: Int)+(negate 0 :: Int,_ :: Int)+(negate (id _) :: Int,_ :: Int)+(abs x :: Int,_ :: Int)+(abs 0 :: Int,_ :: Int)+(abs (id _) :: Int,_ :: Int)+(_ + x :: Int,_ :: Int)+(_ + 0 :: Int,_ :: Int)+(_ + id _ :: Int,_ :: Int)+(x + _ :: Int,_ :: Int)+(0 + _ :: Int,_ :: Int)+(id _ + _ :: Int,_ :: Int)+(_ * _ :: Int,_ :: Int)+(f _ :: Int,_ :: Int)+(head xs :: Int,_ :: Int)+(head [] :: Int,_ :: Int)+(head (_:_) :: Int,_ :: Int)+(ord c :: Int,_ :: Int)+(ord 'a' :: Int,_ :: Int)+(q :: Bool,_ :: Int)+(not p :: Bool,_ :: Int)+(not False :: Bool,_ :: Int)+(not True :: Bool,_ :: Int)+(not (not _) :: Bool,_ :: Int)+(_ || _ :: Bool,_ :: Int)+(d :: Char,_ :: Int)+(' ' :: Char,_ :: Int)+(ys :: [Int],_ :: Int)+([0] :: [Int],_ :: Int)+(_:xs :: [Int],_ :: Int)+([_] :: [Int],_ :: Int)+(_:_:_ :: [Int],_ :: Int)+(x:_ :: [Int],_ :: Int)+(0:_ :: [Int],_ :: Int)+(id _:_ :: [Int],_ :: Int)+(tail _ :: [Int],_ :: Int)+(_ ++ _ :: [Int],_ :: Int)+(negate :: Int -> Int,_ :: Int)+(abs :: Int -> Int,_ :: Int)+((_ +) :: Int -> Int,_ :: Int)+((*) :: Int -> Int -> Int,_ :: Int)+(not :: Bool -> Bool,_ :: Int)+((||) :: Bool -> Bool -> Bool,_ :: Int)+(_ :: Int,x' :: Int)+(_ :: Int,2 :: Int)+(_ :: Int,id z :: Int)+(_ :: Int,id (-1) :: Int)+(_ :: Int,id (id y) :: Int)+(_ :: Int,id (id 1) :: Int)+(_ :: Int,id (id (id x)) :: Int)+(_ :: Int,id (id (id 0)) :: Int)+(_ :: Int,id (id (id (id _))) :: Int)+(_ :: Int,id (id (negate _)) :: Int)+(_ :: Int,id (id (abs _)) :: Int)+(_ :: Int,id (id (_ + _)) :: Int)+(_ :: Int,id (id (head _)) :: Int)+(_ :: Int,id (id (ord _)) :: Int)+(_ :: Int,id (negate x) :: Int)+(_ :: Int,id (negate 0) :: Int)+(_ :: Int,id (negate (id _)) :: Int)+(_ :: Int,id (abs x) :: Int)+(_ :: Int,id (abs 0) :: Int)+(_ :: Int,id (abs (id _)) :: Int)+(_ :: Int,id (_ + x) :: Int)+(_ :: Int,id (_ + 0) :: Int)+(_ :: Int,id (_ + id _) :: Int)+(_ :: Int,id (x + _) :: Int)+(_ :: Int,id (0 + _) :: Int)+(_ :: Int,id (id _ + _) :: Int)+(_ :: Int,id (_ * _) :: Int)+(_ :: Int,id (f _) :: Int)+(_ :: Int,id (head xs) :: Int)+(_ :: Int,id (head []) :: Int)+(_ :: Int,id (head (_:_)) :: Int)+(_ :: Int,id (ord c) :: Int)+(_ :: Int,id (ord 'a') :: Int)+(_ :: Int,negate y :: Int)+(_ :: Int,negate 1 :: Int)+(_ :: Int,negate (id x) :: Int)+(_ :: Int,negate (id 0) :: Int)+(_ :: Int,negate (id (id _)) :: Int)+(_ :: Int,negate (negate _) :: Int)+(_ :: Int,negate (abs _) :: Int)+(_ :: Int,negate (_ + _) :: Int)+(_ :: Int,negate (head _) :: Int)+(_ :: Int,negate (ord _) :: Int)+(_ :: Int,abs y :: Int)+(_ :: Int,abs 1 :: Int)+(_ :: Int,abs (id x) :: Int)+(_ :: Int,abs (id 0) :: Int)+(_ :: Int,abs (id (id _)) :: Int)+(_ :: Int,abs (negate _) :: Int)+(_ :: Int,abs (abs _) :: Int)+(_ :: Int,abs (_ + _) :: Int)+(_ :: Int,abs (head _) :: Int)+(_ :: Int,abs (ord _) :: Int)+(_ :: Int,_ + y :: Int)+(_ :: Int,_ + 1 :: Int)+(_ :: Int,_ + id x :: Int)+(_ :: Int,_ + id 0 :: Int)+(_ :: Int,_ + id (id _) :: Int)+(_ :: Int,_ + negate _ :: Int)+(_ :: Int,_ + abs _ :: Int)+(_ :: Int,_ + (_ + _) :: Int)+(_ :: Int,_ + head _ :: Int)+(_ :: Int,_ + ord _ :: Int)+(_ :: Int,x + x :: Int)+(_ :: Int,x + 0 :: Int)+(_ :: Int,x + id _ :: Int)+(_ :: Int,0 + x :: Int)+(_ :: Int,0 + 0 :: Int)+(_ :: Int,0 + id _ :: Int)+(_ :: Int,id _ + x :: Int)+(_ :: Int,id _ + 0 :: Int)+(_ :: Int,id _ + id _ :: Int)+(_ :: Int,_ * x :: Int)+(_ :: Int,_ * 0 :: Int)+(_ :: Int,_ * id _ :: Int)+(_ :: Int,f x :: Int)+(_ :: Int,f 0 :: Int)+(_ :: Int,f (id _) :: Int)+(_ :: Int,y + _ :: Int)+(_ :: Int,1 + _ :: Int)+(_ :: Int,id x + _ :: Int)+(_ :: Int,id 0 + _ :: Int)+(_ :: Int,id (id _) + _ :: Int)+(_ :: Int,negate _ + _ :: Int)+(_ :: Int,abs _ + _ :: Int)+(_ :: Int,(_ + _) + _ :: Int)+(_ :: Int,head _ + _ :: Int)+(_ :: Int,ord _ + _ :: Int)+(_ :: Int,x * _ :: Int)+(_ :: Int,0 * _ :: Int)+(_ :: Int,id _ * _ :: Int)+(_ :: Int,g _ :: Int)+(_ :: Int,head ys :: Int)+(_ :: Int,head [0] :: Int)+(_ :: Int,head (_:xs) :: Int)+(_ :: Int,head [_] :: Int)+(_ :: Int,head (_:_:_) :: Int)+(_ :: Int,head (x:_) :: Int)+(_ :: Int,head (0:_) :: Int)+(_ :: Int,head (id _:_) :: Int)+(_ :: Int,head (tail _) :: Int)+(_ :: Int,head (_ ++ _) :: Int)+(_ :: Int,ord d :: Int)+(_ :: Int,ord ' ' :: Int)+(_ :: Int,r :: Bool)+(_ :: Int,not q :: Bool)+(_ :: Int,not (not p) :: Bool)+(_ :: Int,not (not False) :: Bool)+(_ :: Int,not (not True) :: Bool)+(_ :: Int,not (not (not _)) :: Bool)+(_ :: Int,not (_ || _) :: Bool)+(_ :: Int,_ || p :: Bool)+(_ :: Int,_ || False :: Bool)+(_ :: Int,_ || True :: Bool)+(_ :: Int,_ || not _ :: Bool)+(_ :: Int,p || _ :: Bool)+(_ :: Int,False || _ :: Bool)+(_ :: Int,True || _ :: Bool)+(_ :: Int,not _ || _ :: Bool)+(_ :: Int,_ && _ :: Bool)+(_ :: Int,_ == _ :: Bool)+(_ :: Int,_ == _ :: Bool)+(_ :: Int,odd _ :: Bool)+(_ :: Int,even _ :: Bool)+(_ :: Int,elem _ _ :: Bool)+(_ :: Int,e :: Char)+(_ :: Int,'b' :: Char)+(_ :: Int,zs :: [Int])+(_ :: Int,[0,0] :: [Int])+(_ :: Int,[1] :: [Int])+(_ :: Int,_:ys :: [Int])+(_ :: Int,_:[0] :: [Int])+(_ :: Int,_:_:xs :: [Int])+(_ :: Int,[_,_] :: [Int])+(_ :: Int,_:_:_:_ :: [Int])+(_ :: Int,_:x:_ :: [Int])+(_ :: Int,_:0:_ :: [Int])+(_ :: Int,_:id _:_ :: [Int])+(_ :: Int,_:tail _ :: [Int])+(_ :: Int,_:(_ ++ _) :: [Int])+(_ :: Int,x:xs :: [Int])+(_ :: Int,[x] :: [Int])+(_ :: Int,x:_:_ :: [Int])+(_ :: Int,0:xs :: [Int])+(_ :: Int,[0] :: [Int])+(_ :: Int,0:_:_ :: [Int])+(_ :: Int,id _:xs :: [Int])+(_ :: Int,[id _] :: [Int])+(_ :: Int,id _:_:_ :: [Int])+(_ :: Int,y:_ :: [Int])+(_ :: Int,1:_ :: [Int])+(_ :: Int,id x:_ :: [Int])+(_ :: Int,id 0:_ :: [Int])+(_ :: Int,id (id _):_ :: [Int])+(_ :: Int,negate _:_ :: [Int])+(_ :: Int,abs _:_ :: [Int])+(_ :: Int,_ + _:_ :: [Int])+(_ :: Int,head _:_ :: [Int])+(_ :: Int,ord _:_ :: [Int])+(_ :: Int,tail xs :: [Int])+(_ :: Int,tail [] :: [Int])+(_ :: Int,tail (_:_) :: [Int])+(_ :: Int,_ ++ xs :: [Int])+(_ :: Int,_ ++ [] :: [Int])+(_ :: Int,_ ++ (_:_) :: [Int])+(_ :: Int,xs ++ _ :: [Int])+(_ :: Int,[] ++ _ :: [Int])+(_ :: Int,(_:_) ++ _ :: [Int])+(_ :: Int,sort _ :: [Int])+(_ :: Int,insert _ _ :: [Int])+(_ :: Int,(x +) :: Int -> Int)+(_ :: Int,(0 +) :: Int -> Int)+(_ :: Int,(id _ +) :: Int -> Int)+(_ :: Int,(_ *) :: Int -> Int)+(_ :: Int,f :: Int -> Int)+(_ :: Int,(_ ||) :: Bool -> Bool)+(_ :: Int,(&&) :: Bool -> Bool -> Bool)+(x :: Int,z :: Int)+(x :: Int,-1 :: Int)+(x :: Int,id y :: Int)+(x :: Int,id 1 :: Int)+(x :: Int,id (id x) :: Int)+(x :: Int,id (id 0) :: Int)+(x :: Int,id (id (id _)) :: Int)+(x :: Int,id (negate _) :: Int)+(x :: Int,id (abs _) :: Int)+(x :: Int,id (_ + _) :: Int)+(x :: Int,id (head _) :: Int)+(x :: Int,id (ord _) :: Int)+(x :: Int,negate x :: Int)+(x :: Int,negate 0 :: Int)+(x :: Int,negate (id _) :: Int)+(x :: Int,abs x :: Int)+(x :: Int,abs 0 :: Int)+(x :: Int,abs (id _) :: Int)+(x :: Int,_ + x :: Int)+(x :: Int,_ + 0 :: Int)+(x :: Int,_ + id _ :: Int)+(x :: Int,x + _ :: Int)+(x :: Int,0 + _ :: Int)+(x :: Int,id _ + _ :: Int)+(x :: Int,_ * _ :: Int)+(x :: Int,f _ :: Int)+(x :: Int,head xs :: Int)+(x :: Int,head [] :: Int)+(x :: Int,head (_:_) :: Int)+(x :: Int,ord c :: Int)+(x :: Int,ord 'a' :: Int)+(x :: Int,q :: Bool)+(x :: Int,not p :: Bool)+(x :: Int,not False :: Bool)+(x :: Int,not True :: Bool)+(x :: Int,not (not _) :: Bool)+(x :: Int,_ || _ :: Bool)+(x :: Int,d :: Char)+(x :: Int,' ' :: Char)+(x :: Int,ys :: [Int])+(x :: Int,[0] :: [Int])+(x :: Int,_:xs :: [Int])+(x :: Int,[_] :: [Int])+(x :: Int,_:_:_ :: [Int])+(x :: Int,x:_ :: [Int])+(x :: Int,0:_ :: [Int])+(x :: Int,id _:_ :: [Int])+(x :: Int,tail _ :: [Int])+(x :: Int,_ ++ _ :: [Int])+(x :: Int,negate :: Int -> Int)+(x :: Int,abs :: Int -> Int)+(x :: Int,(_ +) :: Int -> Int)+(x :: Int,(*) :: Int -> Int -> Int)+(x :: Int,not :: Bool -> Bool)+(x :: Int,(||) :: Bool -> Bool -> Bool)+(0 :: Int,z :: Int)+(0 :: Int,-1 :: Int)+(0 :: Int,id y :: Int)+(0 :: Int,id 1 :: Int)+(0 :: Int,id (id x) :: Int)+(0 :: Int,id (id 0) :: Int)+(0 :: Int,id (id (id _)) :: Int)+(0 :: Int,id (negate _) :: Int)+(0 :: Int,id (abs _) :: Int)+(0 :: Int,id (_ + _) :: Int)+(0 :: Int,id (head _) :: Int)+(0 :: Int,id (ord _) :: Int)+(0 :: Int,negate x :: Int)+(0 :: Int,negate 0 :: Int)+(0 :: Int,negate (id _) :: Int)+(0 :: Int,abs x :: Int)+(0 :: Int,abs 0 :: Int)+(0 :: Int,abs (id _) :: Int)+(0 :: Int,_ + x :: Int)+(0 :: Int,_ + 0 :: Int)+(0 :: Int,_ + id _ :: Int)+(0 :: Int,x + _ :: Int)+(0 :: Int,0 + _ :: Int)+(0 :: Int,id _ + _ :: Int)+(0 :: Int,_ * _ :: Int)+(0 :: Int,f _ :: Int)+(0 :: Int,head xs :: Int)+(0 :: Int,head [] :: Int)+(0 :: Int,head (_:_) :: Int)+(0 :: Int,ord c :: Int)+(0 :: Int,ord 'a' :: Int)+(0 :: Int,q :: Bool)+(0 :: Int,not p :: Bool)+(0 :: Int,not False :: Bool)+(0 :: Int,not True :: Bool)+(0 :: Int,not (not _) :: Bool)+(0 :: Int,_ || _ :: Bool)+(0 :: Int,d :: Char)+(0 :: Int,' ' :: Char)+(0 :: Int,ys :: [Int])+(0 :: Int,[0] :: [Int])+(0 :: Int,_:xs :: [Int])+(0 :: Int,[_] :: [Int])+(0 :: Int,_:_:_ :: [Int])+(0 :: Int,x:_ :: [Int])+(0 :: Int,0:_ :: [Int])+(0 :: Int,id _:_ :: [Int])+(0 :: Int,tail _ :: [Int])+(0 :: Int,_ ++ _ :: [Int])+(0 :: Int,negate :: Int -> Int)+(0 :: Int,abs :: Int -> Int)+(0 :: Int,(_ +) :: Int -> Int)+(0 :: Int,(*) :: Int -> Int -> Int)+(0 :: Int,not :: Bool -> Bool)+(0 :: Int,(||) :: Bool -> Bool -> Bool)+(id _ :: Int,z :: Int)+(id _ :: Int,-1 :: Int)+(id _ :: Int,id y :: Int)+(id _ :: Int,id 1 :: Int)+(id _ :: Int,id (id x) :: Int)+(id _ :: Int,id (id 0) :: Int)+(id _ :: Int,id (id (id _)) :: Int)+(id _ :: Int,id (negate _) :: Int)+(id _ :: Int,id (abs _) :: Int)+(id _ :: Int,id (_ + _) :: Int)+(id _ :: Int,id (head _) :: Int)+(id _ :: Int,id (ord _) :: Int)+(id _ :: Int,negate x :: Int)+(id _ :: Int,negate 0 :: Int)+(id _ :: Int,negate (id _) :: Int)+(id _ :: Int,abs x :: Int)+(id _ :: Int,abs 0 :: Int)+(id _ :: Int,abs (id _) :: Int)+(id _ :: Int,_ + x :: Int)+(id _ :: Int,_ + 0 :: Int)+(id _ :: Int,_ + id _ :: Int)+(id _ :: Int,x + _ :: Int)+(id _ :: Int,0 + _ :: Int)+(id _ :: Int,id _ + _ :: Int)+(id _ :: Int,_ * _ :: Int)+(id _ :: Int,f _ :: Int)+(id _ :: Int,head xs :: Int)+(id _ :: Int,head [] :: Int)+(id _ :: Int,head (_:_) :: Int)+(id _ :: Int,ord c :: Int)+(id _ :: Int,ord 'a' :: Int)+(id _ :: Int,q :: Bool)+(id _ :: Int,not p :: Bool)+(id _ :: Int,not False :: Bool)+(id _ :: Int,not True :: Bool)+(id _ :: Int,not (not _) :: Bool)+(id _ :: Int,_ || _ :: Bool)+(id _ :: Int,d :: Char)+(id _ :: Int,' ' :: Char)+(id _ :: Int,ys :: [Int])+(id _ :: Int,[0] :: [Int])+(id _ :: Int,_:xs :: [Int])+(id _ :: Int,[_] :: [Int])+(id _ :: Int,_:_:_ :: [Int])+(id _ :: Int,x:_ :: [Int])+(id _ :: Int,0:_ :: [Int])+(id _ :: Int,id _:_ :: [Int])+(id _ :: Int,tail _ :: [Int])+(id _ :: Int,_ ++ _ :: [Int])+(id _ :: Int,negate :: Int -> Int)+(id _ :: Int,abs :: Int -> Int)+(id _ :: Int,(_ +) :: Int -> Int)+(id _ :: Int,(*) :: Int -> Int -> Int)+(id _ :: Int,not :: Bool -> Bool)+(id _ :: Int,(||) :: Bool -> Bool -> Bool)+(_ :: Bool,z :: Int)+(_ :: Bool,-1 :: Int)+(_ :: Bool,id y :: Int)+(_ :: Bool,id 1 :: Int)+(_ :: Bool,id (id x) :: Int)+(_ :: Bool,id (id 0) :: Int)+(_ :: Bool,id (id (id _)) :: Int)+(_ :: Bool,id (negate _) :: Int)+(_ :: Bool,id (abs _) :: Int)+(_ :: Bool,id (_ + _) :: Int)+(_ :: Bool,id (head _) :: Int)+(_ :: Bool,id (ord _) :: Int)+(_ :: Bool,negate x :: Int)+(_ :: Bool,negate 0 :: Int)+(_ :: Bool,negate (id _) :: Int)+(_ :: Bool,abs x :: Int)+(_ :: Bool,abs 0 :: Int)+(_ :: Bool,abs (id _) :: Int)+(_ :: Bool,_ + x :: Int)+(_ :: Bool,_ + 0 :: Int)+(_ :: Bool,_ + id _ :: Int)+(_ :: Bool,x + _ :: Int)+(_ :: Bool,0 + _ :: Int)+(_ :: Bool,id _ + _ :: Int)+(_ :: Bool,_ * _ :: Int)+(_ :: Bool,f _ :: Int)+(_ :: Bool,head xs :: Int)+(_ :: Bool,head [] :: Int)+(_ :: Bool,head (_:_) :: Int)+(_ :: Bool,ord c :: Int)+(_ :: Bool,ord 'a' :: Int)+(_ :: Bool,q :: Bool)+(_ :: Bool,not p :: Bool)+(_ :: Bool,not False :: Bool)+(_ :: Bool,not True :: Bool)+(_ :: Bool,not (not _) :: Bool)+(_ :: Bool,_ || _ :: Bool)+(_ :: Bool,d :: Char)+(_ :: Bool,' ' :: Char)+(_ :: Bool,ys :: [Int])+(_ :: Bool,[0] :: [Int])+(_ :: Bool,_:xs :: [Int])+(_ :: Bool,[_] :: [Int])+(_ :: Bool,_:_:_ :: [Int])+(_ :: Bool,x:_ :: [Int])+(_ :: Bool,0:_ :: [Int])+(_ :: Bool,id _:_ :: [Int])+(_ :: Bool,tail _ :: [Int])+(_ :: Bool,_ ++ _ :: [Int])+(_ :: Bool,negate :: Int -> Int)+(_ :: Bool,abs :: Int -> Int)+(_ :: Bool,(_ +) :: Int -> Int)+(_ :: Bool,(*) :: Int -> Int -> Int)+(_ :: Bool,not :: Bool -> Bool)+(_ :: Bool,(||) :: Bool -> Bool -> Bool)+(_ :: Char,z :: Int)+(_ :: Char,-1 :: Int)+(_ :: Char,id y :: Int)+(_ :: Char,id 1 :: Int)+(_ :: Char,id (id x) :: Int)+(_ :: Char,id (id 0) :: Int)+(_ :: Char,id (id (id _)) :: Int)+(_ :: Char,id (negate _) :: Int)+(_ :: Char,id (abs _) :: Int)+(_ :: Char,id (_ + _) :: Int)+(_ :: Char,id (head _) :: Int)+(_ :: Char,id (ord _) :: Int)+(_ :: Char,negate x :: Int)+(_ :: Char,negate 0 :: Int)+(_ :: Char,negate (id _) :: Int)+(_ :: Char,abs x :: Int)+(_ :: Char,abs 0 :: Int)+(_ :: Char,abs (id _) :: Int)+(_ :: Char,_ + x :: Int)+(_ :: Char,_ + 0 :: Int)+(_ :: Char,_ + id _ :: Int)+(_ :: Char,x + _ :: Int)+(_ :: Char,0 + _ :: Int)+(_ :: Char,id _ + _ :: Int)+(_ :: Char,_ * _ :: Int)+(_ :: Char,f _ :: Int)+(_ :: Char,head xs :: Int)+(_ :: Char,head [] :: Int)+(_ :: Char,head (_:_) :: Int)+(_ :: Char,ord c :: Int)+(_ :: Char,ord 'a' :: Int)+(_ :: Char,q :: Bool)+(_ :: Char,not p :: Bool)+(_ :: Char,not False :: Bool)+(_ :: Char,not True :: Bool)+(_ :: Char,not (not _) :: Bool)+(_ :: Char,_ || _ :: Bool)+(_ :: Char,d :: Char)+(_ :: Char,' ' :: Char)+(_ :: Char,ys :: [Int])+(_ :: Char,[0] :: [Int])+(_ :: Char,_:xs :: [Int])+(_ :: Char,[_] :: [Int])+(_ :: Char,_:_:_ :: [Int])+(_ :: Char,x:_ :: [Int])+(_ :: Char,0:_ :: [Int])+(_ :: Char,id _:_ :: [Int])+(_ :: Char,tail _ :: [Int])+(_ :: Char,_ ++ _ :: [Int])+(_ :: Char,negate :: Int -> Int)+(_ :: Char,abs :: Int -> Int)+(_ :: Char,(_ +) :: Int -> Int)+(_ :: Char,(*) :: Int -> Int -> Int)+(_ :: Char,not :: Bool -> Bool)+(_ :: Char,(||) :: Bool -> Bool -> Bool)+(_ :: [Int],z :: Int)+(_ :: [Int],-1 :: Int)+(_ :: [Int],id y :: Int)+(_ :: [Int],id 1 :: Int)+(_ :: [Int],id (id x) :: Int)+(_ :: [Int],id (id 0) :: Int)+(_ :: [Int],id (id (id _)) :: Int)+(_ :: [Int],id (negate _) :: Int)+(_ :: [Int],id (abs _) :: Int)+(_ :: [Int],id (_ + _) :: Int)+(_ :: [Int],id (head _) :: Int)+(_ :: [Int],id (ord _) :: Int)+(_ :: [Int],negate x :: Int)+(_ :: [Int],negate 0 :: Int)+(_ :: [Int],negate (id _) :: Int)+(_ :: [Int],abs x :: Int)+(_ :: [Int],abs 0 :: Int)+(_ :: [Int],abs (id _) :: Int)+(_ :: [Int],_ + x :: Int)+(_ :: [Int],_ + 0 :: Int)+(_ :: [Int],_ + id _ :: Int)+(_ :: [Int],x + _ :: Int)+(_ :: [Int],0 + _ :: Int)+(_ :: [Int],id _ + _ :: Int)+(_ :: [Int],_ * _ :: Int)+(_ :: [Int],f _ :: Int)+(_ :: [Int],head xs :: Int)+(_ :: [Int],head [] :: Int)+(_ :: [Int],head (_:_) :: Int)+(_ :: [Int],ord c :: Int)+(_ :: [Int],ord 'a' :: Int)+(_ :: [Int],q :: Bool)+(_ :: [Int],not p :: Bool)+(_ :: [Int],not False :: Bool)+(_ :: [Int],not True :: Bool)+(_ :: [Int],not (not _) :: Bool)+(_ :: [Int],_ || _ :: Bool)+(_ :: [Int],d :: Char)+(_ :: [Int],' ' :: Char)+(_ :: [Int],ys :: [Int])+(_ :: [Int],[0] :: [Int])+(_ :: [Int],_:xs :: [Int])+(_ :: [Int],[_] :: [Int])+(_ :: [Int],_:_:_ :: [Int])+(_ :: [Int],x:_ :: [Int])+(_ :: [Int],0:_ :: [Int])+(_ :: [Int],id _:_ :: [Int])+(_ :: [Int],tail _ :: [Int])+(_ :: [Int],_ ++ _ :: [Int])+(_ :: [Int],negate :: Int -> Int)+(_ :: [Int],abs :: Int -> Int)+(_ :: [Int],(_ +) :: Int -> Int)+(_ :: [Int],(*) :: Int -> Int -> Int)+(_ :: [Int],not :: Bool -> Bool)+(_ :: [Int],(||) :: Bool -> Bool -> Bool)+(y :: Int,y :: Int)+(y :: Int,1 :: Int)+(y :: Int,id x :: Int)+(y :: Int,id 0 :: Int)+(y :: Int,id (id _) :: Int)+(y :: Int,negate _ :: Int)+(y :: Int,abs _ :: Int)+(y :: Int,_ + _ :: Int)+(y :: Int,head _ :: Int)+(y :: Int,ord _ :: Int)+(y :: Int,p :: Bool)+(y :: Int,False :: Bool)+(y :: Int,True :: Bool)+(y :: Int,not _ :: Bool)+(y :: Int,c :: Char)+(y :: Int,'a' :: Char)+(y :: Int,xs :: [Int])+(y :: Int,[] :: [Int])+(y :: Int,_:_ :: [Int])+(y :: Int,id :: Int -> Int)+(y :: Int,(+) :: Int -> Int -> Int)+(1 :: Int,y :: Int)+(1 :: Int,1 :: Int)+(1 :: Int,id x :: Int)+(1 :: Int,id 0 :: Int)+(1 :: Int,id (id _) :: Int)+(1 :: Int,negate _ :: Int)+(1 :: Int,abs _ :: Int)+(1 :: Int,_ + _ :: Int)+(1 :: Int,head _ :: Int)+(1 :: Int,ord _ :: Int)+(1 :: Int,p :: Bool)+(1 :: Int,False :: Bool)+(1 :: Int,True :: Bool)+(1 :: Int,not _ :: Bool)+(1 :: Int,c :: Char)+(1 :: Int,'a' :: Char)+(1 :: Int,xs :: [Int])+(1 :: Int,[] :: [Int])+(1 :: Int,_:_ :: [Int])+
bench/runtime/zero/bench/compare.runtime view
@@ -1,1 +1,1 @@-0.02+0.05
bench/runtime/zero/bench/match-list.runtime view
@@ -1,1 +1,1 @@-2.36+2.28
bench/runtime/zero/bench/match-noop.runtime view
@@ -1,1 +1,1 @@-2.00+1.70
bench/runtime/zero/bench/match-triexpr.runtime view
@@ -1,1 +1,1 @@-2.59+2.23
bench/runtime/zero/bench/pairs.runtime view
@@ -1,1 +1,1 @@-0.01+0.04
bench/runtime/zero/bench/sort.runtime view
@@ -1,1 +1,1 @@-0.19+0.23
+ bench/runtime/zero/bench/tiers-complete.runtime view
@@ -0,0 +1,1 @@+1.24
bench/runtime/zero/bench/tiers.runtime view
@@ -1,1 +1,1 @@-0.19+0.24
bench/runtime/zero/eg/u-conjure.runtime view
@@ -1,1 +1,1 @@-0.33+0.37
bench/runtime/zero/eg/u-extrapolate.runtime view
@@ -1,1 +1,1 @@-0.01+0.04
bench/runtime/zero/eg/u-speculate.runtime view
@@ -1,1 +1,1 @@-0.32+0.35
bench/runtime/zero/versions view
@@ -1,1 +1,1 @@-GHC 8.10.4+GHC 9.0.2
bench/sort.hs view
@@ -1,6 +1,6 @@ -- ord.hs -- prints different expression sortins: ----- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test import Data.List (intercalate, nub)@@ -15,11 +15,11 @@  main :: IO () main  =  do-  putStrLn $ "sort $ take 5040 $ list  ::  [ Expr ]  ="-  printL (sort $ take 5040 $ list :: [Expr])+  putStrLn "sort $ take 5040 $ list  ::  [ Expr ]  ="+  printL (sort $ take 5040 list :: [Expr]) -  putStrLn $ "sortBy compareLexicographically $ take 5040 $ list  ::  [ Expr ]  ="-  printL (sortBy compareLexicographically $ take 5040 $ list :: [Expr])+  putStrLn "sortBy compareLexicographically $ take 5040 $ list  ::  [ Expr ]  ="+  printL (sortBy compareLexicographically $ take 5040 list :: [Expr]) -  putStrLn $ "sortBy compareQuickly $ take 5040 $ list  ::  [ Expr ]  ="-  printL (sortBy compareQuickly $ take 5040 $ list :: [Expr])+  putStrLn "sortBy compareQuickly $ take 5040 $ list  ::  [ Expr ]  ="+  printL (sortBy compareQuickly $ take 5040 list :: [Expr])
+ bench/sort.txt view
@@ -0,0 +1,15129 @@+sort $ take 5040 $ list  ::  [ Expr ]  =+  [ _ :: Bool+  , p :: Bool+  , q :: Bool+  , r :: Bool+  , p' :: Bool+  , q' :: Bool+  , _ :: Char+  , c :: Char+  , d :: Char+  , e :: Char+  , c' :: Char+  , d' :: Char+  , _ :: Int+  , x :: Int+  , y :: Int+  , z :: Int+  , x' :: Int+  , y' :: Int+  , z' :: Int+  , x'' :: Int+  , _ :: [Int]+  , xs :: [Int]+  , ys :: [Int]+  , zs :: [Int]+  , xs' :: [Int]+  , ys' :: [Int]+  , f :: Int -> Int+  , g :: Int -> Int+  , h :: Int -> Int+  , False :: Bool+  , True :: Bool+  , ' ' :: Char+  , 'A' :: Char+  , 'a' :: Char+  , 'b' :: Char+  , 'c' :: Char+  , 0 :: Int+  , 1 :: Int+  , 2 :: Int+  , 3 :: Int+  , -1 :: Int+  , -2 :: Int+  , -3 :: Int+  , [] :: [Int]+  , [0] :: [Int]+  , [1] :: [Int]+  , [2] :: [Int]+  , [-1] :: [Int]+  , [0,0] :: [Int]+  , [0,1] :: [Int]+  , [1,0] :: [Int]+  , [1,1] :: [Int]+  , [-1,0] :: [Int]+  , [0,-1] :: [Int]+  , [0,0,0] :: [Int]+  , [0,0,1] :: [Int]+  , [0,1,0] :: [Int]+  , [1,0,0] :: [Int]+  , [0,0,0,0] :: [Int]+  , not :: Bool -> Bool+  , id :: Int -> Int+  , abs :: Int -> Int+  , negate :: Int -> Int+  , (&&) :: Bool -> Bool -> Bool+  , (||) :: Bool -> Bool -> Bool+  , (==>) :: Bool -> Bool -> Bool+  , (*) :: Int -> Int -> Int+  , (+) :: Int -> Int -> Int+  , f _ :: Int+  , f x :: Int+  , f y :: Int+  , f z :: Int+  , g _ :: Int+  , g x :: Int+  , g y :: Int+  , h _ :: Int+  , h x :: Int+  , f' _ :: Int+  , f 0 :: Int+  , f 1 :: Int+  , f (-1) :: Int+  , g 0 :: Int+  , g 1 :: Int+  , h 0 :: Int+  , not _ :: Bool+  , not p :: Bool+  , not q :: Bool+  , not r :: Bool+  , not p' :: Bool+  , ord _ :: Int+  , ord c :: Int+  , ord d :: Int+  , ord e :: Int+  , ord c' :: Int+  , odd _ :: Bool+  , odd x :: Bool+  , odd y :: Bool+  , even _ :: Bool+  , even x :: Bool+  , even y :: Bool+  , id _ :: Int+  , id x :: Int+  , id y :: Int+  , id z :: Int+  , id x' :: Int+  , id y' :: Int+  , id z' :: Int+  , abs _ :: Int+  , abs x :: Int+  , abs y :: Int+  , abs z :: Int+  , abs x' :: Int+  , negate _ :: Int+  , negate x :: Int+  , negate y :: Int+  , negate z :: Int+  , negate x' :: Int+  , head _ :: Int+  , head xs :: Int+  , head ys :: Int+  , head zs :: Int+  , head xs' :: Int+  , sort _ :: [Int]+  , sort xs :: [Int]+  , sort ys :: [Int]+  , tail _ :: [Int]+  , tail xs :: [Int]+  , tail ys :: [Int]+  , tail zs :: [Int]+  , (_ &&) :: Bool -> Bool+  , (p &&) :: Bool -> Bool+  , (_ ||) :: Bool -> Bool+  , (p ||) :: Bool -> Bool+  , (q ||) :: Bool -> Bool+  , (_ ==>) :: Bool -> Bool+  , (_ *) :: Int -> Int+  , (x *) :: Int -> Int+  , (y *) :: Int -> Int+  , (_ +) :: Int -> Int+  , (x +) :: Int -> Int+  , (y +) :: Int -> Int+  , (z +) :: Int -> Int+  , not False :: Bool+  , not True :: Bool+  , ord ' ' :: Int+  , ord 'A' :: Int+  , ord 'a' :: Int+  , ord 'b' :: Int+  , odd 0 :: Bool+  , odd 1 :: Bool+  , even 0 :: Bool+  , even 1 :: Bool+  , id 0 :: Int+  , id 1 :: Int+  , id 2 :: Int+  , id 3 :: Int+  , id (-1) :: Int+  , id (-2) :: Int+  , abs 0 :: Int+  , abs 1 :: Int+  , abs 2 :: Int+  , abs (-1) :: Int+  , negate 0 :: Int+  , negate 1 :: Int+  , negate 2 :: Int+  , negate (-1) :: Int+  , head [] :: Int+  , head [0] :: Int+  , head [1] :: Int+  , head [-1] :: Int+  , head [0,0] :: Int+  , head [0,1] :: Int+  , head [1,0] :: Int+  , head [0,0,0] :: Int+  , sort [] :: [Int]+  , sort [0] :: [Int]+  , tail [] :: [Int]+  , tail [0] :: [Int]+  , tail [1] :: [Int]+  , tail [0,0] :: [Int]+  , (False &&) :: Bool -> Bool+  , (True &&) :: Bool -> Bool+  , (False ||) :: Bool -> Bool+  , (True ||) :: Bool -> Bool+  , (0 *) :: Int -> Int+  , (1 *) :: Int -> Int+  , (0 +) :: Int -> Int+  , (1 +) :: Int -> Int+  , ((-1) +) :: Int -> Int+  , f (f _) :: Int+  , f (ord _) :: Int+  , f (ord c) :: Int+  , f (id _) :: Int+  , f (id x) :: Int+  , f (id y) :: Int+  , f (abs _) :: Int+  , f (abs x) :: Int+  , f (negate _) :: Int+  , f (negate x) :: Int+  , f (head _) :: Int+  , f (head xs) :: Int+  , g (ord _) :: Int+  , g (id _) :: Int+  , g (id x) :: Int+  , g (abs _) :: Int+  , g (negate _) :: Int+  , g (head _) :: Int+  , h (id _) :: Int+  , id (f _) :: Int+  , id (f x) :: Int+  , id (f y) :: Int+  , id (f z) :: Int+  , id (g _) :: Int+  , id (g x) :: Int+  , id (g y) :: Int+  , id (h _) :: Int+  , id (h x) :: Int+  , id (f' _) :: Int+  , abs (f _) :: Int+  , abs (f x) :: Int+  , abs (g _) :: Int+  , negate (f _) :: Int+  , negate (f x) :: Int+  , negate (g _) :: Int+  , (f _ +) :: Int -> Int+  , _ && p :: Bool+  , _ && q :: Bool+  , p && _ :: Bool+  , q && _ :: Bool+  , _ <= p :: Bool+  , p <= _ :: Bool+  , _ == p :: Bool+  , _ == q :: Bool+  , p == _ :: Bool+  , q == _ :: Bool+  , _ || p :: Bool+  , _ || q :: Bool+  , _ || r :: Bool+  , p || _ :: Bool+  , p || q :: Bool+  , q || _ :: Bool+  , q || p :: Bool+  , r || _ :: Bool+  , _ ==> p :: Bool+  , p ==> _ :: Bool+  , _ <= x :: Bool+  , x <= _ :: Bool+  , _ == x :: Bool+  , _ == y :: Bool+  , x == _ :: Bool+  , y == _ :: Bool+  , _ * x :: Int+  , _ * y :: Int+  , _ * z :: Int+  , x * _ :: Int+  , x * y :: Int+  , y * _ :: Int+  , y * x :: Int+  , z * _ :: Int+  , _ + x :: Int+  , _ + y :: Int+  , _ + z :: Int+  , _ + x' :: Int+  , x + _ :: Int+  , x + y :: Int+  , x + z :: Int+  , y + _ :: Int+  , y + x :: Int+  , z + _ :: Int+  , z + x :: Int+  , x' + _ :: Int+  , elem _ _ :: Bool+  , elem _ xs :: Bool+  , elem _ ys :: Bool+  , elem x _ :: Bool+  , elem x xs :: Bool+  , elem y _ :: Bool+  , _:_ :: [Int]+  , _:xs :: [Int]+  , _:ys :: [Int]+  , _:zs :: [Int]+  , _:xs' :: [Int]+  , x:_ :: [Int]+  , x:xs :: [Int]+  , x:ys :: [Int]+  , x:zs :: [Int]+  , y:_ :: [Int]+  , y:xs :: [Int]+  , y:ys :: [Int]+  , z:_ :: [Int]+  , z:xs :: [Int]+  , x':_ :: [Int]+  , insert _ _ :: [Int]+  , insert _ xs :: [Int]+  , insert _ ys :: [Int]+  , insert x _ :: [Int]+  , insert x xs :: [Int]+  , insert y _ :: [Int]+  , _ ++ xs :: [Int]+  , _ ++ ys :: [Int]+  , _ ++ zs :: [Int]+  , xs ++ _ :: [Int]+  , xs ++ ys :: [Int]+  , ys ++ _ :: [Int]+  , ys ++ xs :: [Int]+  , zs ++ _ :: [Int]+  , _ < _ :: Bool+  , _ && _ :: Bool+  , p && p :: Bool+  , _ <= _ :: Bool+  , _ == _ :: Bool+  , p == p :: Bool+  , _ || _ :: Bool+  , p || p :: Bool+  , _ ==> _ :: Bool+  , _ < _ :: Bool+  , _ <= _ :: Bool+  , _ == _ :: Bool+  , x == x :: Bool+  , _ * _ :: Int+  , x * x :: Int+  , _ + _ :: Int+  , x + x :: Int+  , y + y :: Int+  , _ ++ _ :: [Int]+  , xs ++ xs :: [Int]+  , not (not _) :: Bool+  , not (not p) :: Bool+  , not (not q) :: Bool+  , not (not r) :: Bool+  , id (id _) :: Int+  , id (id x) :: Int+  , id (id y) :: Int+  , id (id z) :: Int+  , id (id x') :: Int+  , id (id y') :: Int+  , abs (abs _) :: Int+  , abs (abs x) :: Int+  , abs (abs y) :: Int+  , negate (negate _) :: Int+  , negate (negate x) :: Int+  , negate (negate y) :: Int+  , tail (tail _) :: [Int]+  , tail (tail xs) :: [Int]+  , f (ord 'a') :: Int+  , f (id 0) :: Int+  , f (id 1) :: Int+  , f (abs 0) :: Int+  , f (negate 0) :: Int+  , f (head []) :: Int+  , g (id 0) :: Int+  , not (odd _) :: Bool+  , not (odd x) :: Bool+  , not (even _) :: Bool+  , not (even x) :: Bool+  , odd (ord _) :: Bool+  , odd (id _) :: Bool+  , odd (id x) :: Bool+  , odd (abs _) :: Bool+  , odd (negate _) :: Bool+  , odd (head _) :: Bool+  , even (ord _) :: Bool+  , even (id _) :: Bool+  , even (id x) :: Bool+  , even (abs _) :: Bool+  , even (negate _) :: Bool+  , even (head _) :: Bool+  , id (f 0) :: Int+  , id (f 1) :: Int+  , id (f (-1)) :: Int+  , id (g 0) :: Int+  , id (g 1) :: Int+  , id (h 0) :: Int+  , id (ord _) :: Int+  , id (ord c) :: Int+  , id (ord d) :: Int+  , id (ord e) :: Int+  , id (abs _) :: Int+  , id (abs x) :: Int+  , id (abs y) :: Int+  , id (abs z) :: Int+  , id (abs x') :: Int+  , id (negate _) :: Int+  , id (negate x) :: Int+  , id (negate y) :: Int+  , id (negate z) :: Int+  , id (negate x') :: Int+  , id (head _) :: Int+  , id (head xs) :: Int+  , id (head ys) :: Int+  , id (head zs) :: Int+  , id (head xs') :: Int+  , abs (f 0) :: Int+  , abs (ord _) :: Int+  , abs (ord c) :: Int+  , abs (ord d) :: Int+  , abs (id _) :: Int+  , abs (id x) :: Int+  , abs (id y) :: Int+  , abs (id z) :: Int+  , abs (negate _) :: Int+  , abs (negate x) :: Int+  , abs (negate y) :: Int+  , abs (head _) :: Int+  , abs (head xs) :: Int+  , abs (head ys) :: Int+  , negate (f 0) :: Int+  , negate (ord _) :: Int+  , negate (ord c) :: Int+  , negate (ord d) :: Int+  , negate (id _) :: Int+  , negate (id x) :: Int+  , negate (id y) :: Int+  , negate (id z) :: Int+  , negate (abs _) :: Int+  , negate (abs x) :: Int+  , negate (abs y) :: Int+  , negate (head _) :: Int+  , negate (head xs) :: Int+  , negate (head ys) :: Int+  , head (sort _) :: Int+  , head (sort xs) :: Int+  , head (tail _) :: Int+  , head (tail xs) :: Int+  , head (tail ys) :: Int+  , sort (tail _) :: [Int]+  , tail (sort _) :: [Int]+  , (not _ &&) :: Bool -> Bool+  , (not _ ||) :: Bool -> Bool+  , (not p ||) :: Bool -> Bool+  , (ord _ *) :: Int -> Int+  , (id _ *) :: Int -> Int+  , (id x *) :: Int -> Int+  , (abs _ *) :: Int -> Int+  , (negate _ *) :: Int -> Int+  , (head _ *) :: Int -> Int+  , (ord _ +) :: Int -> Int+  , (ord c +) :: Int -> Int+  , (id _ +) :: Int -> Int+  , (id x +) :: Int -> Int+  , (id y +) :: Int -> Int+  , (abs _ +) :: Int -> Int+  , (abs x +) :: Int -> Int+  , (negate _ +) :: Int -> Int+  , (negate x +) :: Int -> Int+  , (head _ +) :: Int -> Int+  , (head xs +) :: Int -> Int+  , _ && False :: Bool+  , _ && True :: Bool+  , p && False :: Bool+  , p && True :: Bool+  , False && _ :: Bool+  , False && p :: Bool+  , True && _ :: Bool+  , True && p :: Bool+  , _ <= False :: Bool+  , _ <= True :: Bool+  , False <= _ :: Bool+  , True <= _ :: Bool+  , _ == False :: Bool+  , _ == True :: Bool+  , p == False :: Bool+  , p == True :: Bool+  , False == _ :: Bool+  , False == p :: Bool+  , True == _ :: Bool+  , True == p :: Bool+  , _ || False :: Bool+  , _ || True :: Bool+  , p || False :: Bool+  , p || True :: Bool+  , q || False :: Bool+  , q || True :: Bool+  , False || _ :: Bool+  , False || p :: Bool+  , False || q :: Bool+  , True || _ :: Bool+  , True || p :: Bool+  , True || q :: Bool+  , _ ==> False :: Bool+  , _ ==> True :: Bool+  , False ==> _ :: Bool+  , True ==> _ :: Bool+  , _ <= 0 :: Bool+  , 0 <= _ :: Bool+  , _ == 0 :: Bool+  , _ == 1 :: Bool+  , x == 0 :: Bool+  , 0 == _ :: Bool+  , 0 == x :: Bool+  , 1 == _ :: Bool+  , _ * 0 :: Int+  , _ * 1 :: Int+  , _ * (-1) :: Int+  , x * 0 :: Int+  , x * 1 :: Int+  , y * 0 :: Int+  , 0 * _ :: Int+  , 0 * x :: Int+  , 0 * y :: Int+  , 1 * _ :: Int+  , 1 * x :: Int+  , (-1) * _ :: Int+  , _ + 0 :: Int+  , _ + 1 :: Int+  , _ + 2 :: Int+  , _ + (-1) :: Int+  , x + 0 :: Int+  , x + 1 :: Int+  , x + (-1) :: Int+  , y + 0 :: Int+  , y + 1 :: Int+  , z + 0 :: Int+  , 0 + _ :: Int+  , 0 + x :: Int+  , 0 + y :: Int+  , 0 + z :: Int+  , 1 + _ :: Int+  , 1 + x :: Int+  , 1 + y :: Int+  , 2 + _ :: Int+  , (-1) + _ :: Int+  , (-1) + x :: Int+  , elem _ [] :: Bool+  , elem _ [0] :: Bool+  , elem x [] :: Bool+  , elem 0 _ :: Bool+  , elem 0 xs :: Bool+  , elem 1 _ :: Bool+  , [_] :: [Int]+  , _:[0] :: [Int]+  , _:[1] :: [Int]+  , _:[-1] :: [Int]+  , _:[0,0] :: [Int]+  , _:[0,1] :: [Int]+  , _:[1,0] :: [Int]+  , _:[0,0,0] :: [Int]+  , [x] :: [Int]+  , x:[0] :: [Int]+  , x:[1] :: [Int]+  , x:[0,0] :: [Int]+  , [y] :: [Int]+  , y:[0] :: [Int]+  , [z] :: [Int]+  , 0:_ :: [Int]+  , 0:xs :: [Int]+  , 0:ys :: [Int]+  , 0:zs :: [Int]+  , 1:_ :: [Int]+  , 1:xs :: [Int]+  , 1:ys :: [Int]+  , 2:_ :: [Int]+  , (-1):_ :: [Int]+  , (-1):xs :: [Int]+  , insert _ [] :: [Int]+  , insert _ [0] :: [Int]+  , insert x [] :: [Int]+  , insert 0 _ :: [Int]+  , insert 0 xs :: [Int]+  , insert 1 _ :: [Int]+  , _ ++ [] :: [Int]+  , _ ++ [0] :: [Int]+  , _ ++ [1] :: [Int]+  , _ ++ [0,0] :: [Int]+  , xs ++ [] :: [Int]+  , xs ++ [0] :: [Int]+  , ys ++ [] :: [Int]+  , [] ++ _ :: [Int]+  , [] ++ xs :: [Int]+  , [] ++ ys :: [Int]+  , [0] ++ _ :: [Int]+  , [0] ++ xs :: [Int]+  , [1] ++ _ :: [Int]+  , [0,0] ++ _ :: [Int]+  , not (not False) :: Bool+  , not (not True) :: Bool+  , id (id 0) :: Int+  , id (id 1) :: Int+  , id (id 2) :: Int+  , id (id (-1)) :: Int+  , id (id (-2)) :: Int+  , abs (abs 0) :: Int+  , abs (abs 1) :: Int+  , negate (negate 0) :: Int+  , negate (negate 1) :: Int+  , tail (tail []) :: [Int]+  , False && False :: Bool+  , True && True :: Bool+  , False == False :: Bool+  , True == True :: Bool+  , False || False :: Bool+  , True || True :: Bool+  , 0 == 0 :: Bool+  , 0 * 0 :: Int+  , 0 + 0 :: Int+  , 1 + 1 :: Int+  , [] ++ [] :: [Int]+  , not (odd 0) :: Bool+  , not (even 0) :: Bool+  , odd (id 0) :: Bool+  , even (id 0) :: Bool+  , id (ord ' ') :: Int+  , id (ord 'a') :: Int+  , id (ord 'b') :: Int+  , id (abs 0) :: Int+  , id (abs 1) :: Int+  , id (abs 2) :: Int+  , id (abs (-1)) :: Int+  , id (negate 0) :: Int+  , id (negate 1) :: Int+  , id (negate 2) :: Int+  , id (negate (-1)) :: Int+  , id (head []) :: Int+  , id (head [0]) :: Int+  , id (head [1]) :: Int+  , id (head [-1]) :: Int+  , id (head [0,0]) :: Int+  , id (head [0,1]) :: Int+  , id (head [1,0]) :: Int+  , id (head [0,0,0]) :: Int+  , abs (ord ' ') :: Int+  , abs (ord 'a') :: Int+  , abs (id 0) :: Int+  , abs (id 1) :: Int+  , abs (id (-1)) :: Int+  , abs (negate 0) :: Int+  , abs (negate 1) :: Int+  , abs (head []) :: Int+  , abs (head [0]) :: Int+  , negate (ord ' ') :: Int+  , negate (ord 'a') :: Int+  , negate (id 0) :: Int+  , negate (id 1) :: Int+  , negate (id (-1)) :: Int+  , negate (abs 0) :: Int+  , negate (abs 1) :: Int+  , negate (head []) :: Int+  , negate (head [0]) :: Int+  , head (sort []) :: Int+  , head (tail []) :: Int+  , head (tail [0]) :: Int+  , (not False ||) :: Bool -> Bool+  , (not True ||) :: Bool -> Bool+  , (id 0 *) :: Int -> Int+  , (ord 'a' +) :: Int -> Int+  , (id 0 +) :: Int -> Int+  , (id 1 +) :: Int -> Int+  , (abs 0 +) :: Int -> Int+  , (negate 0 +) :: Int -> Int+  , (head [] +) :: Int -> Int+  , False && True :: Bool+  , True && False :: Bool+  , False == True :: Bool+  , True == False :: Bool+  , False || True :: Bool+  , True || False :: Bool+  , 0 * 1 :: Int+  , 1 * 0 :: Int+  , 0 + 1 :: Int+  , 0 + (-1) :: Int+  , 1 + 0 :: Int+  , (-1) + 0 :: Int+  , elem 0 [] :: Bool+  , [0] :: [Int]+  , 0:[0] :: [Int]+  , 0:[1] :: [Int]+  , 0:[0,0] :: [Int]+  , [1] :: [Int]+  , 1:[0] :: [Int]+  , [-1] :: [Int]+  , insert 0 [] :: [Int]+  , [] ++ [0] :: [Int]+  , [0] ++ [] :: [Int]+  , f (_ + x) :: Int+  , f (x + _) :: Int+  , _ + f x :: Int+  , x + f _ :: Int+  , f _ + x :: Int+  , f x + _ :: Int+  , f _:_ :: [Int]+  , f _:xs :: [Int]+  , f x:_ :: [Int]+  , g _:_ :: [Int]+  , f (_ * _) :: Int+  , f (_ + _) :: Int+  , g (_ + _) :: Int+  , id (f (f _)) :: Int+  , _ * f _ :: Int+  , f _ * _ :: Int+  , _ + f _ :: Int+  , _ + g _ :: Int+  , f _ + _ :: Int+  , g _ + _ :: Int+  , f (id (id _)) :: Int+  , f (id (id x)) :: Int+  , g (id (id _)) :: Int+  , id (f (id _)) :: Int+  , id (f (id x)) :: Int+  , id (f (id y)) :: Int+  , id (g (id _)) :: Int+  , id (g (id x)) :: Int+  , id (h (id _)) :: Int+  , id (id (f _)) :: Int+  , id (id (f x)) :: Int+  , id (id (f y)) :: Int+  , id (id (g _)) :: Int+  , id (id (g x)) :: Int+  , id (id (h _)) :: Int+  , ((_ + x) +) :: Int -> Int+  , ((x + _) +) :: Int -> Int+  , f (id (ord _)) :: Int+  , f (id (abs _)) :: Int+  , f (id (negate _)) :: Int+  , f (id (head _)) :: Int+  , f (abs (id _)) :: Int+  , f (negate (id _)) :: Int+  , f (_ + 0) :: Int+  , f (0 + _) :: Int+  , not (_ && p) :: Bool+  , not (p && _) :: Bool+  , not (_ == p) :: Bool+  , not (p == _) :: Bool+  , not (_ || p) :: Bool+  , not (_ || q) :: Bool+  , not (p || _) :: Bool+  , not (q || _) :: Bool+  , not (_ == x) :: Bool+  , not (x == _) :: Bool+  , not (elem _ _) :: Bool+  , not (elem _ xs) :: Bool+  , not (elem x _) :: Bool+  , id (f (ord _)) :: Int+  , id (f (ord c)) :: Int+  , id (f (abs _)) :: Int+  , id (f (abs x)) :: Int+  , id (f (negate _)) :: Int+  , id (f (negate x)) :: Int+  , id (f (head _)) :: Int+  , id (f (head xs)) :: Int+  , id (g (ord _)) :: Int+  , id (g (abs _)) :: Int+  , id (g (negate _)) :: Int+  , id (g (head _)) :: Int+  , id (abs (f _)) :: Int+  , id (abs (f x)) :: Int+  , id (abs (g _)) :: Int+  , id (negate (f _)) :: Int+  , id (negate (f x)) :: Int+  , id (negate (g _)) :: Int+  , id (_ * x) :: Int+  , id (_ * y) :: Int+  , id (_ * z) :: Int+  , id (x * _) :: Int+  , id (x * y) :: Int+  , id (y * _) :: Int+  , id (y * x) :: Int+  , id (z * _) :: Int+  , id (_ + x) :: Int+  , id (_ + y) :: Int+  , id (_ + z) :: Int+  , id (_ + x') :: Int+  , id (x + _) :: Int+  , id (x + y) :: Int+  , id (x + z) :: Int+  , id (y + _) :: Int+  , id (y + x) :: Int+  , id (z + _) :: Int+  , id (z + x) :: Int+  , id (x' + _) :: Int+  , abs (f (id _)) :: Int+  , abs (id (f _)) :: Int+  , abs (_ * x) :: Int+  , abs (x * _) :: Int+  , abs (_ + x) :: Int+  , abs (_ + y) :: Int+  , abs (x + _) :: Int+  , abs (y + _) :: Int+  , negate (f (id _)) :: Int+  , negate (id (f _)) :: Int+  , negate (_ * x) :: Int+  , negate (x * _) :: Int+  , negate (_ + x) :: Int+  , negate (_ + y) :: Int+  , negate (x + _) :: Int+  , negate (y + _) :: Int+  , head (_:_) :: Int+  , head (_:xs) :: Int+  , head (_:ys) :: Int+  , head (_:zs) :: Int+  , head (x:_) :: Int+  , head (x:xs) :: Int+  , head (x:ys) :: Int+  , head (y:_) :: Int+  , head (y:xs) :: Int+  , head (z:_) :: Int+  , head (insert _ _) :: Int+  , head (insert _ xs) :: Int+  , head (insert x _) :: Int+  , head (_ ++ xs) :: Int+  , head (_ ++ ys) :: Int+  , head (xs ++ _) :: Int+  , head (ys ++ _) :: Int+  , sort (_:_) :: [Int]+  , sort (_:xs) :: [Int]+  , sort (x:_) :: [Int]+  , tail (_:_) :: [Int]+  , tail (_:xs) :: [Int]+  , tail (_:ys) :: [Int]+  , tail (x:_) :: [Int]+  , tail (x:xs) :: [Int]+  , tail (y:_) :: [Int]+  , tail (insert _ _) :: [Int]+  , tail (_ ++ xs) :: [Int]+  , tail (xs ++ _) :: [Int]+  , _ && not p :: Bool+  , p && not _ :: Bool+  , not _ && p :: Bool+  , not p && _ :: Bool+  , _ == not p :: Bool+  , p == not _ :: Bool+  , not _ == p :: Bool+  , not p == _ :: Bool+  , _ || not p :: Bool+  , _ || not q :: Bool+  , _ || odd _ :: Bool+  , _ || even _ :: Bool+  , p || not _ :: Bool+  , q || not _ :: Bool+  , not _ || p :: Bool+  , not _ || q :: Bool+  , not p || _ :: Bool+  , not q || _ :: Bool+  , odd _ || _ :: Bool+  , even _ || _ :: Bool+  , _ == ord _ :: Bool+  , _ == id x :: Bool+  , _ == head _ :: Bool+  , x == id _ :: Bool+  , ord _ == _ :: Bool+  , id _ == x :: Bool+  , id x == _ :: Bool+  , head _ == _ :: Bool+  , _ * ord _ :: Int+  , _ * ord c :: Int+  , _ * id x :: Int+  , _ * id y :: Int+  , _ * abs x :: Int+  , _ * negate x :: Int+  , _ * head _ :: Int+  , _ * head xs :: Int+  , x * ord _ :: Int+  , x * id _ :: Int+  , x * abs _ :: Int+  , x * negate _ :: Int+  , x * head _ :: Int+  , y * id _ :: Int+  , ord _ * _ :: Int+  , ord _ * x :: Int+  , ord c * _ :: Int+  , id _ * x :: Int+  , id _ * y :: Int+  , id x * _ :: Int+  , id y * _ :: Int+  , abs _ * x :: Int+  , abs x * _ :: Int+  , negate _ * x :: Int+  , negate x * _ :: Int+  , head _ * _ :: Int+  , head _ * x :: Int+  , head xs * _ :: Int+  , _ + f 0 :: Int+  , _ + ord _ :: Int+  , _ + ord c :: Int+  , _ + ord d :: Int+  , _ + id x :: Int+  , _ + id y :: Int+  , _ + id z :: Int+  , _ + abs x :: Int+  , _ + abs y :: Int+  , _ + negate x :: Int+  , _ + negate y :: Int+  , _ + head _ :: Int+  , _ + head xs :: Int+  , _ + head ys :: Int+  , x + ord _ :: Int+  , x + ord c :: Int+  , x + id _ :: Int+  , x + id y :: Int+  , x + abs _ :: Int+  , x + negate _ :: Int+  , x + head _ :: Int+  , x + head xs :: Int+  , y + ord _ :: Int+  , y + id _ :: Int+  , y + id x :: Int+  , y + abs _ :: Int+  , y + negate _ :: Int+  , y + head _ :: Int+  , z + id _ :: Int+  , 0 + f _ :: Int+  , f _ + 0 :: Int+  , f 0 + _ :: Int+  , ord _ + _ :: Int+  , ord _ + x :: Int+  , ord _ + y :: Int+  , ord c + _ :: Int+  , ord c + x :: Int+  , ord d + _ :: Int+  , id _ + x :: Int+  , id _ + y :: Int+  , id _ + z :: Int+  , id x + _ :: Int+  , id x + y :: Int+  , id y + _ :: Int+  , id y + x :: Int+  , id z + _ :: Int+  , abs _ + x :: Int+  , abs _ + y :: Int+  , abs x + _ :: Int+  , abs y + _ :: Int+  , negate _ + x :: Int+  , negate _ + y :: Int+  , negate x + _ :: Int+  , negate y + _ :: Int+  , head _ + _ :: Int+  , head _ + x :: Int+  , head _ + y :: Int+  , head xs + _ :: Int+  , head xs + x :: Int+  , head ys + _ :: Int+  , elem _ (tail _) :: Bool+  , elem (ord _) _ :: Bool+  , elem (id _) _ :: Bool+  , elem (id _) xs :: Bool+  , elem (id x) _ :: Bool+  , elem (abs _) _ :: Bool+  , elem (negate _) _ :: Bool+  , _:sort _ :: [Int]+  , _:sort xs :: [Int]+  , _:tail _ :: [Int]+  , _:tail xs :: [Int]+  , _:tail ys :: [Int]+  , x:sort _ :: [Int]+  , x:tail _ :: [Int]+  , x:tail xs :: [Int]+  , y:tail _ :: [Int]+  , [f _] :: [Int]+  , f 0:_ :: [Int]+  , ord _:_ :: [Int]+  , ord _:xs :: [Int]+  , ord _:ys :: [Int]+  , ord c:_ :: [Int]+  , ord c:xs :: [Int]+  , ord d:_ :: [Int]+  , id _:_ :: [Int]+  , id _:xs :: [Int]+  , id _:ys :: [Int]+  , id _:zs :: [Int]+  , id x:_ :: [Int]+  , id x:xs :: [Int]+  , id x:ys :: [Int]+  , id y:_ :: [Int]+  , id y:xs :: [Int]+  , id z:_ :: [Int]+  , abs _:_ :: [Int]+  , abs _:xs :: [Int]+  , abs _:ys :: [Int]+  , abs x:_ :: [Int]+  , abs x:xs :: [Int]+  , abs y:_ :: [Int]+  , negate _:_ :: [Int]+  , negate _:xs :: [Int]+  , negate _:ys :: [Int]+  , negate x:_ :: [Int]+  , negate x:xs :: [Int]+  , negate y:_ :: [Int]+  , head _:xs :: [Int]+  , head _:ys :: [Int]+  , head xs:_ :: [Int]+  , head ys:_ :: [Int]+  , insert _ (tail _) :: [Int]+  , insert (ord _) _ :: [Int]+  , insert (id _) _ :: [Int]+  , insert (id _) xs :: [Int]+  , insert (id x) _ :: [Int]+  , insert (abs _) _ :: [Int]+  , insert (negate _) _ :: [Int]+  , _ ++ tail xs :: [Int]+  , xs ++ tail _ :: [Int]+  , tail _ ++ xs :: [Int]+  , tail xs ++ _ :: [Int]+  , ((_ || _) ||) :: Bool -> Bool+  , ((_ + _) +) :: Int -> Int+  , not (_ && _) :: Bool+  , not (_ <= _) :: Bool+  , not (_ == _) :: Bool+  , not (_ || _) :: Bool+  , not (p || p) :: Bool+  , not (_ ==> _) :: Bool+  , not (_ <= _) :: Bool+  , not (_ == _) :: Bool+  , odd (_ + _) :: Bool+  , even (_ + _) :: Bool+  , id (_ * _) :: Int+  , id (x * x) :: Int+  , id (_ + _) :: Int+  , id (x + x) :: Int+  , id (y + y) :: Int+  , abs (_ * _) :: Int+  , abs (_ + _) :: Int+  , abs (x + x) :: Int+  , negate (_ * _) :: Int+  , negate (_ + _) :: Int+  , negate (x + x) :: Int+  , head (_ ++ _) :: Int+  , head (xs ++ xs) :: Int+  , sort (_ ++ _) :: [Int]+  , tail (_ ++ _) :: [Int]+  , ((_ + _) *) :: Int -> Int+  , (_ * _ +) :: Int -> Int+  , _ && not _ :: Bool+  , not _ && _ :: Bool+  , _ <= not _ :: Bool+  , not _ <= _ :: Bool+  , _ == not _ :: Bool+  , not _ == _ :: Bool+  , _ || not _ :: Bool+  , p || not p :: Bool+  , not _ || _ :: Bool+  , not p || p :: Bool+  , _ ==> not _ :: Bool+  , not _ ==> _ :: Bool+  , _ <= id _ :: Bool+  , id _ <= _ :: Bool+  , _ == id _ :: Bool+  , _ == abs _ :: Bool+  , _ == negate _ :: Bool+  , id _ == _ :: Bool+  , abs _ == _ :: Bool+  , negate _ == _ :: Bool+  , _ * id _ :: Int+  , _ * abs _ :: Int+  , _ * negate _ :: Int+  , x * id x :: Int+  , id _ * _ :: Int+  , id x * x :: Int+  , abs _ * _ :: Int+  , negate _ * _ :: Int+  , _ + id _ :: Int+  , _ + abs _ :: Int+  , _ + negate _ :: Int+  , x + id x :: Int+  , x + abs x :: Int+  , x + negate x :: Int+  , id _ + _ :: Int+  , id x + x :: Int+  , abs _ + _ :: Int+  , abs x + x :: Int+  , negate _ + _ :: Int+  , negate x + x :: Int+  , elem (head _) _ :: Bool+  , head _:_ :: [Int]+  , head xs:xs :: [Int]+  , insert (head _) _ :: [Int]+  , _ ++ sort _ :: [Int]+  , _ ++ tail _ :: [Int]+  , sort _ ++ _ :: [Int]+  , tail _ ++ _ :: [Int]+  , not (not (not _)) :: Bool+  , not (not (not p)) :: Bool+  , not (not (not q)) :: Bool+  , id (id (id _)) :: Int+  , id (id (id x)) :: Int+  , id (id (id y)) :: Int+  , id (id (id z)) :: Int+  , id (id (id x')) :: Int+  , abs (abs (abs _)) :: Int+  , negate (negate (negate _)) :: Int+  , f (id (id 0)) :: Int+  , not (not (odd _)) :: Bool+  , not (not (even _)) :: Bool+  , odd (id (id _)) :: Bool+  , even (id (id _)) :: Bool+  , id (f (id 0)) :: Int+  , id (f (id 1)) :: Int+  , id (g (id 0)) :: Int+  , id (id (f 0)) :: Int+  , id (id (f 1)) :: Int+  , id (id (g 0)) :: Int+  , id (id (ord _)) :: Int+  , id (id (ord c)) :: Int+  , id (id (ord d)) :: Int+  , id (id (ord e)) :: Int+  , id (id (abs _)) :: Int+  , id (id (abs x)) :: Int+  , id (id (abs y)) :: Int+  , id (id (abs z)) :: Int+  , id (id (negate _)) :: Int+  , id (id (negate x)) :: Int+  , id (id (negate y)) :: Int+  , id (id (negate z)) :: Int+  , id (id (head _)) :: Int+  , id (id (head xs)) :: Int+  , id (id (head ys)) :: Int+  , id (id (head zs)) :: Int+  , id (abs (id _)) :: Int+  , id (abs (id x)) :: Int+  , id (abs (id y)) :: Int+  , id (abs (id z)) :: Int+  , id (abs (abs _)) :: Int+  , id (abs (abs x)) :: Int+  , id (abs (abs y)) :: Int+  , id (negate (id _)) :: Int+  , id (negate (id x)) :: Int+  , id (negate (id y)) :: Int+  , id (negate (id z)) :: Int+  , id (negate (negate _)) :: Int+  , id (negate (negate x)) :: Int+  , id (negate (negate y)) :: Int+  , abs (id (id _)) :: Int+  , abs (id (id x)) :: Int+  , abs (id (id y)) :: Int+  , abs (id (abs _)) :: Int+  , abs (id (abs x)) :: Int+  , abs (abs (ord _)) :: Int+  , abs (abs (id _)) :: Int+  , abs (abs (id x)) :: Int+  , abs (abs (negate _)) :: Int+  , abs (abs (head _)) :: Int+  , abs (negate (abs _)) :: Int+  , abs (negate (negate _)) :: Int+  , negate (id (id _)) :: Int+  , negate (id (id x)) :: Int+  , negate (id (id y)) :: Int+  , negate (id (negate _)) :: Int+  , negate (id (negate x)) :: Int+  , negate (abs (abs _)) :: Int+  , negate (abs (negate _)) :: Int+  , negate (negate (ord _)) :: Int+  , negate (negate (id _)) :: Int+  , negate (negate (id x)) :: Int+  , negate (negate (abs _)) :: Int+  , negate (negate (head _)) :: Int+  , head (tail (tail _)) :: Int+  , (not (not _) ||) :: Bool -> Bool+  , (id (id _) *) :: Int -> Int+  , (id (id _) +) :: Int -> Int+  , (id (id x) +) :: Int -> Int+  , ((_ + 0) +) :: Int -> Int+  , ((0 + _) +) :: Int -> Int+  , not (odd (id _)) :: Bool+  , not (even (id _)) :: Bool+  , not (_ && False) :: Bool+  , not (_ && True) :: Bool+  , not (False && _) :: Bool+  , not (True && _) :: Bool+  , not (_ == False) :: Bool+  , not (_ == True) :: Bool+  , not (False == _) :: Bool+  , not (True == _) :: Bool+  , not (_ || False) :: Bool+  , not (_ || True) :: Bool+  , not (p || False) :: Bool+  , not (p || True) :: Bool+  , not (False || _) :: Bool+  , not (False || p) :: Bool+  , not (True || _) :: Bool+  , not (True || p) :: Bool+  , not (_ == 0) :: Bool+  , not (0 == _) :: Bool+  , not (elem _ []) :: Bool+  , not (elem 0 _) :: Bool+  , id (f (ord 'a')) :: Int+  , id (f (abs 0)) :: Int+  , id (f (negate 0)) :: Int+  , id (f (head [])) :: Int+  , id (abs (f 0)) :: Int+  , id (abs (ord _)) :: Int+  , id (abs (ord c)) :: Int+  , id (abs (ord d)) :: Int+  , id (abs (negate _)) :: Int+  , id (abs (negate x)) :: Int+  , id (abs (negate y)) :: Int+  , id (abs (head _)) :: Int+  , id (abs (head xs)) :: Int+  , id (abs (head ys)) :: Int+  , id (negate (f 0)) :: Int+  , id (negate (ord _)) :: Int+  , id (negate (ord c)) :: Int+  , id (negate (ord d)) :: Int+  , id (negate (abs _)) :: Int+  , id (negate (abs x)) :: Int+  , id (negate (abs y)) :: Int+  , id (negate (head _)) :: Int+  , id (negate (head xs)) :: Int+  , id (negate (head ys)) :: Int+  , id (head (sort _)) :: Int+  , id (head (tail _)) :: Int+  , id (head (tail xs)) :: Int+  , id (head (tail ys)) :: Int+  , id (_ * 0) :: Int+  , id (_ * 1) :: Int+  , id (_ * (-1)) :: Int+  , id (x * 0) :: Int+  , id (x * 1) :: Int+  , id (y * 0) :: Int+  , id (0 * _) :: Int+  , id (0 * x) :: Int+  , id (0 * y) :: Int+  , id (1 * _) :: Int+  , id (1 * x) :: Int+  , id ((-1) * _) :: Int+  , id (_ + 0) :: Int+  , id (_ + 1) :: Int+  , id (_ + 2) :: Int+  , id (_ + (-1)) :: Int+  , id (x + 0) :: Int+  , id (x + 1) :: Int+  , id (x + (-1)) :: Int+  , id (y + 0) :: Int+  , id (y + 1) :: Int+  , id (z + 0) :: Int+  , id (0 + _) :: Int+  , id (0 + x) :: Int+  , id (0 + y) :: Int+  , id (0 + z) :: Int+  , id (1 + _) :: Int+  , id (1 + x) :: Int+  , id (1 + y) :: Int+  , id (2 + _) :: Int+  , id ((-1) + _) :: Int+  , id ((-1) + x) :: Int+  , abs (id (ord _)) :: Int+  , abs (id (ord c)) :: Int+  , abs (id (negate _)) :: Int+  , abs (id (negate x)) :: Int+  , abs (id (head _)) :: Int+  , abs (id (head xs)) :: Int+  , abs (negate (ord _)) :: Int+  , abs (negate (id _)) :: Int+  , abs (negate (id x)) :: Int+  , abs (negate (head _)) :: Int+  , abs (head (tail _)) :: Int+  , abs (_ * 0) :: Int+  , abs (0 * _) :: Int+  , abs (_ + 0) :: Int+  , abs (_ + 1) :: Int+  , abs (x + 0) :: Int+  , abs (0 + _) :: Int+  , abs (0 + x) :: Int+  , abs (1 + _) :: Int+  , negate (id (ord _)) :: Int+  , negate (id (ord c)) :: Int+  , negate (id (abs _)) :: Int+  , negate (id (abs x)) :: Int+  , negate (id (head _)) :: Int+  , negate (id (head xs)) :: Int+  , negate (abs (ord _)) :: Int+  , negate (abs (id _)) :: Int+  , negate (abs (id x)) :: Int+  , negate (abs (head _)) :: Int+  , negate (head (tail _)) :: Int+  , negate (_ * 0) :: Int+  , negate (0 * _) :: Int+  , negate (_ + 0) :: Int+  , negate (_ + 1) :: Int+  , negate (x + 0) :: Int+  , negate (0 + _) :: Int+  , negate (0 + x) :: Int+  , negate (1 + _) :: Int+  , head [_] :: Int+  , head (_:[0]) :: Int+  , head (_:[1]) :: Int+  , head (_:[0,0]) :: Int+  , head [x] :: Int+  , head (x:[0]) :: Int+  , head [y] :: Int+  , head (0:_) :: Int+  , head (0:xs) :: Int+  , head (0:ys) :: Int+  , head (1:_) :: Int+  , head (1:xs) :: Int+  , head ((-1):_) :: Int+  , head (insert _ []) :: Int+  , head (insert 0 _) :: Int+  , head (_ ++ []) :: Int+  , head (_ ++ [0]) :: Int+  , head (xs ++ []) :: Int+  , head ([] ++ _) :: Int+  , head ([] ++ xs) :: Int+  , head ([0] ++ _) :: Int+  , sort [_] :: [Int]+  , sort (0:_) :: [Int]+  , tail [_] :: [Int]+  , tail (_:[0]) :: [Int]+  , tail [x] :: [Int]+  , tail (0:_) :: [Int]+  , tail (0:xs) :: [Int]+  , tail (1:_) :: [Int]+  , tail (_ ++ []) :: [Int]+  , tail ([] ++ _) :: [Int]+  , (id (ord _) +) :: Int -> Int+  , (id (abs _) +) :: Int -> Int+  , (id (negate _) +) :: Int -> Int+  , (id (head _) +) :: Int -> Int+  , (abs (id _) +) :: Int -> Int+  , (negate (id _) +) :: Int -> Int+  , _ && not False :: Bool+  , _ && not True :: Bool+  , False && not _ :: Bool+  , True && not _ :: Bool+  , not _ && False :: Bool+  , not _ && True :: Bool+  , not False && _ :: Bool+  , not True && _ :: Bool+  , _ == not False :: Bool+  , _ == not True :: Bool+  , False == not _ :: Bool+  , True == not _ :: Bool+  , not _ == False :: Bool+  , not _ == True :: Bool+  , not False == _ :: Bool+  , not True == _ :: Bool+  , _ || not False :: Bool+  , _ || not True :: Bool+  , p || not False :: Bool+  , p || not True :: Bool+  , False || not _ :: Bool+  , False || not p :: Bool+  , True || not _ :: Bool+  , True || not p :: Bool+  , not _ || False :: Bool+  , not _ || True :: Bool+  , not p || False :: Bool+  , not p || True :: Bool+  , not False || _ :: Bool+  , not False || p :: Bool+  , not True || _ :: Bool+  , not True || p :: Bool+  , _ == id 0 :: Bool+  , 0 == id _ :: Bool+  , id _ == 0 :: Bool+  , id 0 == _ :: Bool+  , _ * ord 'a' :: Int+  , _ * id 0 :: Int+  , _ * id 1 :: Int+  , _ * abs 0 :: Int+  , _ * negate 0 :: Int+  , _ * head [] :: Int+  , x * id 0 :: Int+  , 0 * ord _ :: Int+  , 0 * id _ :: Int+  , 0 * id x :: Int+  , 0 * abs _ :: Int+  , 0 * negate _ :: Int+  , 0 * head _ :: Int+  , 1 * id _ :: Int+  , ord _ * 0 :: Int+  , ord 'a' * _ :: Int+  , id _ * 0 :: Int+  , id _ * 1 :: Int+  , id x * 0 :: Int+  , id 0 * _ :: Int+  , id 0 * x :: Int+  , id 1 * _ :: Int+  , abs _ * 0 :: Int+  , abs 0 * _ :: Int+  , negate _ * 0 :: Int+  , negate 0 * _ :: Int+  , head _ * 0 :: Int+  , head [] * _ :: Int+  , _ + ord ' ' :: Int+  , _ + ord 'a' :: Int+  , _ + id 0 :: Int+  , _ + id 1 :: Int+  , _ + id (-1) :: Int+  , _ + abs 0 :: Int+  , _ + abs 1 :: Int+  , _ + negate 0 :: Int+  , _ + negate 1 :: Int+  , _ + head [] :: Int+  , _ + head [0] :: Int+  , x + ord 'a' :: Int+  , x + id 0 :: Int+  , x + id 1 :: Int+  , x + abs 0 :: Int+  , x + negate 0 :: Int+  , x + head [] :: Int+  , y + id 0 :: Int+  , 0 + ord _ :: Int+  , 0 + ord c :: Int+  , 0 + id _ :: Int+  , 0 + id x :: Int+  , 0 + id y :: Int+  , 0 + abs _ :: Int+  , 0 + abs x :: Int+  , 0 + negate _ :: Int+  , 0 + negate x :: Int+  , 0 + head _ :: Int+  , 0 + head xs :: Int+  , 1 + ord _ :: Int+  , 1 + id _ :: Int+  , 1 + id x :: Int+  , 1 + abs _ :: Int+  , 1 + negate _ :: Int+  , 1 + head _ :: Int+  , (-1) + id _ :: Int+  , ord _ + 0 :: Int+  , ord _ + 1 :: Int+  , ord c + 0 :: Int+  , ord ' ' + _ :: Int+  , ord 'a' + _ :: Int+  , ord 'a' + x :: Int+  , id _ + 0 :: Int+  , id _ + 1 :: Int+  , id _ + (-1) :: Int+  , id x + 0 :: Int+  , id x + 1 :: Int+  , id y + 0 :: Int+  , id 0 + _ :: Int+  , id 0 + x :: Int+  , id 0 + y :: Int+  , id 1 + _ :: Int+  , id 1 + x :: Int+  , id (-1) + _ :: Int+  , abs _ + 0 :: Int+  , abs _ + 1 :: Int+  , abs x + 0 :: Int+  , abs 0 + _ :: Int+  , abs 0 + x :: Int+  , abs 1 + _ :: Int+  , negate _ + 0 :: Int+  , negate _ + 1 :: Int+  , negate x + 0 :: Int+  , negate 0 + _ :: Int+  , negate 0 + x :: Int+  , negate 1 + _ :: Int+  , head _ + 0 :: Int+  , head _ + 1 :: Int+  , head xs + 0 :: Int+  , head [] + _ :: Int+  , head [] + x :: Int+  , head [0] + _ :: Int+  , elem (id _) [] :: Bool+  , elem (id 0) _ :: Bool+  , _:sort [] :: [Int]+  , _:tail [] :: [Int]+  , _:tail [0] :: [Int]+  , x:tail [] :: [Int]+  , 0:sort _ :: [Int]+  , 0:tail _ :: [Int]+  , 0:tail xs :: [Int]+  , 1:tail _ :: [Int]+  , [ord _] :: [Int]+  , ord _:[0] :: [Int]+  , [ord c] :: [Int]+  , ord ' ':_ :: [Int]+  , ord 'a':_ :: [Int]+  , ord 'a':xs :: [Int]+  , [id _] :: [Int]+  , id _:[0] :: [Int]+  , id _:[1] :: [Int]+  , id _:[0,0] :: [Int]+  , [id x] :: [Int]+  , id x:[0] :: [Int]+  , [id y] :: [Int]+  , id 0:_ :: [Int]+  , id 0:xs :: [Int]+  , id 0:ys :: [Int]+  , id 1:_ :: [Int]+  , id 1:xs :: [Int]+  , id (-1):_ :: [Int]+  , [abs _] :: [Int]+  , abs _:[0] :: [Int]+  , [abs x] :: [Int]+  , abs 0:_ :: [Int]+  , abs 0:xs :: [Int]+  , abs 1:_ :: [Int]+  , [negate _] :: [Int]+  , negate _:[0] :: [Int]+  , [negate x] :: [Int]+  , negate 0:_ :: [Int]+  , negate 0:xs :: [Int]+  , negate 1:_ :: [Int]+  , [head _] :: [Int]+  , head _:[0] :: [Int]+  , [head xs] :: [Int]+  , head []:_ :: [Int]+  , head []:xs :: [Int]+  , head [0]:_ :: [Int]+  , insert (id _) [] :: [Int]+  , insert (id 0) _ :: [Int]+  , _ ++ tail [] :: [Int]+  , [] ++ tail _ :: [Int]+  , tail _ ++ [] :: [Int]+  , tail [] ++ _ :: [Int]+  , not (not (not False)) :: Bool+  , not (not (not True)) :: Bool+  , id (id (id 0)) :: Int+  , id (id (id 1)) :: Int+  , id (id (id 2)) :: Int+  , id (id (id (-1))) :: Int+  , not (False || False) :: Bool+  , not (True || True) :: Bool+  , id (id (ord ' ')) :: Int+  , id (id (ord 'a')) :: Int+  , id (id (ord 'b')) :: Int+  , id (id (abs 0)) :: Int+  , id (id (abs 1)) :: Int+  , id (id (abs (-1))) :: Int+  , id (id (negate 0)) :: Int+  , id (id (negate 1)) :: Int+  , id (id (negate (-1))) :: Int+  , id (id (head [])) :: Int+  , id (id (head [0])) :: Int+  , id (id (head [1])) :: Int+  , id (id (head [0,0])) :: Int+  , id (abs (id 0)) :: Int+  , id (abs (id 1)) :: Int+  , id (abs (id (-1))) :: Int+  , id (abs (abs 0)) :: Int+  , id (abs (abs 1)) :: Int+  , id (negate (id 0)) :: Int+  , id (negate (id 1)) :: Int+  , id (negate (id (-1))) :: Int+  , id (negate (negate 0)) :: Int+  , id (negate (negate 1)) :: Int+  , id (0 * 0) :: Int+  , id (0 + 0) :: Int+  , id (1 + 1) :: Int+  , abs (id (id 0)) :: Int+  , abs (id (id 1)) :: Int+  , abs (id (abs 0)) :: Int+  , abs (abs (id 0)) :: Int+  , abs (0 + 0) :: Int+  , negate (id (id 0)) :: Int+  , negate (id (id 1)) :: Int+  , negate (id (negate 0)) :: Int+  , negate (negate (id 0)) :: Int+  , negate (0 + 0) :: Int+  , head ([] ++ []) :: Int+  , (id (id 0) +) :: Int -> Int+  , False || not False :: Bool+  , True || not True :: Bool+  , not False || False :: Bool+  , not True || True :: Bool+  , 0 * id 0 :: Int+  , id 0 * 0 :: Int+  , 0 + id 0 :: Int+  , 0 + abs 0 :: Int+  , 0 + negate 0 :: Int+  , id 0 + 0 :: Int+  , abs 0 + 0 :: Int+  , negate 0 + 0 :: Int+  , [head []] :: [Int]+  , not (False || True) :: Bool+  , not (True || False) :: Bool+  , id (abs (ord ' ')) :: Int+  , id (abs (ord 'a')) :: Int+  , id (abs (negate 0)) :: Int+  , id (abs (negate 1)) :: Int+  , id (abs (head [])) :: Int+  , id (abs (head [0])) :: Int+  , id (negate (ord ' ')) :: Int+  , id (negate (ord 'a')) :: Int+  , id (negate (abs 0)) :: Int+  , id (negate (abs 1)) :: Int+  , id (negate (head [])) :: Int+  , id (negate (head [0])) :: Int+  , id (head (tail [])) :: Int+  , id (head (tail [0])) :: Int+  , id (0 * 1) :: Int+  , id (1 * 0) :: Int+  , id (0 + 1) :: Int+  , id (0 + (-1)) :: Int+  , id (1 + 0) :: Int+  , id ((-1) + 0) :: Int+  , abs (id (ord 'a')) :: Int+  , abs (id (negate 0)) :: Int+  , abs (id (head [])) :: Int+  , abs (negate (id 0)) :: Int+  , negate (id (ord 'a')) :: Int+  , negate (id (abs 0)) :: Int+  , negate (id (head [])) :: Int+  , negate (abs (id 0)) :: Int+  , head [0] :: Int+  , head (0:[0]) :: Int+  , head [1] :: Int+  , tail [0] :: [Int]+  , False || not True :: Bool+  , True || not False :: Bool+  , not False || True :: Bool+  , not True || False :: Bool+  , 0 + ord 'a' :: Int+  , 0 + id 1 :: Int+  , 0 + head [] :: Int+  , 1 + id 0 :: Int+  , ord 'a' + 0 :: Int+  , id 0 + 1 :: Int+  , id 1 + 0 :: Int+  , head [] + 0 :: Int+  , 0:tail [] :: [Int]+  , [ord 'a'] :: [Int]+  , [id 0] :: [Int]+  , id 0:[0] :: [Int]+  , [id 1] :: [Int]+  , [abs 0] :: [Int]+  , [negate 0] :: [Int]+  , _:x:_ :: [Int]+  , _:x:xs :: [Int]+  , _:x:ys :: [Int]+  , _:y:_ :: [Int]+  , _:y:xs :: [Int]+  , _:z:_ :: [Int]+  , x:_:_ :: [Int]+  , x:_:xs :: [Int]+  , x:_:ys :: [Int]+  , x:y:_ :: [Int]+  , y:_:_ :: [Int]+  , y:_:xs :: [Int]+  , y:x:_ :: [Int]+  , z:_:_ :: [Int]+  , f (head (_:_)) :: Int+  , id (f (_ + x)) :: Int+  , id (f (x + _)) :: Int+  , id (_ + f x) :: Int+  , id (x + f _) :: Int+  , id (f _ + x) :: Int+  , id (f x + _) :: Int+  , head (f _:_) :: Int+  , _ || elem _ _ :: Bool+  , elem _ _ || _ :: Bool+  , elem _ (x:_) :: Bool+  , elem x (_:_) :: Bool+  , _:insert x _ :: [Int]+  , _:(_ ++ xs) :: [Int]+  , _:(_ ++ ys) :: [Int]+  , _:(xs ++ _) :: [Int]+  , _:(ys ++ _) :: [Int]+  , x:insert _ _ :: [Int]+  , x:(_ ++ xs) :: [Int]+  , x:(xs ++ _) :: [Int]+  , f (id _):_ :: [Int]+  , id (f _):_ :: [Int]+  , _ * x:_ :: [Int]+  , x * _:_ :: [Int]+  , _ + x:_ :: [Int]+  , _ + x:xs :: [Int]+  , _ + y:_ :: [Int]+  , x + _:_ :: [Int]+  , x + _:xs :: [Int]+  , y + _:_ :: [Int]+  , insert _ (x:_) :: [Int]+  , insert x (_:_) :: [Int]+  , _ ++ (_:xs) :: [Int]+  , _ ++ (_:ys) :: [Int]+  , _ ++ (x:xs) :: [Int]+  , xs ++ (_:_) :: [Int]+  , xs ++ (x:_) :: [Int]+  , ys ++ (_:_) :: [Int]+  , (_:_) ++ xs :: [Int]+  , (_:_) ++ ys :: [Int]+  , (_:xs) ++ _ :: [Int]+  , (_:ys) ++ _ :: [Int]+  , (x:_) ++ xs :: [Int]+  , (x:xs) ++ _ :: [Int]+  , _ || (_ || p) :: Bool+  , _ || (p || _) :: Bool+  , p || (_ || _) :: Bool+  , (_ || _) || p :: Bool+  , (_ || p) || _ :: Bool+  , (p || _) || _ :: Bool+  , _ + (_ + x) :: Int+  , _ + (_ + y) :: Int+  , _ + (x + _) :: Int+  , _ + (x + x) :: Int+  , _ + (y + _) :: Int+  , x + (_ + _) :: Int+  , x + (_ + x) :: Int+  , x + (x + _) :: Int+  , y + (_ + _) :: Int+  , (_ + _) + x :: Int+  , (_ + _) + y :: Int+  , (_ + x) + _ :: Int+  , (_ + x) + x :: Int+  , (_ + y) + _ :: Int+  , (x + _) + _ :: Int+  , (x + _) + x :: Int+  , (x + x) + _ :: Int+  , (y + _) + _ :: Int+  , _:_:_ :: [Int]+  , _:_:xs :: [Int]+  , _:_:ys :: [Int]+  , _:_:zs :: [Int]+  , x:x:_ :: [Int]+  , x:x:xs :: [Int]+  , _ ++ (_ ++ xs) :: [Int]+  , _ ++ (xs ++ _) :: [Int]+  , xs ++ (_ ++ _) :: [Int]+  , (_ ++ _) ++ xs :: [Int]+  , (_ ++ xs) ++ _ :: [Int]+  , (xs ++ _) ++ _ :: [Int]+  , f (id (_ + _)) :: Int+  , f (_ + id _) :: Int+  , f (id _ + _) :: Int+  , id (f (_ * _)) :: Int+  , id (f (_ + _)) :: Int+  , id (g (_ + _)) :: Int+  , id (_ * f _) :: Int+  , id (f _ * _) :: Int+  , id (_ + f _) :: Int+  , id (_ + g _) :: Int+  , id (f _ + _) :: Int+  , id (g _ + _) :: Int+  , _ || _ == _ :: Bool+  , _ == _ || _ :: Bool+  , _ * (_ + x) :: Int+  , _ * (x + _) :: Int+  , x * (_ + _) :: Int+  , (_ + _) * x :: Int+  , (_ + x) * _ :: Int+  , (x + _) * _ :: Int+  , _ + f (id _) :: Int+  , _ + id (f _) :: Int+  , _ + _ * x :: Int+  , _ + x * _ :: Int+  , x + _ * _ :: Int+  , f _ + id _ :: Int+  , f (id _) + _ :: Int+  , id _ + f _ :: Int+  , id (f _) + _ :: Int+  , _ * _ + x :: Int+  , _ * x + _ :: Int+  , x * _ + _ :: Int+  , elem _ (_:_) :: Bool+  , elem _ (_:xs) :: Bool+  , elem _ (_ ++ _) :: Bool+  , elem (_ + _) _ :: Bool+  , _:insert _ _ :: [Int]+  , _:insert _ xs :: [Int]+  , _:(_ ++ _) :: [Int]+  , _:(xs ++ xs) :: [Int]+  , x:(_ ++ _) :: [Int]+  , y:(_ ++ _) :: [Int]+  , _ * _:_ :: [Int]+  , _ * _:xs :: [Int]+  , _ + _:_ :: [Int]+  , _ + _:xs :: [Int]+  , _ + _:ys :: [Int]+  , x + x:_ :: [Int]+  , insert _ (_:_) :: [Int]+  , insert _ (_:xs) :: [Int]+  , insert _ (_ ++ _) :: [Int]+  , insert (_ + _) _ :: [Int]+  , _ ++ (_:_) :: [Int]+  , _ ++ (x:_) :: [Int]+  , _ ++ (y:_) :: [Int]+  , _ ++ insert _ _ :: [Int]+  , xs ++ (_:xs) :: [Int]+  , (_:_) ++ _ :: [Int]+  , (_:xs) ++ xs :: [Int]+  , (x:_) ++ _ :: [Int]+  , (y:_) ++ _ :: [Int]+  , insert _ _ ++ _ :: [Int]+  , f (id (id (id _))) :: Int+  , id (f (id (id _))) :: Int+  , id (f (id (id x))) :: Int+  , id (g (id (id _))) :: Int+  , id (id (f (id _))) :: Int+  , id (id (f (id x))) :: Int+  , id (id (g (id _))) :: Int+  , id (id (id (f _))) :: Int+  , id (id (id (f x))) :: Int+  , id (id (id (g _))) :: Int+  , not (not (_ || p)) :: Bool+  , not (not (p || _)) :: Bool+  , not (not (elem _ _)) :: Bool+  , not (_ || not p) :: Bool+  , not (p || not _) :: Bool+  , not (not _ || p) :: Bool+  , not (not p || _) :: Bool+  , id (f (id (ord _))) :: Int+  , id (f (id (abs _))) :: Int+  , id (f (id (negate _))) :: Int+  , id (f (id (head _))) :: Int+  , id (f (abs (id _))) :: Int+  , id (f (negate (id _))) :: Int+  , id (id (f (ord _))) :: Int+  , id (id (f (abs _))) :: Int+  , id (id (f (negate _))) :: Int+  , id (id (f (head _))) :: Int+  , id (id (abs (f _))) :: Int+  , id (id (negate (f _))) :: Int+  , id (id (_ * x)) :: Int+  , id (id (_ * y)) :: Int+  , id (id (x * _)) :: Int+  , id (id (y * _)) :: Int+  , id (id (_ + x)) :: Int+  , id (id (_ + y)) :: Int+  , id (id (_ + z)) :: Int+  , id (id (x + _)) :: Int+  , id (id (x + y)) :: Int+  , id (id (y + _)) :: Int+  , id (id (y + x)) :: Int+  , id (id (z + _)) :: Int+  , id (abs (f (id _))) :: Int+  , id (abs (id (f _))) :: Int+  , id (negate (f (id _))) :: Int+  , id (negate (id (f _))) :: Int+  , id (_ * id x) :: Int+  , id (_ * id y) :: Int+  , id (x * id _) :: Int+  , id (y * id _) :: Int+  , id (id _ * x) :: Int+  , id (id _ * y) :: Int+  , id (id x * _) :: Int+  , id (id y * _) :: Int+  , id (_ + id x) :: Int+  , id (_ + id y) :: Int+  , id (_ + id z) :: Int+  , id (x + id _) :: Int+  , id (x + id y) :: Int+  , id (y + id _) :: Int+  , id (y + id x) :: Int+  , id (z + id _) :: Int+  , id (id _ + x) :: Int+  , id (id _ + y) :: Int+  , id (id _ + z) :: Int+  , id (id x + _) :: Int+  , id (id x + y) :: Int+  , id (id y + _) :: Int+  , id (id y + x) :: Int+  , id (id z + _) :: Int+  , head (head _:xs) :: Int+  , head (head xs:_) :: Int+  , tail (tail (_:_)) :: [Int]+  , tail (_:tail _) :: [Int]+  , _ || not (not p) :: Bool+  , p || not (not _) :: Bool+  , not _ || not p :: Bool+  , not p || not _ :: Bool+  , not (not _) || p :: Bool+  , not (not p) || _ :: Bool+  , _ * id (id x) :: Int+  , x * id (id _) :: Int+  , id _ * id x :: Int+  , id x * id _ :: Int+  , id (id _) * x :: Int+  , id (id x) * _ :: Int+  , _ + id (id x) :: Int+  , _ + id (id y) :: Int+  , _ + (x + 0) :: Int+  , _ + (0 + x) :: Int+  , x + id (id _) :: Int+  , x + (_ + 0) :: Int+  , x + (0 + _) :: Int+  , y + id (id _) :: Int+  , 0 + (_ + x) :: Int+  , 0 + (x + _) :: Int+  , id _ + id x :: Int+  , id _ + id y :: Int+  , id x + id _ :: Int+  , id y + id _ :: Int+  , id (id _) + x :: Int+  , id (id _) + y :: Int+  , id (id x) + _ :: Int+  , id (id y) + _ :: Int+  , (_ + x) + 0 :: Int+  , (_ + 0) + x :: Int+  , (x + _) + 0 :: Int+  , (x + 0) + _ :: Int+  , (0 + _) + x :: Int+  , (0 + x) + _ :: Int+  , elem (id (id _)) _ :: Bool+  , _:tail (tail _) :: [Int]+  , [_,x] :: [Int]+  , _:x:[0] :: [Int]+  , [_,y] :: [Int]+  , _:0:_ :: [Int]+  , _:0:xs :: [Int]+  , _:0:ys :: [Int]+  , _:1:_ :: [Int]+  , _:1:xs :: [Int]+  , _:(-1):_ :: [Int]+  , [x,_] :: [Int]+  , x:_:[0] :: [Int]+  , x:0:_ :: [Int]+  , x:0:xs :: [Int]+  , x:1:_ :: [Int]+  , [y,_] :: [Int]+  , y:0:_ :: [Int]+  , 0:_:_ :: [Int]+  , 0:_:xs :: [Int]+  , 0:_:ys :: [Int]+  , 0:x:_ :: [Int]+  , 0:x:xs :: [Int]+  , 0:y:_ :: [Int]+  , 1:_:_ :: [Int]+  , 1:_:xs :: [Int]+  , 1:x:_ :: [Int]+  , (-1):_:_ :: [Int]+  , id (id _):_ :: [Int]+  , id (id _):xs :: [Int]+  , id (id _):ys :: [Int]+  , id (id x):_ :: [Int]+  , id (id x):xs :: [Int]+  , id (id y):_ :: [Int]+  , abs (abs _):_ :: [Int]+  , negate (negate _):_ :: [Int]+  , insert (id (id _)) _ :: [Int]+  , not (elem (id _) _) :: Bool+  , id (f (_ + 0)) :: Int+  , id (f (0 + _)) :: Int+  , id (abs (_ * x)) :: Int+  , id (abs (x * _)) :: Int+  , id (abs (_ + x)) :: Int+  , id (abs (_ + y)) :: Int+  , id (abs (x + _)) :: Int+  , id (abs (y + _)) :: Int+  , id (negate (_ * x)) :: Int+  , id (negate (x * _)) :: Int+  , id (negate (_ + x)) :: Int+  , id (negate (_ + y)) :: Int+  , id (negate (x + _)) :: Int+  , id (negate (y + _)) :: Int+  , id (head (_:_)) :: Int+  , id (head (_:xs)) :: Int+  , id (head (_:ys)) :: Int+  , id (head (_:zs)) :: Int+  , id (head (x:_)) :: Int+  , id (head (x:xs)) :: Int+  , id (head (x:ys)) :: Int+  , id (head (y:_)) :: Int+  , id (head (y:xs)) :: Int+  , id (head (z:_)) :: Int+  , id (head (insert _ _)) :: Int+  , id (head (_ ++ xs)) :: Int+  , id (head (_ ++ ys)) :: Int+  , id (head (xs ++ _)) :: Int+  , id (head (ys ++ _)) :: Int+  , id (_ * ord _) :: Int+  , id (_ * ord c) :: Int+  , id (_ * abs x) :: Int+  , id (_ * negate x) :: Int+  , id (_ * head _) :: Int+  , id (_ * head xs) :: Int+  , id (x * ord _) :: Int+  , id (x * abs _) :: Int+  , id (x * negate _) :: Int+  , id (x * head _) :: Int+  , id (ord _ * _) :: Int+  , id (ord _ * x) :: Int+  , id (ord c * _) :: Int+  , id (abs _ * x) :: Int+  , id (abs x * _) :: Int+  , id (negate _ * x) :: Int+  , id (negate x * _) :: Int+  , id (head _ * _) :: Int+  , id (head _ * x) :: Int+  , id (head xs * _) :: Int+  , id (_ + f 0) :: Int+  , id (_ + ord _) :: Int+  , id (_ + ord c) :: Int+  , id (_ + ord d) :: Int+  , id (_ + abs x) :: Int+  , id (_ + abs y) :: Int+  , id (_ + negate x) :: Int+  , id (_ + negate y) :: Int+  , id (_ + head _) :: Int+  , id (_ + head xs) :: Int+  , id (_ + head ys) :: Int+  , id (x + ord _) :: Int+  , id (x + ord c) :: Int+  , id (x + abs _) :: Int+  , id (x + negate _) :: Int+  , id (x + head _) :: Int+  , id (x + head xs) :: Int+  , id (y + ord _) :: Int+  , id (y + abs _) :: Int+  , id (y + negate _) :: Int+  , id (y + head _) :: Int+  , id (0 + f _) :: Int+  , id (f _ + 0) :: Int+  , id (f 0 + _) :: Int+  , id (ord _ + _) :: Int+  , id (ord _ + x) :: Int+  , id (ord _ + y) :: Int+  , id (ord c + _) :: Int+  , id (ord c + x) :: Int+  , id (ord d + _) :: Int+  , id (abs _ + x) :: Int+  , id (abs _ + y) :: Int+  , id (abs x + _) :: Int+  , id (abs y + _) :: Int+  , id (negate _ + x) :: Int+  , id (negate _ + y) :: Int+  , id (negate x + _) :: Int+  , id (negate y + _) :: Int+  , id (head _ + _) :: Int+  , id (head _ + x) :: Int+  , id (head _ + y) :: Int+  , id (head xs + _) :: Int+  , id (head xs + x) :: Int+  , id (head ys + _) :: Int+  , abs (id (_ + x)) :: Int+  , abs (id (x + _)) :: Int+  , abs (head (_:_)) :: Int+  , abs (head (_:xs)) :: Int+  , abs (head (x:_)) :: Int+  , abs (_ + ord _) :: Int+  , abs (_ + id x) :: Int+  , abs (_ + head _) :: Int+  , abs (x + id _) :: Int+  , abs (ord _ + _) :: Int+  , abs (id _ + x) :: Int+  , abs (id x + _) :: Int+  , abs (head _ + _) :: Int+  , negate (id (_ + x)) :: Int+  , negate (id (x + _)) :: Int+  , negate (head (_:_)) :: Int+  , negate (head (_:xs)) :: Int+  , negate (head (x:_)) :: Int+  , negate (_ + ord _) :: Int+  , negate (_ + id x) :: Int+  , negate (_ + head _) :: Int+  , negate (x + id _) :: Int+  , negate (ord _ + _) :: Int+  , negate (id _ + x) :: Int+  , negate (id x + _) :: Int+  , negate (head _ + _) :: Int+  , head (sort (_:_)) :: Int+  , head (tail (_:_)) :: Int+  , head (tail (_:xs)) :: Int+  , head (tail (x:_)) :: Int+  , head (_:sort _) :: Int+  , head (_:tail _) :: Int+  , head (_:tail xs) :: Int+  , head (x:tail _) :: Int+  , head (ord _:_) :: Int+  , head (ord _:xs) :: Int+  , head (ord c:_) :: Int+  , head (id _:_) :: Int+  , head (id _:xs) :: Int+  , head (id _:ys) :: Int+  , head (id x:_) :: Int+  , head (id x:xs) :: Int+  , head (id y:_) :: Int+  , head (abs _:_) :: Int+  , head (abs _:xs) :: Int+  , head (abs x:_) :: Int+  , head (negate _:_) :: Int+  , head (negate _:xs) :: Int+  , head (negate x:_) :: Int+  , head (insert (id _) _) :: Int+  , sort (id _:_) :: [Int]+  , tail (ord _:_) :: [Int]+  , tail (id _:_) :: [Int]+  , tail (id _:xs) :: [Int]+  , tail (id x:_) :: [Int]+  , tail (abs _:_) :: [Int]+  , tail (negate _:_) :: [Int]+  , (head (_:_) +) :: Int -> Int+  , _ * id (ord _) :: Int+  , _ * id (head _) :: Int+  , ord _ * id _ :: Int+  , id _ * ord _ :: Int+  , id _ * head _ :: Int+  , id (ord _) * _ :: Int+  , id (head _) * _ :: Int+  , head _ * id _ :: Int+  , _ + id (ord _) :: Int+  , _ + id (ord c) :: Int+  , _ + id (abs x) :: Int+  , _ + id (negate x) :: Int+  , _ + id (head _) :: Int+  , _ + id (head xs) :: Int+  , _ + abs (ord _) :: Int+  , _ + abs (id x) :: Int+  , _ + abs (head _) :: Int+  , _ + negate (ord _) :: Int+  , _ + negate (id x) :: Int+  , _ + negate (head _) :: Int+  , _ + head (tail _) :: Int+  , x + id (ord _) :: Int+  , x + id (abs _) :: Int+  , x + id (negate _) :: Int+  , x + id (head _) :: Int+  , x + abs (id _) :: Int+  , x + negate (id _) :: Int+  , ord _ + id _ :: Int+  , ord _ + id x :: Int+  , ord _ + abs _ :: Int+  , ord _ + negate _ :: Int+  , ord _ + head _ :: Int+  , ord c + id _ :: Int+  , id _ + ord _ :: Int+  , id _ + ord c :: Int+  , id _ + abs x :: Int+  , id _ + negate x :: Int+  , id _ + head _ :: Int+  , id _ + head xs :: Int+  , id x + ord _ :: Int+  , id x + abs _ :: Int+  , id x + negate _ :: Int+  , id x + head _ :: Int+  , id (ord _) + _ :: Int+  , id (ord _) + x :: Int+  , id (ord c) + _ :: Int+  , id (abs _) + x :: Int+  , id (abs x) + _ :: Int+  , id (negate _) + x :: Int+  , id (negate x) + _ :: Int+  , id (head _) + _ :: Int+  , id (head _) + x :: Int+  , id (head xs) + _ :: Int+  , abs _ + ord _ :: Int+  , abs _ + id x :: Int+  , abs _ + head _ :: Int+  , abs x + id _ :: Int+  , abs (ord _) + _ :: Int+  , abs (id _) + x :: Int+  , abs (id x) + _ :: Int+  , abs (head _) + _ :: Int+  , negate _ + ord _ :: Int+  , negate _ + id x :: Int+  , negate _ + head _ :: Int+  , negate x + id _ :: Int+  , negate (ord _) + _ :: Int+  , negate (id _) + x :: Int+  , negate (id x) + _ :: Int+  , negate (head _) + _ :: Int+  , head _ + ord _ :: Int+  , head _ + id _ :: Int+  , head _ + id x :: Int+  , head _ + abs _ :: Int+  , head _ + negate _ :: Int+  , head xs + id _ :: Int+  , head (tail _) + _ :: Int+  , elem _ (0:_) :: Bool+  , elem 0 (_:_) :: Bool+  , _:insert 0 _ :: [Int]+  , _:(_ ++ []) :: [Int]+  , _:(_ ++ [0]) :: [Int]+  , _:(xs ++ []) :: [Int]+  , _:([] ++ _) :: [Int]+  , _:([] ++ xs) :: [Int]+  , _:([0] ++ _) :: [Int]+  , x:(_ ++ []) :: [Int]+  , x:([] ++ _) :: [Int]+  , 0:insert _ _ :: [Int]+  , 0:(_ ++ xs) :: [Int]+  , 0:(xs ++ _) :: [Int]+  , ord _:tail _ :: [Int]+  , id _:sort _ :: [Int]+  , id _:tail _ :: [Int]+  , id _:tail xs :: [Int]+  , id x:tail _ :: [Int]+  , id (ord _):_ :: [Int]+  , id (ord _):xs :: [Int]+  , id (ord c):_ :: [Int]+  , id (abs _):_ :: [Int]+  , id (abs _):xs :: [Int]+  , id (abs x):_ :: [Int]+  , id (negate _):_ :: [Int]+  , id (negate _):xs :: [Int]+  , id (negate x):_ :: [Int]+  , id (head _):xs :: [Int]+  , id (head xs):_ :: [Int]+  , abs _:tail _ :: [Int]+  , abs (ord _):_ :: [Int]+  , abs (id _):_ :: [Int]+  , abs (id _):xs :: [Int]+  , abs (id x):_ :: [Int]+  , abs (negate _):_ :: [Int]+  , negate _:tail _ :: [Int]+  , negate (ord _):_ :: [Int]+  , negate (id _):_ :: [Int]+  , negate (id _):xs :: [Int]+  , negate (id x):_ :: [Int]+  , negate (abs _):_ :: [Int]+  , _ * 0:_ :: [Int]+  , 0 * _:_ :: [Int]+  , [_ + x] :: [Int]+  , _ + 0:_ :: [Int]+  , _ + 0:xs :: [Int]+  , _ + 1:_ :: [Int]+  , [x + _] :: [Int]+  , x + 0:_ :: [Int]+  , 0 + _:_ :: [Int]+  , 0 + _:xs :: [Int]+  , 0 + x:_ :: [Int]+  , 1 + _:_ :: [Int]+  , insert _ (0:_) :: [Int]+  , insert 0 (_:_) :: [Int]+  , _ ++ [_] :: [Int]+  , _ ++ (_:[0]) :: [Int]+  , _ ++ [x] :: [Int]+  , _ ++ (0:xs) :: [Int]+  , xs ++ [_] :: [Int]+  , xs ++ (0:_) :: [Int]+  , [] ++ (_:_) :: [Int]+  , [] ++ (_:xs) :: [Int]+  , [] ++ (x:_) :: [Int]+  , [0] ++ (_:_) :: [Int]+  , (_:_) ++ [] :: [Int]+  , (_:_) ++ [0] :: [Int]+  , (_:xs) ++ [] :: [Int]+  , [_] ++ _ :: [Int]+  , [_] ++ xs :: [Int]+  , (_:[0]) ++ _ :: [Int]+  , (x:_) ++ [] :: [Int]+  , [x] ++ _ :: [Int]+  , (0:_) ++ xs :: [Int]+  , (0:xs) ++ _ :: [Int]+  , _ || (_ || _) :: Bool+  , (_ || _) || _ :: Bool+  , _ * (_ * _) :: Int+  , (_ * _) * _ :: Int+  , _ + (_ + _) :: Int+  , (_ + _) + _ :: Int+  , _ ++ (_ ++ _) :: [Int]+  , (_ ++ _) ++ _ :: [Int]+  , _ && (_ || _) :: Bool+  , (_ || _) && _ :: Bool+  , _ == (_ || _) :: Bool+  , (_ || _) == _ :: Bool+  , _ || _ && _ :: Bool+  , _ || _ == _ :: Bool+  , _ && _ || _ :: Bool+  , _ == _ || _ :: Bool+  , _ == _ + _ :: Bool+  , _ + _ == _ :: Bool+  , _ * (_ + _) :: Int+  , (_ + _) * _ :: Int+  , _ + _ * _ :: Int+  , _ * _ + _ :: Int+  , not (not (_ && _)) :: Bool+  , not (not (_ == _)) :: Bool+  , not (not (_ || _)) :: Bool+  , not (not (_ == _)) :: Bool+  , not (_ && not _) :: Bool+  , not (not _ && _) :: Bool+  , not (_ == not _) :: Bool+  , not (not _ == _) :: Bool+  , not (_ || not _) :: Bool+  , not (not _ || _) :: Bool+  , id (id (_ * _)) :: Int+  , id (id (x * x)) :: Int+  , id (id (_ + _)) :: Int+  , id (id (x + x)) :: Int+  , id (_ * id _) :: Int+  , id (x * id x) :: Int+  , id (id _ * _) :: Int+  , id (id x * x) :: Int+  , id (_ + id _) :: Int+  , id (x + id x) :: Int+  , id (id _ + _) :: Int+  , id (id x + x) :: Int+  , abs (abs (_ + _)) :: Int+  , abs (_ + abs _) :: Int+  , abs (abs _ + _) :: Int+  , negate (negate (_ + _)) :: Int+  , negate (_ + negate _) :: Int+  , negate (negate _ + _) :: Int+  , head (head _:_) :: Int+  , (id (_ + _) +) :: Int -> Int+  , ((_ + id _) +) :: Int -> Int+  , ((id _ + _) +) :: Int -> Int+  , _ && not (not _) :: Bool+  , not _ && not _ :: Bool+  , not (not _) && _ :: Bool+  , _ == not (not _) :: Bool+  , not _ == not _ :: Bool+  , not (not _) == _ :: Bool+  , _ || not (not _) :: Bool+  , _ || (_ || False) :: Bool+  , _ || (_ || True) :: Bool+  , _ || (False || _) :: Bool+  , _ || (True || _) :: Bool+  , False || (_ || _) :: Bool+  , True || (_ || _) :: Bool+  , not _ || not _ :: Bool+  , not (not _) || _ :: Bool+  , (_ || _) || False :: Bool+  , (_ || _) || True :: Bool+  , (_ || False) || _ :: Bool+  , (_ || True) || _ :: Bool+  , (False || _) || _ :: Bool+  , (True || _) || _ :: Bool+  , _ == id (id _) :: Bool+  , id _ == id _ :: Bool+  , id (id _) == _ :: Bool+  , _ * id (id _) :: Int+  , id _ * id _ :: Int+  , id (id _) * _ :: Int+  , _ + id (id _) :: Int+  , _ + abs (abs _) :: Int+  , _ + negate (negate _) :: Int+  , _ + (_ + 0) :: Int+  , _ + (_ + 1) :: Int+  , _ + (0 + _) :: Int+  , _ + (1 + _) :: Int+  , x + id (id x) :: Int+  , 0 + (_ + _) :: Int+  , 1 + (_ + _) :: Int+  , ord _ + ord _ :: Int+  , id _ + id _ :: Int+  , id x + id x :: Int+  , id (id _) + _ :: Int+  , id (id x) + x :: Int+  , abs _ + abs _ :: Int+  , abs (abs _) + _ :: Int+  , negate _ + negate _ :: Int+  , negate (negate _) + _ :: Int+  , head _ + head _ :: Int+  , (_ + _) + 0 :: Int+  , (_ + _) + 1 :: Int+  , (_ + 0) + _ :: Int+  , (_ + 1) + _ :: Int+  , (0 + _) + _ :: Int+  , (1 + _) + _ :: Int+  , [_,_] :: [Int]+  , _:_:[0] :: [Int]+  , _:_:[1] :: [Int]+  , _:_:[0,0] :: [Int]+  , [x,x] :: [Int]+  , _ ++ (_ ++ []) :: [Int]+  , _ ++ ([] ++ _) :: [Int]+  , [] ++ (_ ++ _) :: [Int]+  , (_ ++ _) ++ [] :: [Int]+  , (_ ++ []) ++ _ :: [Int]+  , ([] ++ _) ++ _ :: [Int]+  , not (_ == id _) :: Bool+  , not (id _ == _) :: Bool+  , id (abs (_ * _)) :: Int+  , id (abs (_ + _)) :: Int+  , id (abs (x + x)) :: Int+  , id (negate (_ * _)) :: Int+  , id (negate (_ + _)) :: Int+  , id (negate (x + x)) :: Int+  , id (head (_ ++ _)) :: Int+  , id (head (xs ++ xs)) :: Int+  , id (_ * abs _) :: Int+  , id (_ * negate _) :: Int+  , id (abs _ * _) :: Int+  , id (negate _ * _) :: Int+  , id (_ + abs _) :: Int+  , id (_ + negate _) :: Int+  , id (x + abs x) :: Int+  , id (x + negate x) :: Int+  , id (abs _ + _) :: Int+  , id (abs x + x) :: Int+  , id (negate _ + _) :: Int+  , id (negate x + x) :: Int+  , abs (id (_ * _)) :: Int+  , abs (id (_ + _)) :: Int+  , abs (negate (_ + _)) :: Int+  , abs (head (_ ++ _)) :: Int+  , abs (_ * id _) :: Int+  , abs (id _ * _) :: Int+  , abs (_ + id _) :: Int+  , abs (_ + negate _) :: Int+  , abs (id _ + _) :: Int+  , abs (negate _ + _) :: Int+  , negate (id (_ * _)) :: Int+  , negate (id (_ + _)) :: Int+  , negate (abs (_ + _)) :: Int+  , negate (head (_ ++ _)) :: Int+  , negate (_ * id _) :: Int+  , negate (id _ * _) :: Int+  , negate (_ + id _) :: Int+  , negate (_ + abs _) :: Int+  , negate (id _ + _) :: Int+  , negate (abs _ + _) :: Int+  , head (tail (_ ++ _)) :: Int+  , head (_ ++ tail _) :: Int+  , head (tail _ ++ _) :: Int+  , tail (head _:_) :: [Int]+  , _ * id (abs _) :: Int+  , _ * id (negate _) :: Int+  , _ * abs (id _) :: Int+  , _ * negate (id _) :: Int+  , _ * (_ + 0) :: Int+  , _ * (0 + _) :: Int+  , 0 * (_ + _) :: Int+  , id _ * abs _ :: Int+  , id _ * negate _ :: Int+  , id (abs _) * _ :: Int+  , id (negate _) * _ :: Int+  , abs _ * id _ :: Int+  , abs (id _) * _ :: Int+  , negate _ * id _ :: Int+  , negate (id _) * _ :: Int+  , (_ + _) * 0 :: Int+  , (_ + 0) * _ :: Int+  , (0 + _) * _ :: Int+  , _ + id (abs _) :: Int+  , _ + id (negate _) :: Int+  , _ + abs (id _) :: Int+  , _ + abs (negate _) :: Int+  , _ + negate (id _) :: Int+  , _ + negate (abs _) :: Int+  , _ + _ * 0 :: Int+  , _ + 0 * _ :: Int+  , 0 + _ * _ :: Int+  , id _ + abs _ :: Int+  , id _ + negate _ :: Int+  , id (abs _) + _ :: Int+  , id (negate _) + _ :: Int+  , abs _ + id _ :: Int+  , abs _ + negate _ :: Int+  , abs (id _) + _ :: Int+  , abs (negate _) + _ :: Int+  , negate _ + id _ :: Int+  , negate _ + abs _ :: Int+  , negate (id _) + _ :: Int+  , negate (abs _) + _ :: Int+  , _ * _ + 0 :: Int+  , _ * 0 + _ :: Int+  , 0 * _ + _ :: Int+  , elem _ [_] :: Bool+  , _:insert _ [] :: [Int]+  , 0:(_ ++ _) :: [Int]+  , 1:(_ ++ _) :: [Int]+  , id (head _):_ :: [Int]+  , abs (head _):_ :: [Int]+  , negate (head _):_ :: [Int]+  , head _:tail _ :: [Int]+  , head (tail _):_ :: [Int]+  , [_ * _] :: [Int]+  , [_ + _] :: [Int]+  , _ + _:[0] :: [Int]+  , insert _ [_] :: [Int]+  , _ ++ (0:_) :: [Int]+  , _ ++ (1:_) :: [Int]+  , (0:_) ++ _ :: [Int]+  , (1:_) ++ _ :: [Int]+  , not (not (not (not _))) :: Bool+  , not (not (not (not p))) :: Bool+  , id (id (id (id _))) :: Int+  , id (id (id (id x))) :: Int+  , id (id (id (id y))) :: Int+  , id (id (id (id z))) :: Int+  , id (f (id (id 0))) :: Int+  , id (id (f (id 0))) :: Int+  , id (id (id (f 0))) :: Int+  , id (id (id (ord _))) :: Int+  , id (id (id (ord c))) :: Int+  , id (id (id (ord d))) :: Int+  , id (id (id (abs _))) :: Int+  , id (id (id (abs x))) :: Int+  , id (id (id (abs y))) :: Int+  , id (id (id (negate _))) :: Int+  , id (id (id (negate x))) :: Int+  , id (id (id (negate y))) :: Int+  , id (id (id (head _))) :: Int+  , id (id (id (head xs))) :: Int+  , id (id (id (head ys))) :: Int+  , id (id (abs (id _))) :: Int+  , id (id (abs (id x))) :: Int+  , id (id (abs (id y))) :: Int+  , id (id (abs (abs _))) :: Int+  , id (id (abs (abs x))) :: Int+  , id (id (negate (id _))) :: Int+  , id (id (negate (id x))) :: Int+  , id (id (negate (id y))) :: Int+  , id (id (negate (negate _))) :: Int+  , id (id (negate (negate x))) :: Int+  , id (abs (id (id _))) :: Int+  , id (abs (id (id x))) :: Int+  , id (abs (id (id y))) :: Int+  , id (abs (id (abs _))) :: Int+  , id (abs (id (abs x))) :: Int+  , id (abs (abs (id _))) :: Int+  , id (abs (abs (id x))) :: Int+  , id (abs (abs (abs _))) :: Int+  , id (negate (id (id _))) :: Int+  , id (negate (id (id x))) :: Int+  , id (negate (id (id y))) :: Int+  , id (negate (id (negate _))) :: Int+  , id (negate (id (negate x))) :: Int+  , id (negate (negate (id _))) :: Int+  , id (negate (negate (id x))) :: Int+  , id (negate (negate (negate _))) :: Int+  , abs (id (id (id _))) :: Int+  , abs (id (id (id x))) :: Int+  , abs (id (id (abs _))) :: Int+  , abs (id (abs (id _))) :: Int+  , abs (abs (id (id _))) :: Int+  , negate (id (id (id _))) :: Int+  , negate (id (id (id x))) :: Int+  , negate (id (id (negate _))) :: Int+  , negate (id (negate (id _))) :: Int+  , negate (negate (id (id _))) :: Int+  , (id (id (id _)) +) :: Int -> Int+  , _ + (0 + 0) :: Int+  , 0 + (_ + 0) :: Int+  , 0 + (0 + _) :: Int+  , (_ + 0) + 0 :: Int+  , (0 + _) + 0 :: Int+  , (0 + 0) + _ :: Int+  , 0:0:_ :: [Int]+  , 0:0:xs :: [Int]+  , not (not (_ || False)) :: Bool+  , not (not (_ || True)) :: Bool+  , not (not (False || _)) :: Bool+  , not (not (True || _)) :: Bool+  , not (_ || not False) :: Bool+  , not (_ || not True) :: Bool+  , not (False || not _) :: Bool+  , not (True || not _) :: Bool+  , not (not _ || False) :: Bool+  , not (not _ || True) :: Bool+  , not (not False || _) :: Bool+  , not (not True || _) :: Bool+  , id (id (abs (ord _))) :: Int+  , id (id (abs (ord c))) :: Int+  , id (id (abs (negate _))) :: Int+  , id (id (abs (negate x))) :: Int+  , id (id (abs (head _))) :: Int+  , id (id (abs (head xs))) :: Int+  , id (id (negate (ord _))) :: Int+  , id (id (negate (ord c))) :: Int+  , id (id (negate (abs _))) :: Int+  , id (id (negate (abs x))) :: Int+  , id (id (negate (head _))) :: Int+  , id (id (negate (head xs))) :: Int+  , id (id (head (sort _))) :: Int+  , id (id (head (tail _))) :: Int+  , id (id (head (tail xs))) :: Int+  , id (id (_ * 0)) :: Int+  , id (id (_ * 1)) :: Int+  , id (id (x * 0)) :: Int+  , id (id (0 * _)) :: Int+  , id (id (0 * x)) :: Int+  , id (id (1 * _)) :: Int+  , id (id (_ + 0)) :: Int+  , id (id (_ + 1)) :: Int+  , id (id (_ + (-1))) :: Int+  , id (id (x + 0)) :: Int+  , id (id (x + 1)) :: Int+  , id (id (y + 0)) :: Int+  , id (id (0 + _)) :: Int+  , id (id (0 + x)) :: Int+  , id (id (0 + y)) :: Int+  , id (id (1 + _)) :: Int+  , id (id (1 + x)) :: Int+  , id (id ((-1) + _)) :: Int+  , id (abs (id (ord _))) :: Int+  , id (abs (id (ord c))) :: Int+  , id (abs (id (negate _))) :: Int+  , id (abs (id (negate x))) :: Int+  , id (abs (id (head _))) :: Int+  , id (abs (id (head xs))) :: Int+  , id (abs (abs (ord _))) :: Int+  , id (abs (abs (negate _))) :: Int+  , id (abs (abs (head _))) :: Int+  , id (abs (negate (id _))) :: Int+  , id (abs (negate (id x))) :: Int+  , id (abs (negate (abs _))) :: Int+  , id (abs (negate (negate _))) :: Int+  , id (negate (id (ord _))) :: Int+  , id (negate (id (ord c))) :: Int+  , id (negate (id (abs _))) :: Int+  , id (negate (id (abs x))) :: Int+  , id (negate (id (head _))) :: Int+  , id (negate (id (head xs))) :: Int+  , id (negate (abs (id _))) :: Int+  , id (negate (abs (id x))) :: Int+  , id (negate (abs (abs _))) :: Int+  , id (negate (abs (negate _))) :: Int+  , id (negate (negate (ord _))) :: Int+  , id (negate (negate (abs _))) :: Int+  , id (negate (negate (head _))) :: Int+  , id (head (tail (tail _))) :: Int+  , id (_ * id 0) :: Int+  , id (_ * id 1) :: Int+  , id (x * id 0) :: Int+  , id (0 * id _) :: Int+  , id (0 * id x) :: Int+  , id (1 * id _) :: Int+  , id (id _ * 0) :: Int+  , id (id _ * 1) :: Int+  , id (id x * 0) :: Int+  , id (id 0 * _) :: Int+  , id (id 0 * x) :: Int+  , id (id 1 * _) :: Int+  , id (_ + id 0) :: Int+  , id (_ + id 1) :: Int+  , id (_ + id (-1)) :: Int+  , id (x + id 0) :: Int+  , id (x + id 1) :: Int+  , id (y + id 0) :: Int+  , id (0 + id _) :: Int+  , id (0 + id x) :: Int+  , id (0 + id y) :: Int+  , id (1 + id _) :: Int+  , id (1 + id x) :: Int+  , id ((-1) + id _) :: Int+  , id (id _ + 0) :: Int+  , id (id _ + 1) :: Int+  , id (id _ + (-1)) :: Int+  , id (id x + 0) :: Int+  , id (id x + 1) :: Int+  , id (id y + 0) :: Int+  , id (id 0 + _) :: Int+  , id (id 0 + x) :: Int+  , id (id 0 + y) :: Int+  , id (id 1 + _) :: Int+  , id (id 1 + x) :: Int+  , id (id (-1) + _) :: Int+  , abs (id (id (ord _))) :: Int+  , abs (id (id (negate _))) :: Int+  , abs (id (id (head _))) :: Int+  , abs (id (negate (id _))) :: Int+  , abs (negate (id (id _))) :: Int+  , negate (id (id (ord _))) :: Int+  , negate (id (id (abs _))) :: Int+  , negate (id (id (head _))) :: Int+  , negate (id (abs (id _))) :: Int+  , negate (abs (id (id _))) :: Int+  , head [head _] :: Int+  , head (head []:_) :: Int+  , _ || not (not False) :: Bool+  , _ || not (not True) :: Bool+  , False || not (not _) :: Bool+  , True || not (not _) :: Bool+  , not _ || not False :: Bool+  , not _ || not True :: Bool+  , not False || not _ :: Bool+  , not True || not _ :: Bool+  , not (not _) || False :: Bool+  , not (not _) || True :: Bool+  , not (not False) || _ :: Bool+  , not (not True) || _ :: Bool+  , _ * id (id 0) :: Int+  , 0 * id (id _) :: Int+  , id _ * id 0 :: Int+  , id 0 * id _ :: Int+  , id (id _) * 0 :: Int+  , id (id 0) * _ :: Int+  , _ + id (id 0) :: Int+  , _ + id (id 1) :: Int+  , x + id (id 0) :: Int+  , 0 + id (id _) :: Int+  , 0 + id (id x) :: Int+  , 1 + id (id _) :: Int+  , id _ + id 0 :: Int+  , id _ + id 1 :: Int+  , id x + id 0 :: Int+  , id 0 + id _ :: Int+  , id 0 + id x :: Int+  , id 1 + id _ :: Int+  , id (id _) + 0 :: Int+  , id (id _) + 1 :: Int+  , id (id x) + 0 :: Int+  , id (id 0) + _ :: Int+  , id (id 0) + x :: Int+  , id (id 1) + _ :: Int+  , [_,0] :: [Int]+  , _:0:[0] :: [Int]+  , [_,1] :: [Int]+  , _:([] ++ []) :: [Int]+  , [x,0] :: [Int]+  , [0,_] :: [Int]+  , 0:_:[0] :: [Int]+  , [0,x] :: [Int]+  , 0:1:_ :: [Int]+  , [1,_] :: [Int]+  , 1:0:_ :: [Int]+  , [id (id _)] :: [Int]+  , id (id _):[0] :: [Int]+  , [id (id x)] :: [Int]+  , id (id 0):_ :: [Int]+  , id (id 0):xs :: [Int]+  , id (id 1):_ :: [Int]+  , 0 + 0:_ :: [Int]+  , [] ++ [_] :: [Int]+  , [_] ++ [] :: [Int]+  , id (abs (negate (ord _))) :: Int+  , id (abs (negate (head _))) :: Int+  , id (abs (head (tail _))) :: Int+  , id (abs (_ * 0)) :: Int+  , id (abs (0 * _)) :: Int+  , id (abs (_ + 0)) :: Int+  , id (abs (_ + 1)) :: Int+  , id (abs (x + 0)) :: Int+  , id (abs (0 + _)) :: Int+  , id (abs (0 + x)) :: Int+  , id (abs (1 + _)) :: Int+  , id (negate (abs (ord _))) :: Int+  , id (negate (abs (head _))) :: Int+  , id (negate (head (tail _))) :: Int+  , id (negate (_ * 0)) :: Int+  , id (negate (0 * _)) :: Int+  , id (negate (_ + 0)) :: Int+  , id (negate (_ + 1)) :: Int+  , id (negate (x + 0)) :: Int+  , id (negate (0 + _)) :: Int+  , id (negate (0 + x)) :: Int+  , id (negate (1 + _)) :: Int+  , id (head [_]) :: Int+  , id (head (_:[0])) :: Int+  , id (head (_:[1])) :: Int+  , id (head (_:[0,0])) :: Int+  , id (head [x]) :: Int+  , id (head (x:[0])) :: Int+  , id (head [y]) :: Int+  , id (head (0:_)) :: Int+  , id (head (0:xs)) :: Int+  , id (head (0:ys)) :: Int+  , id (head (1:_)) :: Int+  , id (head (1:xs)) :: Int+  , id (head ((-1):_)) :: Int+  , id (head (_ ++ [])) :: Int+  , id (head (_ ++ [0])) :: Int+  , id (head (xs ++ [])) :: Int+  , id (head ([] ++ _)) :: Int+  , id (head ([] ++ xs)) :: Int+  , id (head ([0] ++ _)) :: Int+  , id (_ * ord 'a') :: Int+  , id (_ * abs 0) :: Int+  , id (_ * negate 0) :: Int+  , id (_ * head []) :: Int+  , id (0 * ord _) :: Int+  , id (0 * abs _) :: Int+  , id (0 * negate _) :: Int+  , id (0 * head _) :: Int+  , id (ord _ * 0) :: Int+  , id (ord 'a' * _) :: Int+  , id (abs _ * 0) :: Int+  , id (abs 0 * _) :: Int+  , id (negate _ * 0) :: Int+  , id (negate 0 * _) :: Int+  , id (head _ * 0) :: Int+  , id (head [] * _) :: Int+  , id (_ + ord ' ') :: Int+  , id (_ + ord 'a') :: Int+  , id (_ + abs 0) :: Int+  , id (_ + abs 1) :: Int+  , id (_ + negate 0) :: Int+  , id (_ + negate 1) :: Int+  , id (_ + head []) :: Int+  , id (_ + head [0]) :: Int+  , id (x + ord 'a') :: Int+  , id (x + abs 0) :: Int+  , id (x + negate 0) :: Int+  , id (x + head []) :: Int+  , id (0 + ord _) :: Int+  , id (0 + ord c) :: Int+  , id (0 + abs _) :: Int+  , id (0 + abs x) :: Int+  , id (0 + negate _) :: Int+  , id (0 + negate x) :: Int+  , id (0 + head _) :: Int+  , id (0 + head xs) :: Int+  , id (1 + ord _) :: Int+  , id (1 + abs _) :: Int+  , id (1 + negate _) :: Int+  , id (1 + head _) :: Int+  , id (ord _ + 0) :: Int+  , id (ord _ + 1) :: Int+  , id (ord c + 0) :: Int+  , id (ord ' ' + _) :: Int+  , id (ord 'a' + _) :: Int+  , id (ord 'a' + x) :: Int+  , id (abs _ + 0) :: Int+  , id (abs _ + 1) :: Int+  , id (abs x + 0) :: Int+  , id (abs 0 + _) :: Int+  , id (abs 0 + x) :: Int+  , id (abs 1 + _) :: Int+  , id (negate _ + 0) :: Int+  , id (negate _ + 1) :: Int+  , id (negate x + 0) :: Int+  , id (negate 0 + _) :: Int+  , id (negate 0 + x) :: Int+  , id (negate 1 + _) :: Int+  , id (head _ + 0) :: Int+  , id (head _ + 1) :: Int+  , id (head xs + 0) :: Int+  , id (head [] + _) :: Int+  , id (head [] + x) :: Int+  , id (head [0] + _) :: Int+  , abs (id (_ + 0)) :: Int+  , abs (id (0 + _)) :: Int+  , abs (head [_]) :: Int+  , abs (head (0:_)) :: Int+  , abs (_ + id 0) :: Int+  , abs (0 + id _) :: Int+  , abs (id _ + 0) :: Int+  , abs (id 0 + _) :: Int+  , negate (id (_ + 0)) :: Int+  , negate (id (0 + _)) :: Int+  , negate (head [_]) :: Int+  , negate (head (0:_)) :: Int+  , negate (_ + id 0) :: Int+  , negate (0 + id _) :: Int+  , negate (id _ + 0) :: Int+  , negate (id 0 + _) :: Int+  , head (tail [_]) :: Int+  , head (tail (0:_)) :: Int+  , head (_:tail []) :: Int+  , head (0:tail _) :: Int+  , head [ord _] :: Int+  , head (ord 'a':_) :: Int+  , head [id _] :: Int+  , head (id _:[0]) :: Int+  , head [id x] :: Int+  , head (id 0:_) :: Int+  , head (id 0:xs) :: Int+  , head (id 1:_) :: Int+  , head [abs _] :: Int+  , head (abs 0:_) :: Int+  , head [negate _] :: Int+  , head (negate 0:_) :: Int+  , tail [id _] :: [Int]+  , tail (id 0:_) :: [Int]+  , _ + id (ord 'a') :: Int+  , _ + id (abs 0) :: Int+  , _ + id (negate 0) :: Int+  , _ + id (head []) :: Int+  , _ + abs (id 0) :: Int+  , _ + negate (id 0) :: Int+  , 0 + id (ord _) :: Int+  , 0 + id (abs _) :: Int+  , 0 + id (negate _) :: Int+  , 0 + id (head _) :: Int+  , 0 + abs (id _) :: Int+  , 0 + negate (id _) :: Int+  , ord _ + id 0 :: Int+  , ord 'a' + id _ :: Int+  , id _ + ord 'a' :: Int+  , id _ + abs 0 :: Int+  , id _ + negate 0 :: Int+  , id _ + head [] :: Int+  , id 0 + ord _ :: Int+  , id 0 + abs _ :: Int+  , id 0 + negate _ :: Int+  , id 0 + head _ :: Int+  , id (ord _) + 0 :: Int+  , id (ord 'a') + _ :: Int+  , id (abs _) + 0 :: Int+  , id (abs 0) + _ :: Int+  , id (negate _) + 0 :: Int+  , id (negate 0) + _ :: Int+  , id (head _) + 0 :: Int+  , id (head []) + _ :: Int+  , abs _ + id 0 :: Int+  , abs 0 + id _ :: Int+  , abs (id _) + 0 :: Int+  , abs (id 0) + _ :: Int+  , negate _ + id 0 :: Int+  , negate 0 + id _ :: Int+  , negate (id _) + 0 :: Int+  , negate (id 0) + _ :: Int+  , head _ + id 0 :: Int+  , head [] + id _ :: Int+  , 0:(_ ++ []) :: [Int]+  , 0:([] ++ _) :: [Int]+  , id _:tail [] :: [Int]+  , id 0:tail _ :: [Int]+  , [id (ord _)] :: [Int]+  , id (ord 'a'):_ :: [Int]+  , [id (abs _)] :: [Int]+  , id (abs 0):_ :: [Int]+  , [id (negate _)] :: [Int]+  , id (negate 0):_ :: [Int]+  , [id (head _)] :: [Int]+  , id (head []):_ :: [Int]+  , [abs (id _)] :: [Int]+  , abs (id 0):_ :: [Int]+  , [negate (id _)] :: [Int]+  , negate (id 0):_ :: [Int]+  , [_ + 0] :: [Int]+  , [0 + _] :: [Int]+  , _ ++ [0] :: [Int]+  , [] ++ (0:_) :: [Int]+  , (0:_) ++ [] :: [Int]+  , [0] ++ _ :: [Int]+  , not (not (not (not False))) :: Bool+  , not (not (not (not True))) :: Bool+  , id (id (id (id 0))) :: Int+  , id (id (id (id 1))) :: Int+  , id (id (id (id (-1)))) :: Int+  , id (id (id (ord ' '))) :: Int+  , id (id (id (ord 'a'))) :: Int+  , id (id (id (abs 0))) :: Int+  , id (id (id (abs 1))) :: Int+  , id (id (id (negate 0))) :: Int+  , id (id (id (negate 1))) :: Int+  , id (id (id (head []))) :: Int+  , id (id (id (head [0]))) :: Int+  , id (id (abs (id 0))) :: Int+  , id (id (abs (id 1))) :: Int+  , id (id (abs (abs 0))) :: Int+  , id (id (negate (id 0))) :: Int+  , id (id (negate (id 1))) :: Int+  , id (id (negate (negate 0))) :: Int+  , id (id (0 * 0)) :: Int+  , id (id (0 + 0)) :: Int+  , id (abs (id (id 0))) :: Int+  , id (abs (id (id 1))) :: Int+  , id (abs (id (abs 0))) :: Int+  , id (abs (abs (id 0))) :: Int+  , id (negate (id (id 0))) :: Int+  , id (negate (id (id 1))) :: Int+  , id (negate (id (negate 0))) :: Int+  , id (negate (negate (id 0))) :: Int+  , id (0 * id 0) :: Int+  , id (id 0 * 0) :: Int+  , id (0 + id 0) :: Int+  , id (id 0 + 0) :: Int+  , abs (id (id (id 0))) :: Int+  , negate (id (id (id 0))) :: Int+  , 0 + id (id 0) :: Int+  , id 0 + id 0 :: Int+  , id (id 0) + 0 :: Int+  , [0,0] :: [Int]+  , id (id (abs (ord 'a'))) :: Int+  , id (id (abs (negate 0))) :: Int+  , id (id (abs (head []))) :: Int+  , id (id (negate (ord 'a'))) :: Int+  , id (id (negate (abs 0))) :: Int+  , id (id (negate (head []))) :: Int+  , id (id (head (tail []))) :: Int+  , id (id (0 + 1)) :: Int+  , id (id (1 + 0)) :: Int+  , id (abs (id (ord 'a'))) :: Int+  , id (abs (id (negate 0))) :: Int+  , id (abs (id (head []))) :: Int+  , id (abs (negate (id 0))) :: Int+  , id (abs (0 + 0)) :: Int+  , id (negate (id (ord 'a'))) :: Int+  , id (negate (id (abs 0))) :: Int+  , id (negate (id (head []))) :: Int+  , id (negate (abs (id 0))) :: Int+  , id (negate (0 + 0)) :: Int+  , id (head ([] ++ [])) :: Int+  , id (0 + id 1) :: Int+  , id (0 + abs 0) :: Int+  , id (0 + negate 0) :: Int+  , id (1 + id 0) :: Int+  , id (id 0 + 1) :: Int+  , id (id 1 + 0) :: Int+  , id (abs 0 + 0) :: Int+  , id (negate 0 + 0) :: Int+  , [id (id 0)] :: [Int]+  , id (head [0]) :: Int+  , id (head (0:[0])) :: Int+  , id (head [1]) :: Int+  , id (0 + ord 'a') :: Int+  , id (0 + head []) :: Int+  , id (ord 'a' + 0) :: Int+  , id (head [] + 0) :: Int+  , head [id 0] :: Int+  , _:f _:_ :: [Int]+  , f _:_:_ :: [Int]+  , head (_:x:_) :: Int+  , head (_:x:xs) :: Int+  , head (_:y:_) :: Int+  , head (x:_:_) :: Int+  , head (x:_:xs) :: Int+  , head (y:_:_) :: Int+  , tail (_:x:_) :: [Int]+  , tail (x:_:_) :: [Int]+  , _:tail (x:_) :: [Int]+  , _:x:tail _ :: [Int]+  , _:ord _:_ :: [Int]+  , _:ord _:xs :: [Int]+  , _:ord c:_ :: [Int]+  , _:id x:_ :: [Int]+  , _:id x:xs :: [Int]+  , _:id y:_ :: [Int]+  , _:abs x:_ :: [Int]+  , _:negate x:_ :: [Int]+  , _:head _:xs :: [Int]+  , _:head xs:_ :: [Int]+  , x:tail (_:_) :: [Int]+  , x:_:tail _ :: [Int]+  , x:ord _:_ :: [Int]+  , x:id _:_ :: [Int]+  , x:id _:xs :: [Int]+  , x:abs _:_ :: [Int]+  , x:negate _:_ :: [Int]+  , y:id _:_ :: [Int]+  , ord _:_:_ :: [Int]+  , ord _:_:xs :: [Int]+  , ord _:x:_ :: [Int]+  , ord c:_:_ :: [Int]+  , id _:x:_ :: [Int]+  , id _:x:xs :: [Int]+  , id _:y:_ :: [Int]+  , id x:_:_ :: [Int]+  , id x:_:xs :: [Int]+  , id y:_:_ :: [Int]+  , abs _:x:_ :: [Int]+  , abs x:_:_ :: [Int]+  , negate _:x:_ :: [Int]+  , negate x:_:_ :: [Int]+  , head _:_:xs :: [Int]+  , head xs:_:_ :: [Int]+  , head (_:_):xs :: [Int]+  , head (_:xs):_ :: [Int]+  , id (f (head (_:_))) :: Int+  , id (head (f _:_)) :: Int+  , head (_:(_ ++ xs)) :: Int+  , head (_:(xs ++ _)) :: Int+  , head (_ + x:_) :: Int+  , head (x + _:_) :: Int+  , head (_ ++ (_:xs)) :: Int+  , head (xs ++ (_:_)) :: Int+  , head ((_:_) ++ xs) :: Int+  , head ((_:xs) ++ _) :: Int+  , _ + head (x:_) :: Int+  , x + head (_:_) :: Int+  , head (_:_) + x :: Int+  , head (x:_) + _ :: Int+  , id _:(_ ++ xs) :: [Int]+  , id _:(xs ++ _) :: [Int]+  , id (_ + x):_ :: [Int]+  , id (x + _):_ :: [Int]+  , _ + ord _:_ :: [Int]+  , _ + id x:_ :: [Int]+  , x + id _:_ :: [Int]+  , ord _ + _:_ :: [Int]+  , id _ + x:_ :: [Int]+  , id x + _:_ :: [Int]+  , _ ++ (id _:xs) :: [Int]+  , xs ++ (id _:_) :: [Int]+  , (id _:_) ++ xs :: [Int]+  , (id _:xs) ++ _ :: [Int]+  , id (f (id (_ + _))) :: Int+  , id (f (_ + id _)) :: Int+  , id (f (id _ + _)) :: Int+  , id (id (f (_ + _))) :: Int+  , id (id (_ + f _)) :: Int+  , id (id (f _ + _)) :: Int+  , id (_ + f (id _)) :: Int+  , id (_ + id (f _)) :: Int+  , id (_ + (_ + x)) :: Int+  , id (_ + (_ + y)) :: Int+  , id (_ + (x + _)) :: Int+  , id (_ + (x + x)) :: Int+  , id (_ + (y + _)) :: Int+  , id (x + (_ + _)) :: Int+  , id (x + (_ + x)) :: Int+  , id (x + (x + _)) :: Int+  , id (y + (_ + _)) :: Int+  , id (f _ + id _) :: Int+  , id (f (id _) + _) :: Int+  , id (id _ + f _) :: Int+  , id (id (f _) + _) :: Int+  , id ((_ + _) + x) :: Int+  , id ((_ + _) + y) :: Int+  , id ((_ + x) + _) :: Int+  , id ((_ + x) + x) :: Int+  , id ((_ + y) + _) :: Int+  , id ((x + _) + _) :: Int+  , id ((x + _) + x) :: Int+  , id ((x + x) + _) :: Int+  , id ((y + _) + _) :: Int+  , head (_:_:_) :: Int+  , head (_:_:xs) :: Int+  , head (_:_:ys) :: Int+  , head (x:x:_) :: Int+  , sort (_:_:_) :: [Int]+  , tail (_:_:_) :: [Int]+  , tail (_:_:xs) :: [Int]+  , _ + id (_ + x) :: Int+  , _ + id (x + _) :: Int+  , _ + (_ + ord _) :: Int+  , _ + (_ + id x) :: Int+  , _ + (_ + head _) :: Int+  , _ + (x + id _) :: Int+  , _ + (ord _ + _) :: Int+  , _ + (id _ + x) :: Int+  , _ + (id x + _) :: Int+  , _ + (head _ + _) :: Int+  , x + id (_ + _) :: Int+  , x + (_ + id _) :: Int+  , x + (id _ + _) :: Int+  , ord _ + (_ + _) :: Int+  , id _ + (_ + x) :: Int+  , id _ + (x + _) :: Int+  , id x + (_ + _) :: Int+  , id (_ + _) + x :: Int+  , id (_ + x) + _ :: Int+  , id (x + _) + _ :: Int+  , head _ + (_ + _) :: Int+  , (_ + _) + ord _ :: Int+  , (_ + _) + id x :: Int+  , (_ + _) + head _ :: Int+  , (_ + x) + id _ :: Int+  , (_ + ord _) + _ :: Int+  , (_ + id _) + x :: Int+  , (_ + id x) + _ :: Int+  , (_ + head _) + _ :: Int+  , (x + _) + id _ :: Int+  , (x + id _) + _ :: Int+  , (ord _ + _) + _ :: Int+  , (id _ + _) + x :: Int+  , (id _ + x) + _ :: Int+  , (id x + _) + _ :: Int+  , (head _ + _) + _ :: Int+  , _:sort (_:_) :: [Int]+  , _:tail (_:_) :: [Int]+  , _:tail (_:xs) :: [Int]+  , _:_:sort _ :: [Int]+  , _:_:tail _ :: [Int]+  , _:_:tail xs :: [Int]+  , _:id _:_ :: [Int]+  , _:id _:xs :: [Int]+  , _:id _:ys :: [Int]+  , _:abs _:_ :: [Int]+  , _:abs _:xs :: [Int]+  , _:negate _:_ :: [Int]+  , _:negate _:xs :: [Int]+  , _:head _:_ :: [Int]+  , x:id x:_ :: [Int]+  , x:head _:_ :: [Int]+  , id _:_:_ :: [Int]+  , id _:_:xs :: [Int]+  , id _:_:ys :: [Int]+  , id x:x:_ :: [Int]+  , abs _:_:_ :: [Int]+  , abs _:_:xs :: [Int]+  , negate _:_:_ :: [Int]+  , negate _:_:xs :: [Int]+  , head _:_:_ :: [Int]+  , head _:x:_ :: [Int]+  , head (_:_):_ :: [Int]+  , head (x:_):_ :: [Int]+  , not (elem _ (_:_)) :: Bool+  , id (_ * (_ + x)) :: Int+  , id (_ * (x + _)) :: Int+  , id (x * (_ + _)) :: Int+  , id ((_ + _) * x) :: Int+  , id ((_ + x) * _) :: Int+  , id ((x + _) * _) :: Int+  , id (_ + _ * x) :: Int+  , id (_ + x * _) :: Int+  , id (x + _ * _) :: Int+  , id (_ * _ + x) :: Int+  , id (_ * x + _) :: Int+  , id (x * _ + _) :: Int+  , head (_:insert _ _) :: Int+  , head (_:(_ ++ _)) :: Int+  , head (x:(_ ++ _)) :: Int+  , head (_ * _:_) :: Int+  , head (_ + _:_) :: Int+  , head (_ + _:xs) :: Int+  , head (insert _ (_:_)) :: Int+  , head (_ ++ (_:_)) :: Int+  , head (_ ++ (x:_)) :: Int+  , head ((_:_) ++ _) :: Int+  , head ((x:_) ++ _) :: Int+  , tail (_:(_ ++ _)) :: [Int]+  , tail (_ + _:_) :: [Int]+  , tail (_ ++ (_:_)) :: [Int]+  , tail ((_:_) ++ _) :: [Int]+  , _ * head (_:_) :: Int+  , head (_:_) * _ :: Int+  , _ + head (_:_) :: Int+  , _ + head (_:xs) :: Int+  , _ + head (_ ++ _) :: Int+  , head (_:_) + _ :: Int+  , head (_:xs) + _ :: Int+  , head (_ ++ _) + _ :: Int+  , elem _ (id _:_) :: Bool+  , elem (id _) (_:_) :: Bool+  , _:tail (_ ++ _) :: [Int]+  , _:insert (id _) _ :: [Int]+  , _:(_ ++ tail _) :: [Int]+  , _:(tail _ ++ _) :: [Int]+  , ord _:(_ ++ _) :: [Int]+  , id _:insert _ _ :: [Int]+  , id _:(_ ++ _) :: [Int]+  , id x:(_ ++ _) :: [Int]+  , id (_ * _):_ :: [Int]+  , id (_ + _):_ :: [Int]+  , id (_ + _):xs :: [Int]+  , abs _:(_ ++ _) :: [Int]+  , abs (_ + _):_ :: [Int]+  , negate _:(_ ++ _) :: [Int]+  , negate (_ + _):_ :: [Int]+  , _ * id _:_ :: [Int]+  , id _ * _:_ :: [Int]+  , _ + _:tail _ :: [Int]+  , _ + id _:_ :: [Int]+  , _ + id _:xs :: [Int]+  , _ + abs _:_ :: [Int]+  , _ + negate _:_ :: [Int]+  , _ + head _:_ :: [Int]+  , id _ + _:_ :: [Int]+  , id _ + _:xs :: [Int]+  , abs _ + _:_ :: [Int]+  , negate _ + _:_ :: [Int]+  , head _ + _:_ :: [Int]+  , insert _ (id _:_) :: [Int]+  , insert (id _) (_:_) :: [Int]+  , _ ++ tail (_:_) :: [Int]+  , _ ++ (_:tail _) :: [Int]+  , _ ++ (ord _:_) :: [Int]+  , _ ++ (id _:_) :: [Int]+  , _ ++ (id x:_) :: [Int]+  , _ ++ (abs _:_) :: [Int]+  , _ ++ (negate _:_) :: [Int]+  , tail _ ++ (_:_) :: [Int]+  , tail (_:_) ++ _ :: [Int]+  , (_:_) ++ tail _ :: [Int]+  , (_:tail _) ++ _ :: [Int]+  , (ord _:_) ++ _ :: [Int]+  , (id _:_) ++ _ :: [Int]+  , (id x:_) ++ _ :: [Int]+  , (abs _:_) ++ _ :: [Int]+  , (negate _:_) ++ _ :: [Int]+  , id (f (id (id (id _)))) :: Int+  , id (id (f (id (id _)))) :: Int+  , id (id (id (f (id _)))) :: Int+  , id (id (id (id (f _)))) :: Int+  , id (id (id (_ * x))) :: Int+  , id (id (id (x * _))) :: Int+  , id (id (id (_ + x))) :: Int+  , id (id (id (_ + y))) :: Int+  , id (id (id (x + _))) :: Int+  , id (id (id (y + _))) :: Int+  , id (id (_ * id x)) :: Int+  , id (id (x * id _)) :: Int+  , id (id (id _ * x)) :: Int+  , id (id (id x * _)) :: Int+  , id (id (_ + id x)) :: Int+  , id (id (_ + id y)) :: Int+  , id (id (x + id _)) :: Int+  , id (id (y + id _)) :: Int+  , id (id (id _ + x)) :: Int+  , id (id (id _ + y)) :: Int+  , id (id (id x + _)) :: Int+  , id (id (id y + _)) :: Int+  , id (_ * id (id x)) :: Int+  , id (x * id (id _)) :: Int+  , id (id _ * id x) :: Int+  , id (id x * id _) :: Int+  , id (id (id _) * x) :: Int+  , id (id (id x) * _) :: Int+  , id (_ + id (id x)) :: Int+  , id (_ + id (id y)) :: Int+  , id (x + id (id _)) :: Int+  , id (y + id (id _)) :: Int+  , id (id _ + id x) :: Int+  , id (id _ + id y) :: Int+  , id (id x + id _) :: Int+  , id (id y + id _) :: Int+  , id (id (id _) + x) :: Int+  , id (id (id _) + y) :: Int+  , id (id (id x) + _) :: Int+  , id (id (id y) + _) :: Int+  , _ + id (id (id x)) :: Int+  , x + id (id (id _)) :: Int+  , id _ + id (id x) :: Int+  , id x + id (id _) :: Int+  , id (id _) + id x :: Int+  , id (id x) + id _ :: Int+  , id (id (id _)) + x :: Int+  , id (id (id x)) + _ :: Int+  , id (id (id _)):_ :: [Int]+  , id (id (id _)):xs :: [Int]+  , id (id (id x)):_ :: [Int]+  , id (id (abs (_ + x))) :: Int+  , id (id (abs (x + _))) :: Int+  , id (id (negate (_ + x))) :: Int+  , id (id (negate (x + _))) :: Int+  , id (id (head (_:_))) :: Int+  , id (id (head (_:xs))) :: Int+  , id (id (head (_:ys))) :: Int+  , id (id (head (x:_))) :: Int+  , id (id (head (x:xs))) :: Int+  , id (id (head (y:_))) :: Int+  , id (id (head (insert _ _))) :: Int+  , id (id (head (_ ++ xs))) :: Int+  , id (id (head (xs ++ _))) :: Int+  , id (id (_ * ord _)) :: Int+  , id (id (_ * head _)) :: Int+  , id (id (ord _ * _)) :: Int+  , id (id (head _ * _)) :: Int+  , id (id (_ + ord _)) :: Int+  , id (id (_ + ord c)) :: Int+  , id (id (_ + abs x)) :: Int+  , id (id (_ + negate x)) :: Int+  , id (id (_ + head _)) :: Int+  , id (id (_ + head xs)) :: Int+  , id (id (x + ord _)) :: Int+  , id (id (x + abs _)) :: Int+  , id (id (x + negate _)) :: Int+  , id (id (x + head _)) :: Int+  , id (id (ord _ + _)) :: Int+  , id (id (ord _ + x)) :: Int+  , id (id (ord c + _)) :: Int+  , id (id (abs _ + x)) :: Int+  , id (id (abs x + _)) :: Int+  , id (id (negate _ + x)) :: Int+  , id (id (negate x + _)) :: Int+  , id (id (head _ + _)) :: Int+  , id (id (head _ + x)) :: Int+  , id (id (head xs + _)) :: Int+  , id (abs (id (_ + x))) :: Int+  , id (abs (id (x + _))) :: Int+  , id (abs (_ + id x)) :: Int+  , id (abs (x + id _)) :: Int+  , id (abs (id _ + x)) :: Int+  , id (abs (id x + _)) :: Int+  , id (negate (id (_ + x))) :: Int+  , id (negate (id (x + _))) :: Int+  , id (negate (_ + id x)) :: Int+  , id (negate (x + id _)) :: Int+  , id (negate (id _ + x)) :: Int+  , id (negate (id x + _)) :: Int+  , id (head (id _:_)) :: Int+  , id (head (id _:xs)) :: Int+  , id (head (id _:ys)) :: Int+  , id (head (id x:_)) :: Int+  , id (head (id x:xs)) :: Int+  , id (head (id y:_)) :: Int+  , id (head (head _:xs)) :: Int+  , id (head (head xs:_)) :: Int+  , id (_ * id (ord _)) :: Int+  , id (_ * id (head _)) :: Int+  , id (ord _ * id _) :: Int+  , id (id _ * ord _) :: Int+  , id (id _ * head _) :: Int+  , id (id (ord _) * _) :: Int+  , id (id (head _) * _) :: Int+  , id (head _ * id _) :: Int+  , id (_ + id (ord _)) :: Int+  , id (_ + id (ord c)) :: Int+  , id (_ + id (abs x)) :: Int+  , id (_ + id (negate x)) :: Int+  , id (_ + id (head _)) :: Int+  , id (_ + id (head xs)) :: Int+  , id (_ + abs (id x)) :: Int+  , id (_ + negate (id x)) :: Int+  , id (_ + (x + 0)) :: Int+  , id (_ + (0 + x)) :: Int+  , id (x + id (ord _)) :: Int+  , id (x + id (abs _)) :: Int+  , id (x + id (negate _)) :: Int+  , id (x + id (head _)) :: Int+  , id (x + abs (id _)) :: Int+  , id (x + negate (id _)) :: Int+  , id (x + (_ + 0)) :: Int+  , id (x + (0 + _)) :: Int+  , id (0 + (_ + x)) :: Int+  , id (0 + (x + _)) :: Int+  , id (ord _ + id _) :: Int+  , id (ord _ + id x) :: Int+  , id (ord c + id _) :: Int+  , id (id _ + ord _) :: Int+  , id (id _ + ord c) :: Int+  , id (id _ + abs x) :: Int+  , id (id _ + negate x) :: Int+  , id (id _ + head _) :: Int+  , id (id _ + head xs) :: Int+  , id (id x + ord _) :: Int+  , id (id x + abs _) :: Int+  , id (id x + negate _) :: Int+  , id (id x + head _) :: Int+  , id (id (ord _) + _) :: Int+  , id (id (ord _) + x) :: Int+  , id (id (ord c) + _) :: Int+  , id (id (abs _) + x) :: Int+  , id (id (abs x) + _) :: Int+  , id (id (negate _) + x) :: Int+  , id (id (negate x) + _) :: Int+  , id (id (head _) + _) :: Int+  , id (id (head _) + x) :: Int+  , id (id (head xs) + _) :: Int+  , id (abs _ + id x) :: Int+  , id (abs x + id _) :: Int+  , id (abs (id _) + x) :: Int+  , id (abs (id x) + _) :: Int+  , id (negate _ + id x) :: Int+  , id (negate x + id _) :: Int+  , id (negate (id _) + x) :: Int+  , id (negate (id x) + _) :: Int+  , id (head _ + id _) :: Int+  , id (head _ + id x) :: Int+  , id (head xs + id _) :: Int+  , id ((_ + x) + 0) :: Int+  , id ((_ + 0) + x) :: Int+  , id ((x + _) + 0) :: Int+  , id ((x + 0) + _) :: Int+  , id ((0 + _) + x) :: Int+  , id ((0 + x) + _) :: Int+  , head [_,x] :: Int+  , head (_:0:_) :: Int+  , head (_:0:xs) :: Int+  , head (_:1:_) :: Int+  , head [x,_] :: Int+  , head (x:0:_) :: Int+  , head (0:_:_) :: Int+  , head (0:_:xs) :: Int+  , head (0:x:_) :: Int+  , head (1:_:_) :: Int+  , head (id (id _):_) :: Int+  , head (id (id _):xs) :: Int+  , head (id (id x):_) :: Int+  , tail (_:0:_) :: [Int]+  , tail (0:_:_) :: [Int]+  , tail (id (id _):_) :: [Int]+  , _ + id (id (ord _)) :: Int+  , _ + id (id (head _)) :: Int+  , ord _ + id (id _) :: Int+  , id _ + id (ord _) :: Int+  , id _ + id (head _) :: Int+  , id (ord _) + id _ :: Int+  , id (id _) + ord _ :: Int+  , id (id _) + head _ :: Int+  , id (id (ord _)) + _ :: Int+  , id (id (head _)) + _ :: Int+  , id (head _) + id _ :: Int+  , head _ + id (id _) :: Int+  , _:tail (0:_) :: [Int]+  , _:0:tail _ :: [Int]+  , [_,ord _] :: [Int]+  , _:ord 'a':_ :: [Int]+  , [_,id x] :: [Int]+  , _:id 0:_ :: [Int]+  , _:id 0:xs :: [Int]+  , _:id 1:_ :: [Int]+  , _:abs 0:_ :: [Int]+  , _:negate 0:_ :: [Int]+  , [_,head _] :: [Int]+  , _:head []:_ :: [Int]+  , [x,id _] :: [Int]+  , x:id 0:_ :: [Int]+  , 0:tail (_:_) :: [Int]+  , 0:_:tail _ :: [Int]+  , 0:ord _:_ :: [Int]+  , 0:id _:_ :: [Int]+  , 0:id _:xs :: [Int]+  , 0:id x:_ :: [Int]+  , 0:abs _:_ :: [Int]+  , 0:negate _:_ :: [Int]+  , 1:id _:_ :: [Int]+  , [ord _,_] :: [Int]+  , ord _:0:_ :: [Int]+  , ord 'a':_:_ :: [Int]+  , [id _,x] :: [Int]+  , id _:0:_ :: [Int]+  , id _:0:xs :: [Int]+  , id _:1:_ :: [Int]+  , [id x,_] :: [Int]+  , id x:0:_ :: [Int]+  , id 0:_:_ :: [Int]+  , id 0:_:xs :: [Int]+  , id 0:x:_ :: [Int]+  , id 1:_:_ :: [Int]+  , id (id _):tail _ :: [Int]+  , id (id (ord _)):_ :: [Int]+  , id (id (abs _)):_ :: [Int]+  , id (id (negate _)):_ :: [Int]+  , id (abs (id _)):_ :: [Int]+  , id (negate (id _)):_ :: [Int]+  , abs _:0:_ :: [Int]+  , abs 0:_:_ :: [Int]+  , abs (id (id _)):_ :: [Int]+  , negate _:0:_ :: [Int]+  , negate 0:_:_ :: [Int]+  , negate (id (id _)):_ :: [Int]+  , [head _,_] :: [Int]+  , head []:_:_ :: [Int]+  , [head (_:_)] :: [Int]+  , head [_]:_ :: [Int]+  , id (abs (head (_:_))) :: Int+  , id (abs (head (_:xs))) :: Int+  , id (abs (head (x:_))) :: Int+  , id (abs (_ + ord _)) :: Int+  , id (abs (_ + head _)) :: Int+  , id (abs (ord _ + _)) :: Int+  , id (abs (head _ + _)) :: Int+  , id (negate (head (_:_))) :: Int+  , id (negate (head (_:xs))) :: Int+  , id (negate (head (x:_))) :: Int+  , id (negate (_ + ord _)) :: Int+  , id (negate (_ + head _)) :: Int+  , id (negate (ord _ + _)) :: Int+  , id (negate (head _ + _)) :: Int+  , id (head (tail (_:_))) :: Int+  , id (head (tail (_:xs))) :: Int+  , id (head (tail (x:_))) :: Int+  , id (head (_:sort _)) :: Int+  , id (head (_:tail _)) :: Int+  , id (head (_:tail xs)) :: Int+  , id (head (x:tail _)) :: Int+  , id (head (ord _:_)) :: Int+  , id (head (ord _:xs)) :: Int+  , id (head (ord c:_)) :: Int+  , id (head (abs _:_)) :: Int+  , id (head (abs _:xs)) :: Int+  , id (head (abs x:_)) :: Int+  , id (head (negate _:_)) :: Int+  , id (head (negate _:xs)) :: Int+  , id (head (negate x:_)) :: Int+  , id (_ + abs (ord _)) :: Int+  , id (_ + abs (head _)) :: Int+  , id (_ + negate (ord _)) :: Int+  , id (_ + negate (head _)) :: Int+  , id (_ + head (tail _)) :: Int+  , id (ord _ + abs _) :: Int+  , id (ord _ + negate _) :: Int+  , id (ord _ + head _) :: Int+  , id (abs _ + ord _) :: Int+  , id (abs _ + head _) :: Int+  , id (abs (ord _) + _) :: Int+  , id (abs (head _) + _) :: Int+  , id (negate _ + ord _) :: Int+  , id (negate _ + head _) :: Int+  , id (negate (ord _) + _) :: Int+  , id (negate (head _) + _) :: Int+  , id (head _ + ord _) :: Int+  , id (head _ + abs _) :: Int+  , id (head _ + negate _) :: Int+  , id (head (tail _) + _) :: Int+  , abs (id (head (_:_))) :: Int+  , abs (head (id _:_)) :: Int+  , negate (id (head (_:_))) :: Int+  , negate (head (id _:_)) :: Int+  , head (tail (id _:_)) :: Int+  , head (_:(_ ++ [])) :: Int+  , head (_:([] ++ _)) :: Int+  , head (id _:tail _) :: Int+  , head (id (ord _):_) :: Int+  , head (id (abs _):_) :: Int+  , head (id (negate _):_) :: Int+  , head (abs (id _):_) :: Int+  , head (negate (id _):_) :: Int+  , head (_ + 0:_) :: Int+  , head (0 + _:_) :: Int+  , head (_ ++ [_]) :: Int+  , head ([] ++ (_:_)) :: Int+  , head ((_:_) ++ []) :: Int+  , head ([_] ++ _) :: Int+  , _ + head (0:_) :: Int+  , 0 + head (_:_) :: Int+  , head (_:_) + 0 :: Int+  , head (0:_) + _ :: Int+  , id _:(_ ++ []) :: [Int]+  , id _:([] ++ _) :: [Int]+  , id (_ + 0):_ :: [Int]+  , id (0 + _):_ :: [Int]+  , _ + id 0:_ :: [Int]+  , 0 + id _:_ :: [Int]+  , id _ + 0:_ :: [Int]+  , id 0 + _:_ :: [Int]+  , _ ++ [id _] :: [Int]+  , [] ++ (id _:_) :: [Int]+  , (id _:_) ++ [] :: [Int]+  , [id _] ++ _ :: [Int]+  , not (_ || (_ || _)) :: Bool+  , not ((_ || _) || _) :: Bool+  , id (_ * (_ * _)) :: Int+  , id ((_ * _) * _) :: Int+  , id (_ + (_ + _)) :: Int+  , id ((_ + _) + _) :: Int+  , abs (_ + (_ + _)) :: Int+  , abs ((_ + _) + _) :: Int+  , negate (_ + (_ + _)) :: Int+  , negate ((_ + _) + _) :: Int+  , head (_ ++ (_ ++ _)) :: Int+  , head ((_ ++ _) ++ _) :: Int+  , _ || not (_ || _) :: Bool+  , _ || (_ || not _) :: Bool+  , _ || (not _ || _) :: Bool+  , not _ || (_ || _) :: Bool+  , not (_ || _) || _ :: Bool+  , (_ || _) || not _ :: Bool+  , (_ || not _) || _ :: Bool+  , (not _ || _) || _ :: Bool+  , _ + id (_ + _) :: Int+  , _ + abs (_ + _) :: Int+  , _ + negate (_ + _) :: Int+  , _ + (_ + id _) :: Int+  , _ + (_ + abs _) :: Int+  , _ + (_ + negate _) :: Int+  , _ + (id _ + _) :: Int+  , _ + (abs _ + _) :: Int+  , _ + (negate _ + _) :: Int+  , id _ + (_ + _) :: Int+  , id (_ + _) + _ :: Int+  , abs _ + (_ + _) :: Int+  , abs (_ + _) + _ :: Int+  , negate _ + (_ + _) :: Int+  , negate (_ + _) + _ :: Int+  , (_ + _) + id _ :: Int+  , (_ + _) + abs _ :: Int+  , (_ + _) + negate _ :: Int+  , (_ + id _) + _ :: Int+  , (_ + abs _) + _ :: Int+  , (_ + negate _) + _ :: Int+  , (id _ + _) + _ :: Int+  , (abs _ + _) + _ :: Int+  , (negate _ + _) + _ :: Int+  , id (_ * (_ + _)) :: Int+  , id ((_ + _) * _) :: Int+  , id (_ + _ * _) :: Int+  , id (_ * _ + _) :: Int+  , _ * id (_ + _) :: Int+  , _ * (_ + id _) :: Int+  , _ * (id _ + _) :: Int+  , id _ * (_ + _) :: Int+  , id (_ + _) * _ :: Int+  , (_ + _) * id _ :: Int+  , (_ + id _) * _ :: Int+  , (id _ + _) * _ :: Int+  , _ + id (_ * _) :: Int+  , _ + _ * id _ :: Int+  , _ + id _ * _ :: Int+  , id _ + _ * _ :: Int+  , id (_ * _) + _ :: Int+  , _ * _ + id _ :: Int+  , _ * id _ + _ :: Int+  , id _ * _ + _ :: Int+  , head _:(_ ++ _) :: [Int]+  , head (_ ++ _):_ :: [Int]+  , _ ++ (head _:_) :: [Int]+  , (head _:_) ++ _ :: [Int]+  , not (not (not (_ || _))) :: Bool+  , not (not (_ || not _)) :: Bool+  , not (not (not _ || _)) :: Bool+  , not (_ || not (not _)) :: Bool+  , not (not _ || not _) :: Bool+  , not (not (not _) || _) :: Bool+  , id (id (id (_ * _))) :: Int+  , id (id (id (_ + _))) :: Int+  , id (id (id (x + x))) :: Int+  , id (id (_ * id _)) :: Int+  , id (id (id _ * _)) :: Int+  , id (id (_ + id _)) :: Int+  , id (id (x + id x)) :: Int+  , id (id (id _ + _)) :: Int+  , id (id (id x + x)) :: Int+  , id (_ * id (id _)) :: Int+  , id (id _ * id _) :: Int+  , id (id (id _) * _) :: Int+  , id (_ + id (id _)) :: Int+  , id (x + id (id x)) :: Int+  , id (id _ + id _) :: Int+  , id (id x + id x) :: Int+  , id (id (id _) + _) :: Int+  , id (id (id x) + x) :: Int+  , _ || not (not (not _)) :: Bool+  , not _ || not (not _) :: Bool+  , not (not _) || not _ :: Bool+  , not (not (not _)) || _ :: Bool+  , _ * id (id (id _)) :: Int+  , id _ * id (id _) :: Int+  , id (id _) * id _ :: Int+  , id (id (id _)) * _ :: Int+  , _ + id (id (id _)) :: Int+  , id _ + id (id _) :: Int+  , id (id _) + id _ :: Int+  , id (id (id _)) + _ :: Int+  , id (id (abs (_ * _))) :: Int+  , id (id (abs (_ + _))) :: Int+  , id (id (negate (_ * _))) :: Int+  , id (id (negate (_ + _))) :: Int+  , id (id (head (_ ++ _))) :: Int+  , id (id (_ * abs _)) :: Int+  , id (id (_ * negate _)) :: Int+  , id (id (abs _ * _)) :: Int+  , id (id (negate _ * _)) :: Int+  , id (id (_ + abs _)) :: Int+  , id (id (_ + negate _)) :: Int+  , id (id (abs _ + _)) :: Int+  , id (id (negate _ + _)) :: Int+  , id (abs (id (_ * _))) :: Int+  , id (abs (id (_ + _))) :: Int+  , id (abs (abs (_ + _))) :: Int+  , id (abs (_ * id _)) :: Int+  , id (abs (id _ * _)) :: Int+  , id (abs (_ + id _)) :: Int+  , id (abs (_ + abs _)) :: Int+  , id (abs (id _ + _)) :: Int+  , id (abs (abs _ + _)) :: Int+  , id (negate (id (_ * _))) :: Int+  , id (negate (id (_ + _))) :: Int+  , id (negate (negate (_ + _))) :: Int+  , id (negate (_ * id _)) :: Int+  , id (negate (id _ * _)) :: Int+  , id (negate (_ + id _)) :: Int+  , id (negate (_ + negate _)) :: Int+  , id (negate (id _ + _)) :: Int+  , id (negate (negate _ + _)) :: Int+  , id (head (head _:_)) :: Int+  , id (_ * id (abs _)) :: Int+  , id (_ * id (negate _)) :: Int+  , id (_ * abs (id _)) :: Int+  , id (_ * negate (id _)) :: Int+  , id (id _ * abs _) :: Int+  , id (id _ * negate _) :: Int+  , id (id (abs _) * _) :: Int+  , id (id (negate _) * _) :: Int+  , id (abs _ * id _) :: Int+  , id (abs (id _) * _) :: Int+  , id (negate _ * id _) :: Int+  , id (negate (id _) * _) :: Int+  , id (_ + id (abs _)) :: Int+  , id (_ + id (negate _)) :: Int+  , id (_ + abs (id _)) :: Int+  , id (_ + abs (abs _)) :: Int+  , id (_ + negate (id _)) :: Int+  , id (_ + negate (negate _)) :: Int+  , id (_ + (_ + 0)) :: Int+  , id (_ + (_ + 1)) :: Int+  , id (_ + (0 + _)) :: Int+  , id (_ + (1 + _)) :: Int+  , id (0 + (_ + _)) :: Int+  , id (1 + (_ + _)) :: Int+  , id (ord _ + ord _) :: Int+  , id (id _ + abs _) :: Int+  , id (id _ + negate _) :: Int+  , id (id (abs _) + _) :: Int+  , id (id (negate _) + _) :: Int+  , id (abs _ + id _) :: Int+  , id (abs _ + abs _) :: Int+  , id (abs (id _) + _) :: Int+  , id (abs (abs _) + _) :: Int+  , id (negate _ + id _) :: Int+  , id (negate _ + negate _) :: Int+  , id (negate (id _) + _) :: Int+  , id (negate (negate _) + _) :: Int+  , id (head _ + head _) :: Int+  , id ((_ + _) + 0) :: Int+  , id ((_ + _) + 1) :: Int+  , id ((_ + 0) + _) :: Int+  , id ((_ + 1) + _) :: Int+  , id ((0 + _) + _) :: Int+  , id ((1 + _) + _) :: Int+  , abs (id (id (_ + _))) :: Int+  , abs (id (_ + id _)) :: Int+  , abs (id (id _ + _)) :: Int+  , abs (_ + id (id _)) :: Int+  , abs (id _ + id _) :: Int+  , abs (id (id _) + _) :: Int+  , negate (id (id (_ + _))) :: Int+  , negate (id (_ + id _)) :: Int+  , negate (id (id _ + _)) :: Int+  , negate (_ + id (id _)) :: Int+  , negate (id _ + id _) :: Int+  , negate (id (id _) + _) :: Int+  , head [_,_] :: Int+  , head (_:_:[0]) :: Int+  , head (id (head _):_) :: Int+  , tail [_,_] :: [Int]+  , _ + id (id (abs _)) :: Int+  , _ + id (id (negate _)) :: Int+  , _ + id (abs (id _)) :: Int+  , _ + id (negate (id _)) :: Int+  , _ + id (_ + 0) :: Int+  , _ + id (0 + _) :: Int+  , _ + abs (id (id _)) :: Int+  , _ + negate (id (id _)) :: Int+  , _ + (_ + id 0) :: Int+  , _ + (0 + id _) :: Int+  , _ + (id _ + 0) :: Int+  , _ + (id 0 + _) :: Int+  , 0 + id (_ + _) :: Int+  , 0 + (_ + id _) :: Int+  , 0 + (id _ + _) :: Int+  , id _ + id (abs _) :: Int+  , id _ + id (negate _) :: Int+  , id _ + abs (id _) :: Int+  , id _ + negate (id _) :: Int+  , id _ + (_ + 0) :: Int+  , id _ + (0 + _) :: Int+  , id 0 + (_ + _) :: Int+  , id (id _) + abs _ :: Int+  , id (id _) + negate _ :: Int+  , id (id (abs _)) + _ :: Int+  , id (id (negate _)) + _ :: Int+  , id (abs _) + id _ :: Int+  , id (abs (id _)) + _ :: Int+  , id (negate _) + id _ :: Int+  , id (negate (id _)) + _ :: Int+  , id (_ + _) + 0 :: Int+  , id (_ + 0) + _ :: Int+  , id (0 + _) + _ :: Int+  , abs _ + id (id _) :: Int+  , abs (id _) + id _ :: Int+  , abs (id (id _)) + _ :: Int+  , negate _ + id (id _) :: Int+  , negate (id _) + id _ :: Int+  , negate (id (id _)) + _ :: Int+  , (_ + _) + id 0 :: Int+  , (_ + 0) + id _ :: Int+  , (_ + id _) + 0 :: Int+  , (_ + id 0) + _ :: Int+  , (0 + _) + id _ :: Int+  , (0 + id _) + _ :: Int+  , (id _ + _) + 0 :: Int+  , (id _ + 0) + _ :: Int+  , (id 0 + _) + _ :: Int+  , _:tail [_] :: [Int]+  , _:_:tail [] :: [Int]+  , [_,id _] :: [Int]+  , _:id _:[0] :: [Int]+  , [_,abs _] :: [Int]+  , [_,negate _] :: [Int]+  , 0:head _:_ :: [Int]+  , [id _,_] :: [Int]+  , id _:_:[0] :: [Int]+  , id (id (head _)):_ :: [Int]+  , [abs _,_] :: [Int]+  , [negate _,_] :: [Int]+  , head _:0:_ :: [Int]+  , head (0:_):_ :: [Int]+  , id (abs (negate (_ + _))) :: Int+  , id (abs (head (_ ++ _))) :: Int+  , id (abs (_ + negate _)) :: Int+  , id (abs (negate _ + _)) :: Int+  , id (negate (abs (_ + _))) :: Int+  , id (negate (head (_ ++ _))) :: Int+  , id (negate (_ + abs _)) :: Int+  , id (negate (abs _ + _)) :: Int+  , id (head (tail (_ ++ _))) :: Int+  , id (head (_ ++ tail _)) :: Int+  , id (_ * (_ + 0)) :: Int+  , id (_ * (0 + _)) :: Int+  , id (0 * (_ + _)) :: Int+  , id ((_ + _) * 0) :: Int+  , id ((_ + 0) * _) :: Int+  , id ((0 + _) * _) :: Int+  , id (_ + abs (negate _)) :: Int+  , id (_ + negate (abs _)) :: Int+  , id (_ + _ * 0) :: Int+  , id (_ + 0 * _) :: Int+  , id (0 + _ * _) :: Int+  , id (abs _ + negate _) :: Int+  , id (abs (negate _) + _) :: Int+  , id (negate _ + abs _) :: Int+  , id (negate (abs _) + _) :: Int+  , id (_ * _ + 0) :: Int+  , id (_ * 0 + _) :: Int+  , id (0 * _ + _) :: Int+  , head (0:(_ ++ _)) :: Int+  , head [_ + _] :: Int+  , head (_ ++ (0:_)) :: Int+  , head ((0:_) ++ _) :: Int+  , _ + head [_] :: Int+  , head [_] + _ :: Int+  , id 0:(_ ++ _) :: [Int]+  , [id (_ + _)] :: [Int]+  , [_ + id _] :: [Int]+  , [id _ + _] :: [Int]+  , _ ++ (id 0:_) :: [Int]+  , (id 0:_) ++ _ :: [Int]+  , not (not (not (not (not _)))) :: Bool+  , id (id (id (id (id _)))) :: Int+  , id (id (id (id (id x)))) :: Int+  , id (id (id (id (id y)))) :: Int+  , id (id (id (id (ord _)))) :: Int+  , id (id (id (id (ord c)))) :: Int+  , id (id (id (id (abs _)))) :: Int+  , id (id (id (id (abs x)))) :: Int+  , id (id (id (id (negate _)))) :: Int+  , id (id (id (id (negate x)))) :: Int+  , id (id (id (id (head _)))) :: Int+  , id (id (id (id (head xs)))) :: Int+  , id (id (id (abs (id _)))) :: Int+  , id (id (id (abs (id x)))) :: Int+  , id (id (id (abs (abs _)))) :: Int+  , id (id (id (negate (id _)))) :: Int+  , id (id (id (negate (id x)))) :: Int+  , id (id (id (negate (negate _)))) :: Int+  , id (id (abs (id (id _)))) :: Int+  , id (id (abs (id (id x)))) :: Int+  , id (id (abs (id (abs _)))) :: Int+  , id (id (abs (abs (id _)))) :: Int+  , id (id (negate (id (id _)))) :: Int+  , id (id (negate (id (id x)))) :: Int+  , id (id (negate (id (negate _)))) :: Int+  , id (id (negate (negate (id _)))) :: Int+  , id (abs (id (id (id _)))) :: Int+  , id (abs (id (id (id x)))) :: Int+  , id (abs (id (id (abs _)))) :: Int+  , id (abs (id (abs (id _)))) :: Int+  , id (abs (abs (id (id _)))) :: Int+  , id (negate (id (id (id _)))) :: Int+  , id (negate (id (id (id x)))) :: Int+  , id (negate (id (id (negate _)))) :: Int+  , id (negate (id (negate (id _)))) :: Int+  , id (negate (negate (id (id _)))) :: Int+  , abs (id (id (id (id _)))) :: Int+  , negate (id (id (id (id _)))) :: Int+  , id (id (id (abs (ord _)))) :: Int+  , id (id (id (abs (negate _)))) :: Int+  , id (id (id (abs (head _)))) :: Int+  , id (id (id (negate (ord _)))) :: Int+  , id (id (id (negate (abs _)))) :: Int+  , id (id (id (negate (head _)))) :: Int+  , id (id (id (head (tail _)))) :: Int+  , id (id (id (_ * 0))) :: Int+  , id (id (id (0 * _))) :: Int+  , id (id (id (_ + 0))) :: Int+  , id (id (id (_ + 1))) :: Int+  , id (id (id (x + 0))) :: Int+  , id (id (id (0 + _))) :: Int+  , id (id (id (0 + x))) :: Int+  , id (id (id (1 + _))) :: Int+  , id (id (abs (id (ord _)))) :: Int+  , id (id (abs (id (negate _)))) :: Int+  , id (id (abs (id (head _)))) :: Int+  , id (id (abs (negate (id _)))) :: Int+  , id (id (negate (id (ord _)))) :: Int+  , id (id (negate (id (abs _)))) :: Int+  , id (id (negate (id (head _)))) :: Int+  , id (id (negate (abs (id _)))) :: Int+  , id (id (_ * id 0)) :: Int+  , id (id (0 * id _)) :: Int+  , id (id (id _ * 0)) :: Int+  , id (id (id 0 * _)) :: Int+  , id (id (_ + id 0)) :: Int+  , id (id (_ + id 1)) :: Int+  , id (id (x + id 0)) :: Int+  , id (id (0 + id _)) :: Int+  , id (id (0 + id x)) :: Int+  , id (id (1 + id _)) :: Int+  , id (id (id _ + 0)) :: Int+  , id (id (id _ + 1)) :: Int+  , id (id (id x + 0)) :: Int+  , id (id (id 0 + _)) :: Int+  , id (id (id 0 + x)) :: Int+  , id (id (id 1 + _)) :: Int+  , id (abs (id (id (ord _)))) :: Int+  , id (abs (id (id (negate _)))) :: Int+  , id (abs (id (id (head _)))) :: Int+  , id (abs (id (negate (id _)))) :: Int+  , id (abs (negate (id (id _)))) :: Int+  , id (negate (id (id (ord _)))) :: Int+  , id (negate (id (id (abs _)))) :: Int+  , id (negate (id (id (head _)))) :: Int+  , id (negate (id (abs (id _)))) :: Int+  , id (negate (abs (id (id _)))) :: Int+  , id (_ * id (id 0)) :: Int+  , id (0 * id (id _)) :: Int+  , id (id _ * id 0) :: Int+  , id (id 0 * id _) :: Int+  , id (id (id _) * 0) :: Int+  , id (id (id 0) * _) :: Int+  , id (_ + id (id 0)) :: Int+  , id (_ + id (id 1)) :: Int+  , id (_ + (0 + 0)) :: Int+  , id (x + id (id 0)) :: Int+  , id (0 + id (id _)) :: Int+  , id (0 + id (id x)) :: Int+  , id (0 + (_ + 0)) :: Int+  , id (0 + (0 + _)) :: Int+  , id (1 + id (id _)) :: Int+  , id (id _ + id 0) :: Int+  , id (id _ + id 1) :: Int+  , id (id x + id 0) :: Int+  , id (id 0 + id _) :: Int+  , id (id 0 + id x) :: Int+  , id (id 1 + id _) :: Int+  , id (id (id _) + 0) :: Int+  , id (id (id _) + 1) :: Int+  , id (id (id x) + 0) :: Int+  , id (id (id 0) + _) :: Int+  , id (id (id 0) + x) :: Int+  , id (id (id 1) + _) :: Int+  , id ((_ + 0) + 0) :: Int+  , id ((0 + _) + 0) :: Int+  , id ((0 + 0) + _) :: Int+  , head (0:0:_) :: Int+  , _ + id (id (id 0)) :: Int+  , 0 + id (id (id _)) :: Int+  , id _ + id (id 0) :: Int+  , id 0 + id (id _) :: Int+  , id (id _) + id 0 :: Int+  , id (id 0) + id _ :: Int+  , id (id (id _)) + 0 :: Int+  , id (id (id 0)) + _ :: Int+  , 0:id 0:_ :: [Int]+  , id 0:0:_ :: [Int]+  , [id (id (id _))] :: [Int]+  , id (id (id 0)):_ :: [Int]+  , id (id (abs (_ + 0))) :: Int+  , id (id (abs (0 + _))) :: Int+  , id (id (negate (_ + 0))) :: Int+  , id (id (negate (0 + _))) :: Int+  , id (id (head [_])) :: Int+  , id (id (head (_:[0]))) :: Int+  , id (id (head [x])) :: Int+  , id (id (head (0:_))) :: Int+  , id (id (head (0:xs))) :: Int+  , id (id (head (1:_))) :: Int+  , id (id (head (_ ++ []))) :: Int+  , id (id (head ([] ++ _))) :: Int+  , id (id (_ + ord 'a')) :: Int+  , id (id (_ + abs 0)) :: Int+  , id (id (_ + negate 0)) :: Int+  , id (id (_ + head [])) :: Int+  , id (id (0 + ord _)) :: Int+  , id (id (0 + abs _)) :: Int+  , id (id (0 + negate _)) :: Int+  , id (id (0 + head _)) :: Int+  , id (id (ord _ + 0)) :: Int+  , id (id (ord 'a' + _)) :: Int+  , id (id (abs _ + 0)) :: Int+  , id (id (abs 0 + _)) :: Int+  , id (id (negate _ + 0)) :: Int+  , id (id (negate 0 + _)) :: Int+  , id (id (head _ + 0)) :: Int+  , id (id (head [] + _)) :: Int+  , id (abs (id (_ + 0))) :: Int+  , id (abs (id (0 + _))) :: Int+  , id (abs (_ + id 0)) :: Int+  , id (abs (0 + id _)) :: Int+  , id (abs (id _ + 0)) :: Int+  , id (abs (id 0 + _)) :: Int+  , id (negate (id (_ + 0))) :: Int+  , id (negate (id (0 + _))) :: Int+  , id (negate (_ + id 0)) :: Int+  , id (negate (0 + id _)) :: Int+  , id (negate (id _ + 0)) :: Int+  , id (negate (id 0 + _)) :: Int+  , id (head [id _]) :: Int+  , id (head (id _:[0])) :: Int+  , id (head [id x]) :: Int+  , id (head (id 0:_)) :: Int+  , id (head (id 0:xs)) :: Int+  , id (head (id 1:_)) :: Int+  , id (head [head _]) :: Int+  , id (head (head []:_)) :: Int+  , id (_ + id (ord 'a')) :: Int+  , id (_ + id (abs 0)) :: Int+  , id (_ + id (negate 0)) :: Int+  , id (_ + id (head [])) :: Int+  , id (_ + abs (id 0)) :: Int+  , id (_ + negate (id 0)) :: Int+  , id (0 + id (ord _)) :: Int+  , id (0 + id (abs _)) :: Int+  , id (0 + id (negate _)) :: Int+  , id (0 + id (head _)) :: Int+  , id (0 + abs (id _)) :: Int+  , id (0 + negate (id _)) :: Int+  , id (ord _ + id 0) :: Int+  , id (ord 'a' + id _) :: Int+  , id (id _ + ord 'a') :: Int+  , id (id _ + abs 0) :: Int+  , id (id _ + negate 0) :: Int+  , id (id _ + head []) :: Int+  , id (id 0 + ord _) :: Int+  , id (id 0 + abs _) :: Int+  , id (id 0 + negate _) :: Int+  , id (id 0 + head _) :: Int+  , id (id (ord _) + 0) :: Int+  , id (id (ord 'a') + _) :: Int+  , id (id (abs _) + 0) :: Int+  , id (id (abs 0) + _) :: Int+  , id (id (negate _) + 0) :: Int+  , id (id (negate 0) + _) :: Int+  , id (id (head _) + 0) :: Int+  , id (id (head []) + _) :: Int+  , id (abs _ + id 0) :: Int+  , id (abs 0 + id _) :: Int+  , id (abs (id _) + 0) :: Int+  , id (abs (id 0) + _) :: Int+  , id (negate _ + id 0) :: Int+  , id (negate 0 + id _) :: Int+  , id (negate (id _) + 0) :: Int+  , id (negate (id 0) + _) :: Int+  , id (head _ + id 0) :: Int+  , id (head [] + id _) :: Int+  , head [_,0] :: Int+  , head [0,_] :: Int+  , head [id (id _)] :: Int+  , head (id (id 0):_) :: Int+  , [_,id 0] :: [Int]+  , [0,id _] :: [Int]+  , [id _,0] :: [Int]+  , [id 0,_] :: [Int]+  , id (abs (head [_])) :: Int+  , id (abs (head (0:_))) :: Int+  , id (negate (head [_])) :: Int+  , id (negate (head (0:_))) :: Int+  , id (head (tail [_])) :: Int+  , id (head (tail (0:_))) :: Int+  , id (head (_:tail [])) :: Int+  , id (head (0:tail _)) :: Int+  , id (head [ord _]) :: Int+  , id (head (ord 'a':_)) :: Int+  , id (head [abs _]) :: Int+  , id (head (abs 0:_)) :: Int+  , id (head [negate _]) :: Int+  , id (head (negate 0:_)) :: Int+  , id (id (id (id (id 0)))) :: Int+  , id (id (id (id (id 1)))) :: Int+  , id (id (id (id (ord 'a')))) :: Int+  , id (id (id (id (abs 0)))) :: Int+  , id (id (id (id (negate 0)))) :: Int+  , id (id (id (id (head [])))) :: Int+  , id (id (id (abs (id 0)))) :: Int+  , id (id (id (negate (id 0)))) :: Int+  , id (id (id (0 + 0))) :: Int+  , id (id (abs (id (id 0)))) :: Int+  , id (id (negate (id (id 0)))) :: Int+  , id (id (0 + id 0)) :: Int+  , id (id (id 0 + 0)) :: Int+  , id (abs (id (id (id 0)))) :: Int+  , id (negate (id (id (id 0)))) :: Int+  , id (0 + id (id 0)) :: Int+  , id (id 0 + id 0) :: Int+  , id (id (id 0) + 0) :: Int+  , id (id (head [0])) :: Int+  , id (head [id 0]) :: Int+  , _:_:x:_ :: [Int]+  , _:_:x:xs :: [Int]+  , _:_:y:_ :: [Int]+  , _:x:_:_ :: [Int]+  , _:x:_:xs :: [Int]+  , _:x:x:_ :: [Int]+  , _:y:_:_ :: [Int]+  , x:_:_:_ :: [Int]+  , x:_:_:xs :: [Int]+  , x:_:x:_ :: [Int]+  , x:x:_:_ :: [Int]+  , y:_:_:_ :: [Int]+  , _:_:(_ ++ xs) :: [Int]+  , _:_:(xs ++ _) :: [Int]+  , _:x:(_ ++ _) :: [Int]+  , _:_ + x:_ :: [Int]+  , _:x + _:_ :: [Int]+  , _:(_ ++ (_:xs)) :: [Int]+  , _:(_ ++ (x:_)) :: [Int]+  , _:(xs ++ (_:_)) :: [Int]+  , _:((_:_) ++ xs) :: [Int]+  , _:((_:xs) ++ _) :: [Int]+  , _:((x:_) ++ _) :: [Int]+  , x:_:(_ ++ _) :: [Int]+  , x:_ + _:_ :: [Int]+  , x:(_ ++ (_:_)) :: [Int]+  , x:((_:_) ++ _) :: [Int]+  , _ + _:x:_ :: [Int]+  , _ + x:_:_ :: [Int]+  , x + _:_:_ :: [Int]+  , _ ++ (_:_:xs) :: [Int]+  , _ ++ (_:x:_) :: [Int]+  , _ ++ (x:_:_) :: [Int]+  , xs ++ (_:_:_) :: [Int]+  , (_:_) ++ (_:xs) :: [Int]+  , (_:_) ++ (x:_) :: [Int]+  , (_:xs) ++ (_:_) :: [Int]+  , (_:_:_) ++ xs :: [Int]+  , (_:_:xs) ++ _ :: [Int]+  , (_:x:_) ++ _ :: [Int]+  , (x:_) ++ (_:_) :: [Int]+  , (x:_:_) ++ _ :: [Int]+  , _:x:0:_ :: [Int]+  , _:0:x:_ :: [Int]+  , _:id (id x):_ :: [Int]+  , x:_:0:_ :: [Int]+  , x:0:_:_ :: [Int]+  , x:id (id _):_ :: [Int]+  , 0:_:x:_ :: [Int]+  , 0:x:_:_ :: [Int]+  , id _:id x:_ :: [Int]+  , id x:id _:_ :: [Int]+  , id (id _):x:_ :: [Int]+  , id (id x):_:_ :: [Int]+  , id (head (_:x:_)) :: Int+  , id (head (_:x:xs)) :: Int+  , id (head (_:y:_)) :: Int+  , id (head (x:_:_)) :: Int+  , id (head (x:_:xs)) :: Int+  , id (head (y:_:_)) :: Int+  , head (_:ord _:_) :: Int+  , head (_:id x:_) :: Int+  , head (x:id _:_) :: Int+  , head (ord _:_:_) :: Int+  , head (id _:x:_) :: Int+  , head (id x:_:_) :: Int+  , _:id (ord _):_ :: [Int]+  , ord _:id _:_ :: [Int]+  , id _:ord _:_ :: [Int]+  , id (ord _):_:_ :: [Int]+  , id (head (_:(_ ++ xs))) :: Int+  , id (head (_:(xs ++ _))) :: Int+  , id (head (_ + x:_)) :: Int+  , id (head (x + _:_)) :: Int+  , id (head (_ ++ (_:xs))) :: Int+  , id (head (xs ++ (_:_))) :: Int+  , id (head ((_:_) ++ xs)) :: Int+  , id (head ((_:xs) ++ _)) :: Int+  , id (_ + head (x:_)) :: Int+  , id (x + head (_:_)) :: Int+  , id (head (_:_) + x) :: Int+  , id (head (x:_) + _) :: Int+  , _:_:_:_ :: [Int]+  , _:_:_:xs :: [Int]+  , _:_:_:ys :: [Int]+  , elem _ (_:_:_) :: Bool+  , _:_:insert _ _ :: [Int]+  , _:_:(_ ++ _) :: [Int]+  , _:_ * _:_ :: [Int]+  , _:_ + _:_ :: [Int]+  , _:_ + _:xs :: [Int]+  , _:insert _ (_:_) :: [Int]+  , _:(_ ++ (_:_)) :: [Int]+  , _:(_ ++ (_ ++ _)) :: [Int]+  , _:((_:_) ++ _) :: [Int]+  , _:((_ ++ _) ++ _) :: [Int]+  , _ * _:_:_ :: [Int]+  , _ + _:_:_ :: [Int]+  , _ + _:_:xs :: [Int]+  , _ + (_ + _):_ :: [Int]+  , (_ + _) + _:_ :: [Int]+  , insert _ (_:_:_) :: [Int]+  , _ ++ (_:_:_) :: [Int]+  , _ ++ (_:(_ ++ _)) :: [Int]+  , _ ++ (_ ++ (_:_)) :: [Int]+  , _ ++ ((_:_) ++ _) :: [Int]+  , (_:_) ++ (_:_) :: [Int]+  , (_:_) ++ (_ ++ _) :: [Int]+  , (_:_:_) ++ _ :: [Int]+  , (_:(_ ++ _)) ++ _ :: [Int]+  , (_ ++ _) ++ (_:_) :: [Int]+  , (_ ++ (_:_)) ++ _ :: [Int]+  , ((_:_) ++ _) ++ _ :: [Int]+  , _ + _:(_ ++ _) :: [Int]+  , _ ++ (_ + _:_) :: [Int]+  , (_ + _:_) ++ _ :: [Int]+  , id (id (_ + (_ + x))) :: Int+  , id (id (_ + (x + _))) :: Int+  , id (id (x + (_ + _))) :: Int+  , id (id ((_ + _) + x)) :: Int+  , id (id ((_ + x) + _)) :: Int+  , id (id ((x + _) + _)) :: Int+  , id (_ + id (_ + x)) :: Int+  , id (_ + id (x + _)) :: Int+  , id (_ + (_ + id x)) :: Int+  , id (_ + (x + id _)) :: Int+  , id (_ + (id _ + x)) :: Int+  , id (_ + (id x + _)) :: Int+  , id (x + id (_ + _)) :: Int+  , id (x + (_ + id _)) :: Int+  , id (x + (id _ + _)) :: Int+  , id (id _ + (_ + x)) :: Int+  , id (id _ + (x + _)) :: Int+  , id (id x + (_ + _)) :: Int+  , id (id (_ + _) + x) :: Int+  , id (id (_ + x) + _) :: Int+  , id (id (x + _) + _) :: Int+  , id ((_ + _) + id x) :: Int+  , id ((_ + x) + id _) :: Int+  , id ((_ + id _) + x) :: Int+  , id ((_ + id x) + _) :: Int+  , id ((x + _) + id _) :: Int+  , id ((x + id _) + _) :: Int+  , id ((id _ + _) + x) :: Int+  , id ((id _ + x) + _) :: Int+  , id ((id x + _) + _) :: Int+  , head (_:head _:_) :: Int+  , head (head _:_:_) :: Int+  , head (head (_:_):_) :: Int+  , [_,_,x] :: [Int]+  , _:_:0:_ :: [Int]+  , _:_:0:xs :: [Int]+  , _:_:1:_ :: [Int]+  , [_,x,_] :: [Int]+  , _:0:_:_ :: [Int]+  , _:0:_:xs :: [Int]+  , _:1:_:_ :: [Int]+  , _:id (id _):_ :: [Int]+  , _:id (id _):xs :: [Int]+  , [x,_,_] :: [Int]+  , 0:_:_:_ :: [Int]+  , 0:_:_:xs :: [Int]+  , 1:_:_:_ :: [Int]+  , id _:id _:_ :: [Int]+  , id _:id _:xs :: [Int]+  , id (id _):_:_ :: [Int]+  , id (id _):_:xs :: [Int]+  , id (head (_:_:_)) :: Int+  , id (head (_:_:xs)) :: Int+  , id (head (_:_:ys)) :: Int+  , id (head (x:x:_)) :: Int+  , id (_ + (_ + ord _)) :: Int+  , id (_ + (_ + head _)) :: Int+  , id (_ + (ord _ + _)) :: Int+  , id (_ + (head _ + _)) :: Int+  , id (ord _ + (_ + _)) :: Int+  , id (head _ + (_ + _)) :: Int+  , id ((_ + _) + ord _) :: Int+  , id ((_ + _) + head _) :: Int+  , id ((_ + ord _) + _) :: Int+  , id ((_ + head _) + _) :: Int+  , id ((ord _ + _) + _) :: Int+  , id ((head _ + _) + _) :: Int+  , abs (head (_:_:_)) :: Int+  , negate (head (_:_:_)) :: Int+  , head (tail (_:_:_)) :: Int+  , head (_:tail (_:_)) :: Int+  , head (_:_:tail _) :: Int+  , head (_:id _:_) :: Int+  , head (_:id _:xs) :: Int+  , head (_:abs _:_) :: Int+  , head (_:negate _:_) :: Int+  , head (id _:_:_) :: Int+  , head (id _:_:xs) :: Int+  , head (abs _:_:_) :: Int+  , head (negate _:_:_) :: Int+  , tail (_:id _:_) :: [Int]+  , tail (id _:_:_) :: [Int]+  , _:tail (id _:_) :: [Int]+  , _:_:(_ ++ []) :: [Int]+  , _:_:([] ++ _) :: [Int]+  , _:0:(_ ++ _) :: [Int]+  , _:id _:tail _ :: [Int]+  , _:id (abs _):_ :: [Int]+  , _:id (negate _):_ :: [Int]+  , _:id (head _):_ :: [Int]+  , _:abs (id _):_ :: [Int]+  , _:negate (id _):_ :: [Int]+  , _:_ + 0:_ :: [Int]+  , _:0 + _:_ :: [Int]+  , _:(_ ++ [_]) :: [Int]+  , _:(_ ++ (0:_)) :: [Int]+  , _:([] ++ (_:_)) :: [Int]+  , _:((_:_) ++ []) :: [Int]+  , _:([_] ++ _) :: [Int]+  , _:((0:_) ++ _) :: [Int]+  , 0:_:(_ ++ _) :: [Int]+  , 0:_ + _:_ :: [Int]+  , 0:(_ ++ (_:_)) :: [Int]+  , 0:((_:_) ++ _) :: [Int]+  , id _:tail (_:_) :: [Int]+  , id _:_:tail _ :: [Int]+  , id _:abs _:_ :: [Int]+  , id _:negate _:_ :: [Int]+  , id _:head _:_ :: [Int]+  , id (id _):(_ ++ _) :: [Int]+  , id (id (_ + _)):_ :: [Int]+  , id (abs _):_:_ :: [Int]+  , id (negate _):_:_ :: [Int]+  , id (head _):_:_ :: [Int]+  , id (head (_:_)):_ :: [Int]+  , id (_ + id _):_ :: [Int]+  , id (id _ + _):_ :: [Int]+  , abs _:id _:_ :: [Int]+  , abs (id _):_:_ :: [Int]+  , negate _:id _:_ :: [Int]+  , negate (id _):_:_ :: [Int]+  , head _:id _:_ :: [Int]+  , head (id _:_):_ :: [Int]+  , _ + _:0:_ :: [Int]+  , _ + 0:_:_ :: [Int]+  , _ + id (id _):_ :: [Int]+  , 0 + _:_:_ :: [Int]+  , id _ + id _:_ :: [Int]+  , id (id _) + _:_ :: [Int]+  , _ ++ [_,_] :: [Int]+  , _ ++ (_:0:_) :: [Int]+  , _ ++ (0:_:_) :: [Int]+  , _ ++ (id (id _):_) :: [Int]+  , [] ++ (_:_:_) :: [Int]+  , (_:_) ++ [_] :: [Int]+  , (_:_) ++ (0:_) :: [Int]+  , [_] ++ (_:_) :: [Int]+  , (_:_:_) ++ [] :: [Int]+  , [_,_] ++ _ :: [Int]+  , (_:0:_) ++ _ :: [Int]+  , (0:_) ++ (_:_) :: [Int]+  , (0:_:_) ++ _ :: [Int]+  , (id (id _):_) ++ _ :: [Int]+  , id (head (_:insert _ _)) :: Int+  , id (head (_:(_ ++ _))) :: Int+  , id (head (x:(_ ++ _))) :: Int+  , id (head (_ * _:_)) :: Int+  , id (head (_ + _:_)) :: Int+  , id (head (_ + _:xs)) :: Int+  , id (head (_ ++ (_:_))) :: Int+  , id (head (_ ++ (x:_))) :: Int+  , id (head ((_:_) ++ _)) :: Int+  , id (head ((x:_) ++ _)) :: Int+  , id (_ * head (_:_)) :: Int+  , id (head (_:_) * _) :: Int+  , id (_ + head (_:_)) :: Int+  , id (_ + head (_:xs)) :: Int+  , id (_ + head (_ ++ _)) :: Int+  , id (head (_:_) + _) :: Int+  , id (head (_:xs) + _) :: Int+  , id (head (_ ++ _) + _) :: Int+  , head (id _:(_ ++ _)) :: Int+  , head (id (_ + _):_) :: Int+  , head (_ + id _:_) :: Int+  , head (id _ + _:_) :: Int+  , head (_ ++ (id _:_)) :: Int+  , head ((id _:_) ++ _) :: Int+  , _ + id (head (_:_)) :: Int+  , _ + head (id _:_) :: Int+  , id _ + head (_:_) :: Int+  , id (head (_:_)) + _ :: Int+  , head (_:_) + id _ :: Int+  , head (id _:_) + _ :: Int+  , id (id (id (id (_ + x)))) :: Int+  , id (id (id (id (x + _)))) :: Int+  , id (id (id (_ + id x))) :: Int+  , id (id (id (x + id _))) :: Int+  , id (id (id (id _ + x))) :: Int+  , id (id (id (id x + _))) :: Int+  , id (id (_ + id (id x))) :: Int+  , id (id (x + id (id _))) :: Int+  , id (id (id _ + id x)) :: Int+  , id (id (id x + id _)) :: Int+  , id (id (id (id _) + x)) :: Int+  , id (id (id (id x) + _)) :: Int+  , id (_ + id (id (id x))) :: Int+  , id (x + id (id (id _))) :: Int+  , id (id _ + id (id x)) :: Int+  , id (id x + id (id _)) :: Int+  , id (id (id _) + id x) :: Int+  , id (id (id x) + id _) :: Int+  , id (id (id (id _)) + x) :: Int+  , id (id (id (id x)) + _) :: Int+  , _:0:0:_ :: [Int]+  , 0:_:0:_ :: [Int]+  , 0:0:_:_ :: [Int]+  , id (id (id (id _))):_ :: [Int]+  , id (id (id (head (_:_)))) :: Int+  , id (id (id (head (_:xs)))) :: Int+  , id (id (id (head (x:_)))) :: Int+  , id (id (id (_ + ord _))) :: Int+  , id (id (id (_ + head _))) :: Int+  , id (id (id (ord _ + _))) :: Int+  , id (id (id (head _ + _))) :: Int+  , id (id (head (id _:_))) :: Int+  , id (id (head (id _:xs))) :: Int+  , id (id (head (id x:_))) :: Int+  , id (id (_ + id (ord _))) :: Int+  , id (id (_ + id (head _))) :: Int+  , id (id (ord _ + id _)) :: Int+  , id (id (id _ + ord _)) :: Int+  , id (id (id _ + head _)) :: Int+  , id (id (id (ord _) + _)) :: Int+  , id (id (id (head _) + _)) :: Int+  , id (id (head _ + id _)) :: Int+  , id (head (id (id _):_)) :: Int+  , id (head (id (id _):xs)) :: Int+  , id (head (id (id x):_)) :: Int+  , id (_ + id (id (ord _))) :: Int+  , id (_ + id (id (head _))) :: Int+  , id (ord _ + id (id _)) :: Int+  , id (id _ + id (ord _)) :: Int+  , id (id _ + id (head _)) :: Int+  , id (id (ord _) + id _) :: Int+  , id (id (id _) + ord _) :: Int+  , id (id (id _) + head _) :: Int+  , id (id (id (ord _)) + _) :: Int+  , id (id (id (head _)) + _) :: Int+  , id (id (head _) + id _) :: Int+  , id (head _ + id (id _)) :: Int+  , head (id (id (id _)):_) :: Int+  , _:id (id 0):_ :: [Int]+  , 0:id (id _):_ :: [Int]+  , id _:id 0:_ :: [Int]+  , id 0:id _:_ :: [Int]+  , id (id _):0:_ :: [Int]+  , id (id 0):_:_ :: [Int]+  , id (id (abs (head (_:_)))) :: Int+  , id (id (negate (head (_:_)))) :: Int+  , id (id (head (tail (_:_)))) :: Int+  , id (id (head (_:tail _))) :: Int+  , id (id (head (ord _:_))) :: Int+  , id (id (head (abs _:_))) :: Int+  , id (id (head (negate _:_))) :: Int+  , id (abs (id (head (_:_)))) :: Int+  , id (abs (head (id _:_))) :: Int+  , id (negate (id (head (_:_)))) :: Int+  , id (negate (head (id _:_))) :: Int+  , id (head (tail (id _:_))) :: Int+  , id (head [_,x]) :: Int+  , id (head (_:0:_)) :: Int+  , id (head (_:0:xs)) :: Int+  , id (head (_:1:_)) :: Int+  , id (head [x,_]) :: Int+  , id (head (x:0:_)) :: Int+  , id (head (0:_:_)) :: Int+  , id (head (0:_:xs)) :: Int+  , id (head (0:x:_)) :: Int+  , id (head (1:_:_)) :: Int+  , id (head (id _:tail _)) :: Int+  , id (head (id (ord _):_)) :: Int+  , id (head (id (abs _):_)) :: Int+  , id (head (id (negate _):_)) :: Int+  , id (head (abs (id _):_)) :: Int+  , id (head (negate (id _):_)) :: Int+  , head (_:id 0:_) :: Int+  , head (0:id _:_) :: Int+  , head (id _:0:_) :: Int+  , head (id 0:_:_) :: Int+  , id (head (_:(_ ++ []))) :: Int+  , id (head (_:([] ++ _))) :: Int+  , id (head (_ + 0:_)) :: Int+  , id (head (0 + _:_)) :: Int+  , id (head (_ ++ [_])) :: Int+  , id (head ([] ++ (_:_))) :: Int+  , id (head ((_:_) ++ [])) :: Int+  , id (head ([_] ++ _)) :: Int+  , id (_ + head (0:_)) :: Int+  , id (0 + head (_:_)) :: Int+  , id (head (_:_) + 0) :: Int+  , id (head (0:_) + _) :: Int+  , _ + (_ + (_ + _)) :: Int+  , _ + ((_ + _) + _) :: Int+  , (_ + _) + (_ + _) :: Int+  , (_ + (_ + _)) + _ :: Int+  , ((_ + _) + _) + _ :: Int+  , id (id (_ + (_ + _))) :: Int+  , id (id ((_ + _) + _)) :: Int+  , id (_ + id (_ + _)) :: Int+  , id (_ + (_ + id _)) :: Int+  , id (_ + (id _ + _)) :: Int+  , id (id _ + (_ + _)) :: Int+  , id (id (_ + _) + _) :: Int+  , id ((_ + _) + id _) :: Int+  , id ((_ + id _) + _) :: Int+  , id ((id _ + _) + _) :: Int+  , _ + id (id (_ + _)) :: Int+  , _ + id (_ + id _) :: Int+  , _ + id (id _ + _) :: Int+  , _ + (_ + id (id _)) :: Int+  , _ + (id _ + id _) :: Int+  , _ + (id (id _) + _) :: Int+  , id _ + id (_ + _) :: Int+  , id _ + (_ + id _) :: Int+  , id _ + (id _ + _) :: Int+  , id (id _) + (_ + _) :: Int+  , id (id (_ + _)) + _ :: Int+  , id (_ + _) + id _ :: Int+  , id (_ + id _) + _ :: Int+  , id (id _ + _) + _ :: Int+  , (_ + _) + id (id _) :: Int+  , (_ + id _) + id _ :: Int+  , (_ + id (id _)) + _ :: Int+  , (id _ + _) + id _ :: Int+  , (id _ + id _) + _ :: Int+  , (id (id _) + _) + _ :: Int+  , [_,_,_] :: [Int]+  , _:_:_:[0] :: [Int]+  , id (id (_ * (_ + _))) :: Int+  , id (id ((_ + _) * _)) :: Int+  , id (id (_ + _ * _)) :: Int+  , id (id (_ * _ + _)) :: Int+  , id (abs (_ + (_ + _))) :: Int+  , id (abs ((_ + _) + _)) :: Int+  , id (negate (_ + (_ + _))) :: Int+  , id (negate ((_ + _) + _)) :: Int+  , id (head (_ ++ (_ ++ _))) :: Int+  , id (_ * id (_ + _)) :: Int+  , id (_ * (_ + id _)) :: Int+  , id (_ * (id _ + _)) :: Int+  , id (id _ * (_ + _)) :: Int+  , id (id (_ + _) * _) :: Int+  , id ((_ + _) * id _) :: Int+  , id ((_ + id _) * _) :: Int+  , id ((id _ + _) * _) :: Int+  , id (_ + id (_ * _)) :: Int+  , id (_ + abs (_ + _)) :: Int+  , id (_ + negate (_ + _)) :: Int+  , id (_ + _ * id _) :: Int+  , id (_ + id _ * _) :: Int+  , id (_ + (_ + abs _)) :: Int+  , id (_ + (_ + negate _)) :: Int+  , id (_ + (abs _ + _)) :: Int+  , id (_ + (negate _ + _)) :: Int+  , id (id _ + _ * _) :: Int+  , id (id (_ * _) + _) :: Int+  , id (abs _ + (_ + _)) :: Int+  , id (abs (_ + _) + _) :: Int+  , id (negate _ + (_ + _)) :: Int+  , id (negate (_ + _) + _) :: Int+  , id (_ * _ + id _) :: Int+  , id (_ * id _ + _) :: Int+  , id (id _ * _ + _) :: Int+  , id ((_ + _) + abs _) :: Int+  , id ((_ + _) + negate _) :: Int+  , id ((_ + abs _) + _) :: Int+  , id ((_ + negate _) + _) :: Int+  , id ((abs _ + _) + _) :: Int+  , id ((negate _ + _) + _) :: Int+  , [_,_ + _] :: [Int]+  , [_ + _,_] :: [Int]+  , id (id (id (id (_ * _)))) :: Int+  , id (id (id (id (_ + _)))) :: Int+  , id (id (id (_ * id _))) :: Int+  , id (id (id (id _ * _))) :: Int+  , id (id (id (_ + id _))) :: Int+  , id (id (id (id _ + _))) :: Int+  , id (id (_ * id (id _))) :: Int+  , id (id (id _ * id _)) :: Int+  , id (id (id (id _) * _)) :: Int+  , id (id (_ + id (id _))) :: Int+  , id (id (id _ + id _)) :: Int+  , id (id (id (id _) + _)) :: Int+  , id (_ * id (id (id _))) :: Int+  , id (id _ * id (id _)) :: Int+  , id (id (id _) * id _) :: Int+  , id (id (id (id _)) * _) :: Int+  , id (_ + id (id (id _))) :: Int+  , id (id _ + id (id _)) :: Int+  , id (id (id _) + id _) :: Int+  , id (id (id (id _)) + _) :: Int+  , _ + id (id (id (id _))) :: Int+  , id _ + id (id (id _)) :: Int+  , id (id _) + id (id _) :: Int+  , id (id (id _)) + id _ :: Int+  , id (id (id (id _))) + _ :: Int+  , id (id (id (abs (_ + _)))) :: Int+  , id (id (id (negate (_ + _)))) :: Int+  , id (id (id (head (_ ++ _)))) :: Int+  , id (id (id (_ + abs _))) :: Int+  , id (id (id (_ + negate _))) :: Int+  , id (id (id (abs _ + _))) :: Int+  , id (id (id (negate _ + _))) :: Int+  , id (id (abs (id (_ + _)))) :: Int+  , id (id (abs (_ + id _))) :: Int+  , id (id (abs (id _ + _))) :: Int+  , id (id (negate (id (_ + _)))) :: Int+  , id (id (negate (_ + id _))) :: Int+  , id (id (negate (id _ + _))) :: Int+  , id (id (head (head _:_))) :: Int+  , id (id (_ + id (abs _))) :: Int+  , id (id (_ + id (negate _))) :: Int+  , id (id (_ + abs (id _))) :: Int+  , id (id (_ + negate (id _))) :: Int+  , id (id (_ + (_ + 0))) :: Int+  , id (id (_ + (0 + _))) :: Int+  , id (id (0 + (_ + _))) :: Int+  , id (id (id _ + abs _)) :: Int+  , id (id (id _ + negate _)) :: Int+  , id (id (id (abs _) + _)) :: Int+  , id (id (id (negate _) + _)) :: Int+  , id (id (abs _ + id _)) :: Int+  , id (id (abs (id _) + _)) :: Int+  , id (id (negate _ + id _)) :: Int+  , id (id (negate (id _) + _)) :: Int+  , id (id ((_ + _) + 0)) :: Int+  , id (id ((_ + 0) + _)) :: Int+  , id (id ((0 + _) + _)) :: Int+  , id (abs (id (id (_ + _)))) :: Int+  , id (abs (id (_ + id _))) :: Int+  , id (abs (id (id _ + _))) :: Int+  , id (abs (_ + id (id _))) :: Int+  , id (abs (id _ + id _)) :: Int+  , id (abs (id (id _) + _)) :: Int+  , id (negate (id (id (_ + _)))) :: Int+  , id (negate (id (_ + id _))) :: Int+  , id (negate (id (id _ + _))) :: Int+  , id (negate (_ + id (id _))) :: Int+  , id (negate (id _ + id _)) :: Int+  , id (negate (id (id _) + _)) :: Int+  , id (head (id (head _):_)) :: Int+  , id (_ + id (id (abs _))) :: Int+  , id (_ + id (id (negate _))) :: Int+  , id (_ + id (abs (id _))) :: Int+  , id (_ + id (negate (id _))) :: Int+  , id (_ + id (_ + 0)) :: Int+  , id (_ + id (0 + _)) :: Int+  , id (_ + abs (id (id _))) :: Int+  , id (_ + negate (id (id _))) :: Int+  , id (_ + (_ + id 0)) :: Int+  , id (_ + (0 + id _)) :: Int+  , id (_ + (id _ + 0)) :: Int+  , id (_ + (id 0 + _)) :: Int+  , id (0 + id (_ + _)) :: Int+  , id (0 + (_ + id _)) :: Int+  , id (0 + (id _ + _)) :: Int+  , id (id _ + id (abs _)) :: Int+  , id (id _ + id (negate _)) :: Int+  , id (id _ + abs (id _)) :: Int+  , id (id _ + negate (id _)) :: Int+  , id (id _ + (_ + 0)) :: Int+  , id (id _ + (0 + _)) :: Int+  , id (id 0 + (_ + _)) :: Int+  , id (id (id _) + abs _) :: Int+  , id (id (id _) + negate _) :: Int+  , id (id (id (abs _)) + _) :: Int+  , id (id (id (negate _)) + _) :: Int+  , id (id (abs _) + id _) :: Int+  , id (id (abs (id _)) + _) :: Int+  , id (id (negate _) + id _) :: Int+  , id (id (negate (id _)) + _) :: Int+  , id (id (_ + _) + 0) :: Int+  , id (id (_ + 0) + _) :: Int+  , id (id (0 + _) + _) :: Int+  , id (abs _ + id (id _)) :: Int+  , id (abs (id _) + id _) :: Int+  , id (abs (id (id _)) + _) :: Int+  , id (negate _ + id (id _)) :: Int+  , id (negate (id _) + id _) :: Int+  , id (negate (id (id _)) + _) :: Int+  , id ((_ + _) + id 0) :: Int+  , id ((_ + 0) + id _) :: Int+  , id ((_ + id _) + 0) :: Int+  , id ((_ + id 0) + _) :: Int+  , id ((0 + _) + id _) :: Int+  , id ((0 + id _) + _) :: Int+  , id ((id _ + _) + 0) :: Int+  , id ((id _ + 0) + _) :: Int+  , id ((id 0 + _) + _) :: Int+  , [_,_,0] :: [Int]+  , [_,0,_] :: [Int]+  , [_,id (id _)] :: [Int]+  , [0,_,_] :: [Int]+  , [id _,id _] :: [Int]+  , [id (id _),_] :: [Int]+  , id (head [_,_]) :: Int+  , id (head (_:_:[0])) :: Int+  , head [_,id _] :: Int+  , head [id _,_] :: Int+  , id (head (0:(_ ++ _))) :: Int+  , id (head [_ + _]) :: Int+  , id (head (_ ++ (0:_))) :: Int+  , id (head ((0:_) ++ _)) :: Int+  , id (_ + head [_]) :: Int+  , id (head [_] + _) :: Int+  , id (id (id (id (id (id _))))) :: Int+  , id (id (id (id (id (id x))))) :: Int+  , id (id (id (id (id (ord _))))) :: Int+  , id (id (id (id (id (abs _))))) :: Int+  , id (id (id (id (id (negate _))))) :: Int+  , id (id (id (id (id (head _))))) :: Int+  , id (id (id (id (abs (id _))))) :: Int+  , id (id (id (id (negate (id _))))) :: Int+  , id (id (id (abs (id (id _))))) :: Int+  , id (id (id (negate (id (id _))))) :: Int+  , id (id (abs (id (id (id _))))) :: Int+  , id (id (negate (id (id (id _))))) :: Int+  , id (abs (id (id (id (id _))))) :: Int+  , id (negate (id (id (id (id _))))) :: Int+  , id (id (id (id (_ + 0)))) :: Int+  , id (id (id (id (0 + _)))) :: Int+  , id (id (id (_ + id 0))) :: Int+  , id (id (id (0 + id _))) :: Int+  , id (id (id (id _ + 0))) :: Int+  , id (id (id (id 0 + _))) :: Int+  , id (id (_ + id (id 0))) :: Int+  , id (id (0 + id (id _))) :: Int+  , id (id (id _ + id 0)) :: Int+  , id (id (id 0 + id _)) :: Int+  , id (id (id (id _) + 0)) :: Int+  , id (id (id (id 0) + _)) :: Int+  , id (_ + id (id (id 0))) :: Int+  , id (0 + id (id (id _))) :: Int+  , id (id _ + id (id 0)) :: Int+  , id (id 0 + id (id _)) :: Int+  , id (id (id _) + id 0) :: Int+  , id (id (id 0) + id _) :: Int+  , id (id (id (id _)) + 0) :: Int+  , id (id (id (id 0)) + _) :: Int+  , id (id (id (head [_]))) :: Int+  , id (id (id (head (0:_)))) :: Int+  , id (id (head [id _])) :: Int+  , id (id (head (id 0:_))) :: Int+  , id (head (0:0:_)) :: Int+  , id (head [id (id _)]) :: Int+  , id (head (id (id 0):_)) :: Int+  , id (head [_,0]) :: Int+  , id (head [0,_]) :: Int+  , id (id (id (id (id (id 0))))) :: Int+  , head (_:_:x:_) :: Int+  , head (_:x:_:_) :: Int+  , head (x:_:_:_) :: Int+  , _:_:ord _:_ :: [Int]+  , _:_:id x:_ :: [Int]+  , _:x:id _:_ :: [Int]+  , _:ord _:_:_ :: [Int]+  , _:id _:x:_ :: [Int]+  , _:id x:_:_ :: [Int]+  , x:_:id _:_ :: [Int]+  , x:id _:_:_ :: [Int]+  , ord _:_:_:_ :: [Int]+  , id _:_:x:_ :: [Int]+  , id _:x:_:_ :: [Int]+  , id x:_:_:_ :: [Int]+  , id (id (head (_:x:_))) :: Int+  , id (id (head (x:_:_))) :: Int+  , id (head (_:id x:_)) :: Int+  , id (head (x:id _:_)) :: Int+  , id (head (id _:x:_)) :: Int+  , id (head (id x:_:_)) :: Int+  , id (head (_:ord _:_)) :: Int+  , id (head (ord _:_:_)) :: Int+  , head (_:_:_:_) :: Int+  , head (_:_:_:xs) :: Int+  , tail (_:_:_:_) :: [Int]+  , _:tail (_:_:_) :: [Int]+  , _:_:tail (_:_) :: [Int]+  , _:_:_:tail _ :: [Int]+  , _:_:id _:_ :: [Int]+  , _:_:id _:xs :: [Int]+  , _:_:abs _:_ :: [Int]+  , _:_:negate _:_ :: [Int]+  , _:_:head _:_ :: [Int]+  , _:id _:_:_ :: [Int]+  , _:id _:_:xs :: [Int]+  , _:abs _:_:_ :: [Int]+  , _:negate _:_:_ :: [Int]+  , _:head _:_:_ :: [Int]+  , _:head (_:_):_ :: [Int]+  , id _:_:_:_ :: [Int]+  , id _:_:_:xs :: [Int]+  , abs _:_:_:_ :: [Int]+  , negate _:_:_:_ :: [Int]+  , head _:_:_:_ :: [Int]+  , head (_:_):_:_ :: [Int]+  , head (_:_:_):_ :: [Int]+  , head (_:_:(_ ++ _)) :: Int+  , head (_:_ + _:_) :: Int+  , head (_:(_ ++ (_:_))) :: Int+  , head (_:((_:_) ++ _)) :: Int+  , head (_ + _:_:_) :: Int+  , head (_ ++ (_:_:_)) :: Int+  , head ((_:_) ++ (_:_)) :: Int+  , head ((_:_:_) ++ _) :: Int+  , _ + head (_:_:_) :: Int+  , head (_:_:_) + _ :: Int+  , _:id _:(_ ++ _) :: [Int]+  , _:id (_ + _):_ :: [Int]+  , _:_ + id _:_ :: [Int]+  , _:id _ + _:_ :: [Int]+  , _:(_ ++ (id _:_)) :: [Int]+  , _:((id _:_) ++ _) :: [Int]+  , id _:_:(_ ++ _) :: [Int]+  , id _:_ + _:_ :: [Int]+  , id _:(_ ++ (_:_)) :: [Int]+  , id _:((_:_) ++ _) :: [Int]+  , id (_ + _):_:_ :: [Int]+  , _ + _:id _:_ :: [Int]+  , _ + id _:_:_ :: [Int]+  , id _ + _:_:_ :: [Int]+  , _ ++ (_:id _:_) :: [Int]+  , _ ++ (id _:_:_) :: [Int]+  , (_:_) ++ (id _:_) :: [Int]+  , (_:id _:_) ++ _ :: [Int]+  , (id _:_) ++ (_:_) :: [Int]+  , (id _:_:_) ++ _ :: [Int]+  , _:id (id (id _)):_ :: [Int]+  , id _:id (id _):_ :: [Int]+  , id (id _):id _:_ :: [Int]+  , id (id (id _)):_:_ :: [Int]+  , id (id (head (_:_:_))) :: Int+  , id (id (head (_:_:xs))) :: Int+  , id (head (_:id _:_)) :: Int+  , id (head (_:id _:xs)) :: Int+  , id (head (_:head _:_)) :: Int+  , id (head (id _:_:_)) :: Int+  , id (head (id _:_:xs)) :: Int+  , id (head (head _:_:_)) :: Int+  , id (head (head (_:_):_)) :: Int+  , head (_:_:0:_) :: Int+  , head (_:0:_:_) :: Int+  , head (_:id (id _):_) :: Int+  , head (0:_:_:_) :: Int+  , head (id _:id _:_) :: Int+  , head (id (id _):_:_) :: Int+  , _:_:id 0:_ :: [Int]+  , _:0:id _:_ :: [Int]+  , _:id _:0:_ :: [Int]+  , _:id 0:_:_ :: [Int]+  , 0:_:id _:_ :: [Int]+  , 0:id _:_:_ :: [Int]+  , id _:_:0:_ :: [Int]+  , id _:0:_:_ :: [Int]+  , id 0:_:_:_ :: [Int]+  , id (id (head (_:(_ ++ _)))) :: Int+  , id (id (head (_ + _:_))) :: Int+  , id (id (head (_ ++ (_:_)))) :: Int+  , id (id (head ((_:_) ++ _))) :: Int+  , id (id (_ + head (_:_))) :: Int+  , id (id (head (_:_) + _)) :: Int+  , id (abs (head (_:_:_))) :: Int+  , id (negate (head (_:_:_))) :: Int+  , id (head (tail (_:_:_))) :: Int+  , id (head (_:tail (_:_))) :: Int+  , id (head (_:_:tail _)) :: Int+  , id (head (_:abs _:_)) :: Int+  , id (head (_:negate _:_)) :: Int+  , id (head (id _:(_ ++ _))) :: Int+  , id (head (id (_ + _):_)) :: Int+  , id (head (abs _:_:_)) :: Int+  , id (head (negate _:_:_)) :: Int+  , id (head (_ + id _:_)) :: Int+  , id (head (id _ + _:_)) :: Int+  , id (head (_ ++ (id _:_))) :: Int+  , id (head ((id _:_) ++ _)) :: Int+  , id (_ + id (head (_:_))) :: Int+  , id (_ + head (id _:_)) :: Int+  , id (id _ + head (_:_)) :: Int+  , id (id (head (_:_)) + _) :: Int+  , id (head (_:_) + id _) :: Int+  , id (head (id _:_) + _) :: Int+  , id (id (id (id (head (_:_))))) :: Int+  , id (id (id (head (id _:_)))) :: Int+  , id (id (head (id (id _):_))) :: Int+  , id (head (id (id (id _)):_)) :: Int+  , id (id (head (_:0:_))) :: Int+  , id (id (head (0:_:_))) :: Int+  , id (head (_:id 0:_)) :: Int+  , id (head (0:id _:_)) :: Int+  , id (head (id _:0:_)) :: Int+  , id (head (id 0:_:_)) :: Int+  , id (_ + (_ + (_ + _))) :: Int+  , id (_ + ((_ + _) + _)) :: Int+  , id ((_ + _) + (_ + _)) :: Int+  , id ((_ + (_ + _)) + _) :: Int+  , id (((_ + _) + _) + _) :: Int+  , id (id (id (_ + (_ + _)))) :: Int+  , id (id (id ((_ + _) + _))) :: Int+  , id (id (_ + id (_ + _))) :: Int+  , id (id (_ + (_ + id _))) :: Int+  , id (id (_ + (id _ + _))) :: Int+  , id (id (id _ + (_ + _))) :: Int+  , id (id (id (_ + _) + _)) :: Int+  , id (id ((_ + _) + id _)) :: Int+  , id (id ((_ + id _) + _)) :: Int+  , id (id ((id _ + _) + _)) :: Int+  , id (_ + id (id (_ + _))) :: Int+  , id (_ + id (_ + id _)) :: Int+  , id (_ + id (id _ + _)) :: Int+  , id (_ + (_ + id (id _))) :: Int+  , id (_ + (id _ + id _)) :: Int+  , id (_ + (id (id _) + _)) :: Int+  , id (id _ + id (_ + _)) :: Int+  , id (id _ + (_ + id _)) :: Int+  , id (id _ + (id _ + _)) :: Int+  , id (id (id _) + (_ + _)) :: Int+  , id (id (id (_ + _)) + _) :: Int+  , id (id (_ + _) + id _) :: Int+  , id (id (_ + id _) + _) :: Int+  , id (id (id _ + _) + _) :: Int+  , id ((_ + _) + id (id _)) :: Int+  , id ((_ + id _) + id _) :: Int+  , id ((_ + id (id _)) + _) :: Int+  , id ((id _ + _) + id _) :: Int+  , id ((id _ + id _) + _) :: Int+  , id ((id (id _) + _) + _) :: Int+  , head [_,_,_] :: Int+  , [_,_,id _] :: [Int]+  , [_,id _,_] :: [Int]+  , [id _,_,_] :: [Int]+  , id (id (id (id (id (_ + _))))) :: Int+  , id (id (id (id (_ + id _)))) :: Int+  , id (id (id (id (id _ + _)))) :: Int+  , id (id (id (_ + id (id _)))) :: Int+  , id (id (id (id _ + id _))) :: Int+  , id (id (id (id (id _) + _))) :: Int+  , id (id (_ + id (id (id _)))) :: Int+  , id (id (id _ + id (id _))) :: Int+  , id (id (id (id _) + id _)) :: Int+  , id (id (id (id (id _)) + _)) :: Int+  , id (_ + id (id (id (id _)))) :: Int+  , id (id _ + id (id (id _))) :: Int+  , id (id (id _) + id (id _)) :: Int+  , id (id (id (id _)) + id _) :: Int+  , id (id (id (id (id _))) + _) :: Int+  , id (id (head [_,_])) :: Int+  , id (head [_,id _]) :: Int+  , id (head [id _,_]) :: Int+  , id (id (id (id (id (id (id _)))))) :: Int+  , _:_:_:x:_ :: [Int]+  , _:_:x:_:_ :: [Int]+  , _:x:_:_:_ :: [Int]+  , x:_:_:_:_ :: [Int]+  , id (head (_:_:x:_)) :: Int+  , id (head (_:x:_:_)) :: Int+  , id (head (x:_:_:_)) :: Int+  , _:_:_:_:_ :: [Int]+  , _:_:_:_:xs :: [Int]+  , _:_:_:(_ ++ _) :: [Int]+  , _:_:_ + _:_ :: [Int]+  , _:_:(_ ++ (_:_)) :: [Int]+  , _:_:((_:_) ++ _) :: [Int]+  , _:_ + _:_:_ :: [Int]+  , _:(_ ++ (_:_:_)) :: [Int]+  , _:((_:_) ++ (_:_)) :: [Int]+  , _:((_:_:_) ++ _) :: [Int]+  , _ + _:_:_:_ :: [Int]+  , _ ++ (_:_:_:_) :: [Int]+  , (_:_) ++ (_:_:_) :: [Int]+  , (_:_:_) ++ (_:_) :: [Int]+  , (_:_:_:_) ++ _ :: [Int]+  , _:_:_:0:_ :: [Int]+  , _:_:0:_:_ :: [Int]+  , _:_:id (id _):_ :: [Int]+  , _:0:_:_:_ :: [Int]+  , _:id _:id _:_ :: [Int]+  , _:id (id _):_:_ :: [Int]+  , 0:_:_:_:_ :: [Int]+  , id _:_:id _:_ :: [Int]+  , id _:id _:_:_ :: [Int]+  , id (id _):_:_:_ :: [Int]+  , id (head (_:_:_:_)) :: Int+  , id (head (_:_:_:xs)) :: Int+  , head (_:_:id _:_) :: Int+  , head (_:id _:_:_) :: Int+  , head (id _:_:_:_) :: Int+  , id (head (_:_:(_ ++ _))) :: Int+  , id (head (_:_ + _:_)) :: Int+  , id (head (_:(_ ++ (_:_)))) :: Int+  , id (head (_:((_:_) ++ _))) :: Int+  , id (head (_ + _:_:_)) :: Int+  , id (head (_ ++ (_:_:_))) :: Int+  , id (head ((_:_) ++ (_:_))) :: Int+  , id (head ((_:_:_) ++ _)) :: Int+  , id (_ + head (_:_:_)) :: Int+  , id (head (_:_:_) + _) :: Int+  , id (id (id (head (_:_:_)))) :: Int+  , id (id (head (_:id _:_))) :: Int+  , id (id (head (id _:_:_))) :: Int+  , id (head (_:id (id _):_)) :: Int+  , id (head (id _:id _:_)) :: Int+  , id (head (id (id _):_:_)) :: Int+  , id (head (_:_:0:_)) :: Int+  , id (head (_:0:_:_)) :: Int+  , id (head (0:_:_:_)) :: Int+  , [_,_,_,_] :: [Int]+  , id (head [_,_,_]) :: Int+  , head (_:_:_:_:_) :: Int+  , _:_:_:id _:_ :: [Int]+  , _:_:id _:_:_ :: [Int]+  , _:id _:_:_:_ :: [Int]+  , id _:_:_:_:_ :: [Int]+  , id (id (head (_:_:_:_))) :: Int+  , id (head (_:_:id _:_)) :: Int+  , id (head (_:id _:_:_)) :: Int+  , id (head (id _:_:_:_)) :: Int+  , _:_:_:_:_:_ :: [Int]+  , id (head (_:_:_:_:_)) :: Int+  ]++sortBy compareLexicographically $ take 5040 $ list  ::  [ Expr ]  =+  [ _ :: Bool+  , p :: Bool+  , q :: Bool+  , r :: Bool+  , p' :: Bool+  , q' :: Bool+  , _ :: Char+  , c :: Char+  , d :: Char+  , e :: Char+  , c' :: Char+  , d' :: Char+  , _ :: Int+  , x :: Int+  , y :: Int+  , z :: Int+  , x' :: Int+  , y' :: Int+  , z' :: Int+  , x'' :: Int+  , _ :: [Int]+  , xs :: [Int]+  , ys :: [Int]+  , zs :: [Int]+  , xs' :: [Int]+  , ys' :: [Int]+  , f :: Int -> Int+  , g :: Int -> Int+  , h :: Int -> Int+  , False :: Bool+  , True :: Bool+  , ' ' :: Char+  , 'A' :: Char+  , 'a' :: Char+  , 'b' :: Char+  , 'c' :: Char+  , 0 :: Int+  , 1 :: Int+  , 2 :: Int+  , 3 :: Int+  , -1 :: Int+  , -2 :: Int+  , -3 :: Int+  , [] :: [Int]+  , [0] :: [Int]+  , [1] :: [Int]+  , [2] :: [Int]+  , [-1] :: [Int]+  , [0,0] :: [Int]+  , [0,1] :: [Int]+  , [1,0] :: [Int]+  , [1,1] :: [Int]+  , [-1,0] :: [Int]+  , [0,-1] :: [Int]+  , [0,0,0] :: [Int]+  , [0,0,1] :: [Int]+  , [0,1,0] :: [Int]+  , [1,0,0] :: [Int]+  , [0,0,0,0] :: [Int]+  , not :: Bool -> Bool+  , id :: Int -> Int+  , abs :: Int -> Int+  , negate :: Int -> Int+  , (&&) :: Bool -> Bool -> Bool+  , (||) :: Bool -> Bool -> Bool+  , (==>) :: Bool -> Bool -> Bool+  , (*) :: Int -> Int -> Int+  , (+) :: Int -> Int -> Int+  , f _ :: Int+  , f x :: Int+  , f y :: Int+  , f z :: Int+  , f 0 :: Int+  , f 1 :: Int+  , f (-1) :: Int+  , f (f _) :: Int+  , f (ord _) :: Int+  , f (ord c) :: Int+  , f (ord 'a') :: Int+  , f (id _) :: Int+  , f (id x) :: Int+  , f (id y) :: Int+  , f (id 0) :: Int+  , f (id 1) :: Int+  , f (id (ord _)) :: Int+  , f (id (id _)) :: Int+  , f (id (id x)) :: Int+  , f (id (id 0)) :: Int+  , f (id (id (id _))) :: Int+  , f (id (abs _)) :: Int+  , f (id (negate _)) :: Int+  , f (id (head _)) :: Int+  , f (id (_ + _)) :: Int+  , f (abs _) :: Int+  , f (abs x) :: Int+  , f (abs 0) :: Int+  , f (abs (id _)) :: Int+  , f (negate _) :: Int+  , f (negate x) :: Int+  , f (negate 0) :: Int+  , f (negate (id _)) :: Int+  , f (head _) :: Int+  , f (head xs) :: Int+  , f (head []) :: Int+  , f (head (_:_)) :: Int+  , f (_ * _) :: Int+  , f (_ + _) :: Int+  , f (_ + x) :: Int+  , f (_ + 0) :: Int+  , f (_ + id _) :: Int+  , f (x + _) :: Int+  , f (0 + _) :: Int+  , f (id _ + _) :: Int+  , g _ :: Int+  , g x :: Int+  , g y :: Int+  , g 0 :: Int+  , g 1 :: Int+  , g (ord _) :: Int+  , g (id _) :: Int+  , g (id x) :: Int+  , g (id 0) :: Int+  , g (id (id _)) :: Int+  , g (abs _) :: Int+  , g (negate _) :: Int+  , g (head _) :: Int+  , g (_ + _) :: Int+  , h _ :: Int+  , h x :: Int+  , h 0 :: Int+  , h (id _) :: Int+  , f' _ :: Int+  , not _ :: Bool+  , not p :: Bool+  , not q :: Bool+  , not r :: Bool+  , not p' :: Bool+  , not False :: Bool+  , not True :: Bool+  , not (not _) :: Bool+  , not (not p) :: Bool+  , not (not q) :: Bool+  , not (not r) :: Bool+  , not (not False) :: Bool+  , not (not True) :: Bool+  , not (not (not _)) :: Bool+  , not (not (not p)) :: Bool+  , not (not (not q)) :: Bool+  , not (not (not False)) :: Bool+  , not (not (not True)) :: Bool+  , not (not (not (not _))) :: Bool+  , not (not (not (not p))) :: Bool+  , not (not (not (not False))) :: Bool+  , not (not (not (not True))) :: Bool+  , not (not (not (not (not _)))) :: Bool+  , not (not (not (_ || _))) :: Bool+  , not (not (odd _)) :: Bool+  , not (not (even _)) :: Bool+  , not (not (_ && _)) :: Bool+  , not (not (_ == _)) :: Bool+  , not (not (_ || _)) :: Bool+  , not (not (_ || p)) :: Bool+  , not (not (_ || False)) :: Bool+  , not (not (_ || True)) :: Bool+  , not (not (_ || not _)) :: Bool+  , not (not (p || _)) :: Bool+  , not (not (False || _)) :: Bool+  , not (not (True || _)) :: Bool+  , not (not (not _ || _)) :: Bool+  , not (not (_ == _)) :: Bool+  , not (not (elem _ _)) :: Bool+  , not (odd _) :: Bool+  , not (odd x) :: Bool+  , not (odd 0) :: Bool+  , not (odd (id _)) :: Bool+  , not (even _) :: Bool+  , not (even x) :: Bool+  , not (even 0) :: Bool+  , not (even (id _)) :: Bool+  , not (_ && _) :: Bool+  , not (_ && p) :: Bool+  , not (_ && False) :: Bool+  , not (_ && True) :: Bool+  , not (_ && not _) :: Bool+  , not (p && _) :: Bool+  , not (False && _) :: Bool+  , not (True && _) :: Bool+  , not (not _ && _) :: Bool+  , not (_ <= _) :: Bool+  , not (_ == _) :: Bool+  , not (_ == p) :: Bool+  , not (_ == False) :: Bool+  , not (_ == True) :: Bool+  , not (_ == not _) :: Bool+  , not (p == _) :: Bool+  , not (False == _) :: Bool+  , not (True == _) :: Bool+  , not (not _ == _) :: Bool+  , not (_ || _) :: Bool+  , not (_ || p) :: Bool+  , not (_ || q) :: Bool+  , not (_ || False) :: Bool+  , not (_ || True) :: Bool+  , not (_ || not _) :: Bool+  , not (_ || not p) :: Bool+  , not (_ || not False) :: Bool+  , not (_ || not True) :: Bool+  , not (_ || not (not _)) :: Bool+  , not (_ || (_ || _)) :: Bool+  , not (p || _) :: Bool+  , not (p || p) :: Bool+  , not (p || False) :: Bool+  , not (p || True) :: Bool+  , not (p || not _) :: Bool+  , not (q || _) :: Bool+  , not (False || _) :: Bool+  , not (False || p) :: Bool+  , not (False || False) :: Bool+  , not (False || True) :: Bool+  , not (False || not _) :: Bool+  , not (True || _) :: Bool+  , not (True || p) :: Bool+  , not (True || False) :: Bool+  , not (True || True) :: Bool+  , not (True || not _) :: Bool+  , not (not _ || _) :: Bool+  , not (not _ || p) :: Bool+  , not (not _ || False) :: Bool+  , not (not _ || True) :: Bool+  , not (not _ || not _) :: Bool+  , not (not p || _) :: Bool+  , not (not False || _) :: Bool+  , not (not True || _) :: Bool+  , not (not (not _) || _) :: Bool+  , not ((_ || _) || _) :: Bool+  , not (_ ==> _) :: Bool+  , not (_ <= _) :: Bool+  , not (_ == _) :: Bool+  , not (_ == x) :: Bool+  , not (_ == 0) :: Bool+  , not (_ == id _) :: Bool+  , not (x == _) :: Bool+  , not (0 == _) :: Bool+  , not (id _ == _) :: Bool+  , not (elem _ _) :: Bool+  , not (elem _ xs) :: Bool+  , not (elem _ []) :: Bool+  , not (elem _ (_:_)) :: Bool+  , not (elem x _) :: Bool+  , not (elem 0 _) :: Bool+  , not (elem (id _) _) :: Bool+  , ord _ :: Int+  , ord c :: Int+  , ord d :: Int+  , ord e :: Int+  , ord c' :: Int+  , ord ' ' :: Int+  , ord 'A' :: Int+  , ord 'a' :: Int+  , ord 'b' :: Int+  , odd _ :: Bool+  , odd x :: Bool+  , odd y :: Bool+  , odd 0 :: Bool+  , odd 1 :: Bool+  , odd (ord _) :: Bool+  , odd (id _) :: Bool+  , odd (id x) :: Bool+  , odd (id 0) :: Bool+  , odd (id (id _)) :: Bool+  , odd (abs _) :: Bool+  , odd (negate _) :: Bool+  , odd (head _) :: Bool+  , odd (_ + _) :: Bool+  , even _ :: Bool+  , even x :: Bool+  , even y :: Bool+  , even 0 :: Bool+  , even 1 :: Bool+  , even (ord _) :: Bool+  , even (id _) :: Bool+  , even (id x) :: Bool+  , even (id 0) :: Bool+  , even (id (id _)) :: Bool+  , even (abs _) :: Bool+  , even (negate _) :: Bool+  , even (head _) :: Bool+  , even (_ + _) :: Bool+  , id _ :: Int+  , id x :: Int+  , id y :: Int+  , id z :: Int+  , id x' :: Int+  , id y' :: Int+  , id z' :: Int+  , id 0 :: Int+  , id 1 :: Int+  , id 2 :: Int+  , id 3 :: Int+  , id (-1) :: Int+  , id (-2) :: Int+  , id (f _) :: Int+  , id (f x) :: Int+  , id (f y) :: Int+  , id (f z) :: Int+  , id (f 0) :: Int+  , id (f 1) :: Int+  , id (f (-1)) :: Int+  , id (f (f _)) :: Int+  , id (f (ord _)) :: Int+  , id (f (ord c)) :: Int+  , id (f (ord 'a')) :: Int+  , id (f (id _)) :: Int+  , id (f (id x)) :: Int+  , id (f (id y)) :: Int+  , id (f (id 0)) :: Int+  , id (f (id 1)) :: Int+  , id (f (id (ord _))) :: Int+  , id (f (id (id _))) :: Int+  , id (f (id (id x))) :: Int+  , id (f (id (id 0))) :: Int+  , id (f (id (id (id _)))) :: Int+  , id (f (id (abs _))) :: Int+  , id (f (id (negate _))) :: Int+  , id (f (id (head _))) :: Int+  , id (f (id (_ + _))) :: Int+  , id (f (abs _)) :: Int+  , id (f (abs x)) :: Int+  , id (f (abs 0)) :: Int+  , id (f (abs (id _))) :: Int+  , id (f (negate _)) :: Int+  , id (f (negate x)) :: Int+  , id (f (negate 0)) :: Int+  , id (f (negate (id _))) :: Int+  , id (f (head _)) :: Int+  , id (f (head xs)) :: Int+  , id (f (head [])) :: Int+  , id (f (head (_:_))) :: Int+  , id (f (_ * _)) :: Int+  , id (f (_ + _)) :: Int+  , id (f (_ + x)) :: Int+  , id (f (_ + 0)) :: Int+  , id (f (_ + id _)) :: Int+  , id (f (x + _)) :: Int+  , id (f (0 + _)) :: Int+  , id (f (id _ + _)) :: Int+  , id (g _) :: Int+  , id (g x) :: Int+  , id (g y) :: Int+  , id (g 0) :: Int+  , id (g 1) :: Int+  , id (g (ord _)) :: Int+  , id (g (id _)) :: Int+  , id (g (id x)) :: Int+  , id (g (id 0)) :: Int+  , id (g (id (id _))) :: Int+  , id (g (abs _)) :: Int+  , id (g (negate _)) :: Int+  , id (g (head _)) :: Int+  , id (g (_ + _)) :: Int+  , id (h _) :: Int+  , id (h x) :: Int+  , id (h 0) :: Int+  , id (h (id _)) :: Int+  , id (f' _) :: Int+  , id (ord _) :: Int+  , id (ord c) :: Int+  , id (ord d) :: Int+  , id (ord e) :: Int+  , id (ord ' ') :: Int+  , id (ord 'a') :: Int+  , id (ord 'b') :: Int+  , id (id _) :: Int+  , id (id x) :: Int+  , id (id y) :: Int+  , id (id z) :: Int+  , id (id x') :: Int+  , id (id y') :: Int+  , id (id 0) :: Int+  , id (id 1) :: Int+  , id (id 2) :: Int+  , id (id (-1)) :: Int+  , id (id (-2)) :: Int+  , id (id (f _)) :: Int+  , id (id (f x)) :: Int+  , id (id (f y)) :: Int+  , id (id (f 0)) :: Int+  , id (id (f 1)) :: Int+  , id (id (f (ord _))) :: Int+  , id (id (f (id _))) :: Int+  , id (id (f (id x))) :: Int+  , id (id (f (id 0))) :: Int+  , id (id (f (id (id _)))) :: Int+  , id (id (f (abs _))) :: Int+  , id (id (f (negate _))) :: Int+  , id (id (f (head _))) :: Int+  , id (id (f (_ + _))) :: Int+  , id (id (g _)) :: Int+  , id (id (g x)) :: Int+  , id (id (g 0)) :: Int+  , id (id (g (id _))) :: Int+  , id (id (h _)) :: Int+  , id (id (ord _)) :: Int+  , id (id (ord c)) :: Int+  , id (id (ord d)) :: Int+  , id (id (ord e)) :: Int+  , id (id (ord ' ')) :: Int+  , id (id (ord 'a')) :: Int+  , id (id (ord 'b')) :: Int+  , id (id (id _)) :: Int+  , id (id (id x)) :: Int+  , id (id (id y)) :: Int+  , id (id (id z)) :: Int+  , id (id (id x')) :: Int+  , id (id (id 0)) :: Int+  , id (id (id 1)) :: Int+  , id (id (id 2)) :: Int+  , id (id (id (-1))) :: Int+  , id (id (id (f _))) :: Int+  , id (id (id (f x))) :: Int+  , id (id (id (f 0))) :: Int+  , id (id (id (f (id _)))) :: Int+  , id (id (id (g _))) :: Int+  , id (id (id (ord _))) :: Int+  , id (id (id (ord c))) :: Int+  , id (id (id (ord d))) :: Int+  , id (id (id (ord ' '))) :: Int+  , id (id (id (ord 'a'))) :: Int+  , id (id (id (id _))) :: Int+  , id (id (id (id x))) :: Int+  , id (id (id (id y))) :: Int+  , id (id (id (id z))) :: Int+  , id (id (id (id 0))) :: Int+  , id (id (id (id 1))) :: Int+  , id (id (id (id (-1)))) :: Int+  , id (id (id (id (f _)))) :: Int+  , id (id (id (id (ord _)))) :: Int+  , id (id (id (id (ord c)))) :: Int+  , id (id (id (id (ord 'a')))) :: Int+  , id (id (id (id (id _)))) :: Int+  , id (id (id (id (id x)))) :: Int+  , id (id (id (id (id y)))) :: Int+  , id (id (id (id (id 0)))) :: Int+  , id (id (id (id (id 1)))) :: Int+  , id (id (id (id (id (ord _))))) :: Int+  , id (id (id (id (id (id _))))) :: Int+  , id (id (id (id (id (id x))))) :: Int+  , id (id (id (id (id (id 0))))) :: Int+  , id (id (id (id (id (id (id _)))))) :: Int+  , id (id (id (id (id (abs _))))) :: Int+  , id (id (id (id (id (negate _))))) :: Int+  , id (id (id (id (id (head _))))) :: Int+  , id (id (id (id (id (_ + _))))) :: Int+  , id (id (id (id (abs _)))) :: Int+  , id (id (id (id (abs x)))) :: Int+  , id (id (id (id (abs 0)))) :: Int+  , id (id (id (id (abs (id _))))) :: Int+  , id (id (id (id (negate _)))) :: Int+  , id (id (id (id (negate x)))) :: Int+  , id (id (id (id (negate 0)))) :: Int+  , id (id (id (id (negate (id _))))) :: Int+  , id (id (id (id (head _)))) :: Int+  , id (id (id (id (head xs)))) :: Int+  , id (id (id (id (head [])))) :: Int+  , id (id (id (id (head (_:_))))) :: Int+  , id (id (id (id (_ * _)))) :: Int+  , id (id (id (id (_ + _)))) :: Int+  , id (id (id (id (_ + x)))) :: Int+  , id (id (id (id (_ + 0)))) :: Int+  , id (id (id (id (_ + id _)))) :: Int+  , id (id (id (id (x + _)))) :: Int+  , id (id (id (id (0 + _)))) :: Int+  , id (id (id (id (id _ + _)))) :: Int+  , id (id (id (abs _))) :: Int+  , id (id (id (abs x))) :: Int+  , id (id (id (abs y))) :: Int+  , id (id (id (abs 0))) :: Int+  , id (id (id (abs 1))) :: Int+  , id (id (id (abs (ord _)))) :: Int+  , id (id (id (abs (id _)))) :: Int+  , id (id (id (abs (id x)))) :: Int+  , id (id (id (abs (id 0)))) :: Int+  , id (id (id (abs (id (id _))))) :: Int+  , id (id (id (abs (abs _)))) :: Int+  , id (id (id (abs (negate _)))) :: Int+  , id (id (id (abs (head _)))) :: Int+  , id (id (id (abs (_ + _)))) :: Int+  , id (id (id (negate _))) :: Int+  , id (id (id (negate x))) :: Int+  , id (id (id (negate y))) :: Int+  , id (id (id (negate 0))) :: Int+  , id (id (id (negate 1))) :: Int+  , id (id (id (negate (ord _)))) :: Int+  , id (id (id (negate (id _)))) :: Int+  , id (id (id (negate (id x)))) :: Int+  , id (id (id (negate (id 0)))) :: Int+  , id (id (id (negate (id (id _))))) :: Int+  , id (id (id (negate (abs _)))) :: Int+  , id (id (id (negate (negate _)))) :: Int+  , id (id (id (negate (head _)))) :: Int+  , id (id (id (negate (_ + _)))) :: Int+  , id (id (id (head _))) :: Int+  , id (id (id (head xs))) :: Int+  , id (id (id (head ys))) :: Int+  , id (id (id (head []))) :: Int+  , id (id (id (head [0]))) :: Int+  , id (id (id (head (tail _)))) :: Int+  , id (id (id (head (_:_)))) :: Int+  , id (id (id (head (_:xs)))) :: Int+  , id (id (id (head [_]))) :: Int+  , id (id (id (head (_:_:_)))) :: Int+  , id (id (id (head (x:_)))) :: Int+  , id (id (id (head (0:_)))) :: Int+  , id (id (id (head (id _:_)))) :: Int+  , id (id (id (head (_ ++ _)))) :: Int+  , id (id (id (_ * _))) :: Int+  , id (id (id (_ * x))) :: Int+  , id (id (id (_ * 0))) :: Int+  , id (id (id (_ * id _))) :: Int+  , id (id (id (x * _))) :: Int+  , id (id (id (0 * _))) :: Int+  , id (id (id (id _ * _))) :: Int+  , id (id (id (_ + _))) :: Int+  , id (id (id (_ + x))) :: Int+  , id (id (id (_ + y))) :: Int+  , id (id (id (_ + 0))) :: Int+  , id (id (id (_ + 1))) :: Int+  , id (id (id (_ + ord _))) :: Int+  , id (id (id (_ + id _))) :: Int+  , id (id (id (_ + id x))) :: Int+  , id (id (id (_ + id 0))) :: Int+  , id (id (id (_ + id (id _)))) :: Int+  , id (id (id (_ + abs _))) :: Int+  , id (id (id (_ + negate _))) :: Int+  , id (id (id (_ + head _))) :: Int+  , id (id (id (_ + (_ + _)))) :: Int+  , id (id (id (x + _))) :: Int+  , id (id (id (x + x))) :: Int+  , id (id (id (x + 0))) :: Int+  , id (id (id (x + id _))) :: Int+  , id (id (id (y + _))) :: Int+  , id (id (id (0 + _))) :: Int+  , id (id (id (0 + x))) :: Int+  , id (id (id (0 + 0))) :: Int+  , id (id (id (0 + id _))) :: Int+  , id (id (id (1 + _))) :: Int+  , id (id (id (ord _ + _))) :: Int+  , id (id (id (id _ + _))) :: Int+  , id (id (id (id _ + x))) :: Int+  , id (id (id (id _ + 0))) :: Int+  , id (id (id (id _ + id _))) :: Int+  , id (id (id (id x + _))) :: Int+  , id (id (id (id 0 + _))) :: Int+  , id (id (id (id (id _) + _))) :: Int+  , id (id (id (abs _ + _))) :: Int+  , id (id (id (negate _ + _))) :: Int+  , id (id (id (head _ + _))) :: Int+  , id (id (id ((_ + _) + _))) :: Int+  , id (id (abs _)) :: Int+  , id (id (abs x)) :: Int+  , id (id (abs y)) :: Int+  , id (id (abs z)) :: Int+  , id (id (abs 0)) :: Int+  , id (id (abs 1)) :: Int+  , id (id (abs (-1))) :: Int+  , id (id (abs (f _))) :: Int+  , id (id (abs (ord _))) :: Int+  , id (id (abs (ord c))) :: Int+  , id (id (abs (ord 'a'))) :: Int+  , id (id (abs (id _))) :: Int+  , id (id (abs (id x))) :: Int+  , id (id (abs (id y))) :: Int+  , id (id (abs (id 0))) :: Int+  , id (id (abs (id 1))) :: Int+  , id (id (abs (id (ord _)))) :: Int+  , id (id (abs (id (id _)))) :: Int+  , id (id (abs (id (id x)))) :: Int+  , id (id (abs (id (id 0)))) :: Int+  , id (id (abs (id (id (id _))))) :: Int+  , id (id (abs (id (abs _)))) :: Int+  , id (id (abs (id (negate _)))) :: Int+  , id (id (abs (id (head _)))) :: Int+  , id (id (abs (id (_ + _)))) :: Int+  , id (id (abs (abs _))) :: Int+  , id (id (abs (abs x))) :: Int+  , id (id (abs (abs 0))) :: Int+  , id (id (abs (abs (id _)))) :: Int+  , id (id (abs (negate _))) :: Int+  , id (id (abs (negate x))) :: Int+  , id (id (abs (negate 0))) :: Int+  , id (id (abs (negate (id _)))) :: Int+  , id (id (abs (head _))) :: Int+  , id (id (abs (head xs))) :: Int+  , id (id (abs (head []))) :: Int+  , id (id (abs (head (_:_)))) :: Int+  , id (id (abs (_ * _))) :: Int+  , id (id (abs (_ + _))) :: Int+  , id (id (abs (_ + x))) :: Int+  , id (id (abs (_ + 0))) :: Int+  , id (id (abs (_ + id _))) :: Int+  , id (id (abs (x + _))) :: Int+  , id (id (abs (0 + _))) :: Int+  , id (id (abs (id _ + _))) :: Int+  , id (id (negate _)) :: Int+  , id (id (negate x)) :: Int+  , id (id (negate y)) :: Int+  , id (id (negate z)) :: Int+  , id (id (negate 0)) :: Int+  , id (id (negate 1)) :: Int+  , id (id (negate (-1))) :: Int+  , id (id (negate (f _))) :: Int+  , id (id (negate (ord _))) :: Int+  , id (id (negate (ord c))) :: Int+  , id (id (negate (ord 'a'))) :: Int+  , id (id (negate (id _))) :: Int+  , id (id (negate (id x))) :: Int+  , id (id (negate (id y))) :: Int+  , id (id (negate (id 0))) :: Int+  , id (id (negate (id 1))) :: Int+  , id (id (negate (id (ord _)))) :: Int+  , id (id (negate (id (id _)))) :: Int+  , id (id (negate (id (id x)))) :: Int+  , id (id (negate (id (id 0)))) :: Int+  , id (id (negate (id (id (id _))))) :: Int+  , id (id (negate (id (abs _)))) :: Int+  , id (id (negate (id (negate _)))) :: Int+  , id (id (negate (id (head _)))) :: Int+  , id (id (negate (id (_ + _)))) :: Int+  , id (id (negate (abs _))) :: Int+  , id (id (negate (abs x))) :: Int+  , id (id (negate (abs 0))) :: Int+  , id (id (negate (abs (id _)))) :: Int+  , id (id (negate (negate _))) :: Int+  , id (id (negate (negate x))) :: Int+  , id (id (negate (negate 0))) :: Int+  , id (id (negate (negate (id _)))) :: Int+  , id (id (negate (head _))) :: Int+  , id (id (negate (head xs))) :: Int+  , id (id (negate (head []))) :: Int+  , id (id (negate (head (_:_)))) :: Int+  , id (id (negate (_ * _))) :: Int+  , id (id (negate (_ + _))) :: Int+  , id (id (negate (_ + x))) :: Int+  , id (id (negate (_ + 0))) :: Int+  , id (id (negate (_ + id _))) :: Int+  , id (id (negate (x + _))) :: Int+  , id (id (negate (0 + _))) :: Int+  , id (id (negate (id _ + _))) :: Int+  , id (id (head _)) :: Int+  , id (id (head xs)) :: Int+  , id (id (head ys)) :: Int+  , id (id (head zs)) :: Int+  , id (id (head [])) :: Int+  , id (id (head [0])) :: Int+  , id (id (head [1])) :: Int+  , id (id (head [0,0])) :: Int+  , id (id (head (sort _))) :: Int+  , id (id (head (tail _))) :: Int+  , id (id (head (tail xs))) :: Int+  , id (id (head (tail []))) :: Int+  , id (id (head (tail (_:_)))) :: Int+  , id (id (head (_:_))) :: Int+  , id (id (head (_:xs))) :: Int+  , id (id (head (_:ys))) :: Int+  , id (id (head [_])) :: Int+  , id (id (head (_:[0]))) :: Int+  , id (id (head (_:tail _))) :: Int+  , id (id (head (_:_:_))) :: Int+  , id (id (head (_:_:xs))) :: Int+  , id (id (head [_,_])) :: Int+  , id (id (head (_:_:_:_))) :: Int+  , id (id (head (_:x:_))) :: Int+  , id (id (head (_:0:_))) :: Int+  , id (id (head (_:id _:_))) :: Int+  , id (id (head (_:(_ ++ _)))) :: Int+  , id (id (head (x:_))) :: Int+  , id (id (head (x:xs))) :: Int+  , id (id (head [x])) :: Int+  , id (id (head (x:_:_))) :: Int+  , id (id (head (y:_))) :: Int+  , id (id (head (0:_))) :: Int+  , id (id (head (0:xs))) :: Int+  , id (id (head [0])) :: Int+  , id (id (head (0:_:_))) :: Int+  , id (id (head (1:_))) :: Int+  , id (id (head (ord _:_))) :: Int+  , id (id (head (id _:_))) :: Int+  , id (id (head (id _:xs))) :: Int+  , id (id (head [id _])) :: Int+  , id (id (head (id _:_:_))) :: Int+  , id (id (head (id x:_))) :: Int+  , id (id (head (id 0:_))) :: Int+  , id (id (head (id (id _):_))) :: Int+  , id (id (head (abs _:_))) :: Int+  , id (id (head (negate _:_))) :: Int+  , id (id (head (head _:_))) :: Int+  , id (id (head (_ + _:_))) :: Int+  , id (id (head (insert _ _))) :: Int+  , id (id (head (_ ++ _))) :: Int+  , id (id (head (_ ++ xs))) :: Int+  , id (id (head (_ ++ []))) :: Int+  , id (id (head (_ ++ (_:_)))) :: Int+  , id (id (head (xs ++ _))) :: Int+  , id (id (head ([] ++ _))) :: Int+  , id (id (head ((_:_) ++ _))) :: Int+  , id (id (_ * _)) :: Int+  , id (id (_ * x)) :: Int+  , id (id (_ * y)) :: Int+  , id (id (_ * 0)) :: Int+  , id (id (_ * 1)) :: Int+  , id (id (_ * ord _)) :: Int+  , id (id (_ * id _)) :: Int+  , id (id (_ * id x)) :: Int+  , id (id (_ * id 0)) :: Int+  , id (id (_ * id (id _))) :: Int+  , id (id (_ * abs _)) :: Int+  , id (id (_ * negate _)) :: Int+  , id (id (_ * head _)) :: Int+  , id (id (_ * (_ + _))) :: Int+  , id (id (x * _)) :: Int+  , id (id (x * x)) :: Int+  , id (id (x * 0)) :: Int+  , id (id (x * id _)) :: Int+  , id (id (y * _)) :: Int+  , id (id (0 * _)) :: Int+  , id (id (0 * x)) :: Int+  , id (id (0 * 0)) :: Int+  , id (id (0 * id _)) :: Int+  , id (id (1 * _)) :: Int+  , id (id (ord _ * _)) :: Int+  , id (id (id _ * _)) :: Int+  , id (id (id _ * x)) :: Int+  , id (id (id _ * 0)) :: Int+  , id (id (id _ * id _)) :: Int+  , id (id (id x * _)) :: Int+  , id (id (id 0 * _)) :: Int+  , id (id (id (id _) * _)) :: Int+  , id (id (abs _ * _)) :: Int+  , id (id (negate _ * _)) :: Int+  , id (id (head _ * _)) :: Int+  , id (id ((_ + _) * _)) :: Int+  , id (id (_ + _)) :: Int+  , id (id (_ + x)) :: Int+  , id (id (_ + y)) :: Int+  , id (id (_ + z)) :: Int+  , id (id (_ + 0)) :: Int+  , id (id (_ + 1)) :: Int+  , id (id (_ + (-1))) :: Int+  , id (id (_ + f _)) :: Int+  , id (id (_ + ord _)) :: Int+  , id (id (_ + ord c)) :: Int+  , id (id (_ + ord 'a')) :: Int+  , id (id (_ + id _)) :: Int+  , id (id (_ + id x)) :: Int+  , id (id (_ + id y)) :: Int+  , id (id (_ + id 0)) :: Int+  , id (id (_ + id 1)) :: Int+  , id (id (_ + id (ord _))) :: Int+  , id (id (_ + id (id _))) :: Int+  , id (id (_ + id (id x))) :: Int+  , id (id (_ + id (id 0))) :: Int+  , id (id (_ + id (id (id _)))) :: Int+  , id (id (_ + id (abs _))) :: Int+  , id (id (_ + id (negate _))) :: Int+  , id (id (_ + id (head _))) :: Int+  , id (id (_ + id (_ + _))) :: Int+  , id (id (_ + abs _)) :: Int+  , id (id (_ + abs x)) :: Int+  , id (id (_ + abs 0)) :: Int+  , id (id (_ + abs (id _))) :: Int+  , id (id (_ + negate _)) :: Int+  , id (id (_ + negate x)) :: Int+  , id (id (_ + negate 0)) :: Int+  , id (id (_ + negate (id _))) :: Int+  , id (id (_ + head _)) :: Int+  , id (id (_ + head xs)) :: Int+  , id (id (_ + head [])) :: Int+  , id (id (_ + head (_:_))) :: Int+  , id (id (_ + _ * _)) :: Int+  , id (id (_ + (_ + _))) :: Int+  , id (id (_ + (_ + x))) :: Int+  , id (id (_ + (_ + 0))) :: Int+  , id (id (_ + (_ + id _))) :: Int+  , id (id (_ + (x + _))) :: Int+  , id (id (_ + (0 + _))) :: Int+  , id (id (_ + (id _ + _))) :: Int+  , id (id (x + _)) :: Int+  , id (id (x + x)) :: Int+  , id (id (x + y)) :: Int+  , id (id (x + 0)) :: Int+  , id (id (x + 1)) :: Int+  , id (id (x + ord _)) :: Int+  , id (id (x + id _)) :: Int+  , id (id (x + id x)) :: Int+  , id (id (x + id 0)) :: Int+  , id (id (x + id (id _))) :: Int+  , id (id (x + abs _)) :: Int+  , id (id (x + negate _)) :: Int+  , id (id (x + head _)) :: Int+  , id (id (x + (_ + _))) :: Int+  , id (id (y + _)) :: Int+  , id (id (y + x)) :: Int+  , id (id (y + 0)) :: Int+  , id (id (y + id _)) :: Int+  , id (id (z + _)) :: Int+  , id (id (0 + _)) :: Int+  , id (id (0 + x)) :: Int+  , id (id (0 + y)) :: Int+  , id (id (0 + 0)) :: Int+  , id (id (0 + 1)) :: Int+  , id (id (0 + ord _)) :: Int+  , id (id (0 + id _)) :: Int+  , id (id (0 + id x)) :: Int+  , id (id (0 + id 0)) :: Int+  , id (id (0 + id (id _))) :: Int+  , id (id (0 + abs _)) :: Int+  , id (id (0 + negate _)) :: Int+  , id (id (0 + head _)) :: Int+  , id (id (0 + (_ + _))) :: Int+  , id (id (1 + _)) :: Int+  , id (id (1 + x)) :: Int+  , id (id (1 + 0)) :: Int+  , id (id (1 + id _)) :: Int+  , id (id ((-1) + _)) :: Int+  , id (id (f _ + _)) :: Int+  , id (id (ord _ + _)) :: Int+  , id (id (ord _ + x)) :: Int+  , id (id (ord _ + 0)) :: Int+  , id (id (ord _ + id _)) :: Int+  , id (id (ord c + _)) :: Int+  , id (id (ord 'a' + _)) :: Int+  , id (id (id _ + _)) :: Int+  , id (id (id _ + x)) :: Int+  , id (id (id _ + y)) :: Int+  , id (id (id _ + 0)) :: Int+  , id (id (id _ + 1)) :: Int+  , id (id (id _ + ord _)) :: Int+  , id (id (id _ + id _)) :: Int+  , id (id (id _ + id x)) :: Int+  , id (id (id _ + id 0)) :: Int+  , id (id (id _ + id (id _))) :: Int+  , id (id (id _ + abs _)) :: Int+  , id (id (id _ + negate _)) :: Int+  , id (id (id _ + head _)) :: Int+  , id (id (id _ + (_ + _))) :: Int+  , id (id (id x + _)) :: Int+  , id (id (id x + x)) :: Int+  , id (id (id x + 0)) :: Int+  , id (id (id x + id _)) :: Int+  , id (id (id y + _)) :: Int+  , id (id (id 0 + _)) :: Int+  , id (id (id 0 + x)) :: Int+  , id (id (id 0 + 0)) :: Int+  , id (id (id 0 + id _)) :: Int+  , id (id (id 1 + _)) :: Int+  , id (id (id (ord _) + _)) :: Int+  , id (id (id (id _) + _)) :: Int+  , id (id (id (id _) + x)) :: Int+  , id (id (id (id _) + 0)) :: Int+  , id (id (id (id _) + id _)) :: Int+  , id (id (id (id x) + _)) :: Int+  , id (id (id (id 0) + _)) :: Int+  , id (id (id (id (id _)) + _)) :: Int+  , id (id (id (abs _) + _)) :: Int+  , id (id (id (negate _) + _)) :: Int+  , id (id (id (head _) + _)) :: Int+  , id (id (id (_ + _) + _)) :: Int+  , id (id (abs _ + _)) :: Int+  , id (id (abs _ + x)) :: Int+  , id (id (abs _ + 0)) :: Int+  , id (id (abs _ + id _)) :: Int+  , id (id (abs x + _)) :: Int+  , id (id (abs 0 + _)) :: Int+  , id (id (abs (id _) + _)) :: Int+  , id (id (negate _ + _)) :: Int+  , id (id (negate _ + x)) :: Int+  , id (id (negate _ + 0)) :: Int+  , id (id (negate _ + id _)) :: Int+  , id (id (negate x + _)) :: Int+  , id (id (negate 0 + _)) :: Int+  , id (id (negate (id _) + _)) :: Int+  , id (id (head _ + _)) :: Int+  , id (id (head _ + x)) :: Int+  , id (id (head _ + 0)) :: Int+  , id (id (head _ + id _)) :: Int+  , id (id (head xs + _)) :: Int+  , id (id (head [] + _)) :: Int+  , id (id (head (_:_) + _)) :: Int+  , id (id (_ * _ + _)) :: Int+  , id (id ((_ + _) + _)) :: Int+  , id (id ((_ + _) + x)) :: Int+  , id (id ((_ + _) + 0)) :: Int+  , id (id ((_ + _) + id _)) :: Int+  , id (id ((_ + x) + _)) :: Int+  , id (id ((_ + 0) + _)) :: Int+  , id (id ((_ + id _) + _)) :: Int+  , id (id ((x + _) + _)) :: Int+  , id (id ((0 + _) + _)) :: Int+  , id (id ((id _ + _) + _)) :: Int+  , id (abs _) :: Int+  , id (abs x) :: Int+  , id (abs y) :: Int+  , id (abs z) :: Int+  , id (abs x') :: Int+  , id (abs 0) :: Int+  , id (abs 1) :: Int+  , id (abs 2) :: Int+  , id (abs (-1)) :: Int+  , id (abs (f _)) :: Int+  , id (abs (f x)) :: Int+  , id (abs (f 0)) :: Int+  , id (abs (f (id _))) :: Int+  , id (abs (g _)) :: Int+  , id (abs (ord _)) :: Int+  , id (abs (ord c)) :: Int+  , id (abs (ord d)) :: Int+  , id (abs (ord ' ')) :: Int+  , id (abs (ord 'a')) :: Int+  , id (abs (id _)) :: Int+  , id (abs (id x)) :: Int+  , id (abs (id y)) :: Int+  , id (abs (id z)) :: Int+  , id (abs (id 0)) :: Int+  , id (abs (id 1)) :: Int+  , id (abs (id (-1))) :: Int+  , id (abs (id (f _))) :: Int+  , id (abs (id (ord _))) :: Int+  , id (abs (id (ord c))) :: Int+  , id (abs (id (ord 'a'))) :: Int+  , id (abs (id (id _))) :: Int+  , id (abs (id (id x))) :: Int+  , id (abs (id (id y))) :: Int+  , id (abs (id (id 0))) :: Int+  , id (abs (id (id 1))) :: Int+  , id (abs (id (id (ord _)))) :: Int+  , id (abs (id (id (id _)))) :: Int+  , id (abs (id (id (id x)))) :: Int+  , id (abs (id (id (id 0)))) :: Int+  , id (abs (id (id (id (id _))))) :: Int+  , id (abs (id (id (abs _)))) :: Int+  , id (abs (id (id (negate _)))) :: Int+  , id (abs (id (id (head _)))) :: Int+  , id (abs (id (id (_ + _)))) :: Int+  , id (abs (id (abs _))) :: Int+  , id (abs (id (abs x))) :: Int+  , id (abs (id (abs 0))) :: Int+  , id (abs (id (abs (id _)))) :: Int+  , id (abs (id (negate _))) :: Int+  , id (abs (id (negate x))) :: Int+  , id (abs (id (negate 0))) :: Int+  , id (abs (id (negate (id _)))) :: Int+  , id (abs (id (head _))) :: Int+  , id (abs (id (head xs))) :: Int+  , id (abs (id (head []))) :: Int+  , id (abs (id (head (_:_)))) :: Int+  , id (abs (id (_ * _))) :: Int+  , id (abs (id (_ + _))) :: Int+  , id (abs (id (_ + x))) :: Int+  , id (abs (id (_ + 0))) :: Int+  , id (abs (id (_ + id _))) :: Int+  , id (abs (id (x + _))) :: Int+  , id (abs (id (0 + _))) :: Int+  , id (abs (id (id _ + _))) :: Int+  , id (abs (abs _)) :: Int+  , id (abs (abs x)) :: Int+  , id (abs (abs y)) :: Int+  , id (abs (abs 0)) :: Int+  , id (abs (abs 1)) :: Int+  , id (abs (abs (ord _))) :: Int+  , id (abs (abs (id _))) :: Int+  , id (abs (abs (id x))) :: Int+  , id (abs (abs (id 0))) :: Int+  , id (abs (abs (id (id _)))) :: Int+  , id (abs (abs (abs _))) :: Int+  , id (abs (abs (negate _))) :: Int+  , id (abs (abs (head _))) :: Int+  , id (abs (abs (_ + _))) :: Int+  , id (abs (negate _)) :: Int+  , id (abs (negate x)) :: Int+  , id (abs (negate y)) :: Int+  , id (abs (negate 0)) :: Int+  , id (abs (negate 1)) :: Int+  , id (abs (negate (ord _))) :: Int+  , id (abs (negate (id _))) :: Int+  , id (abs (negate (id x))) :: Int+  , id (abs (negate (id 0))) :: Int+  , id (abs (negate (id (id _)))) :: Int+  , id (abs (negate (abs _))) :: Int+  , id (abs (negate (negate _))) :: Int+  , id (abs (negate (head _))) :: Int+  , id (abs (negate (_ + _))) :: Int+  , id (abs (head _)) :: Int+  , id (abs (head xs)) :: Int+  , id (abs (head ys)) :: Int+  , id (abs (head [])) :: Int+  , id (abs (head [0])) :: Int+  , id (abs (head (tail _))) :: Int+  , id (abs (head (_:_))) :: Int+  , id (abs (head (_:xs))) :: Int+  , id (abs (head [_])) :: Int+  , id (abs (head (_:_:_))) :: Int+  , id (abs (head (x:_))) :: Int+  , id (abs (head (0:_))) :: Int+  , id (abs (head (id _:_))) :: Int+  , id (abs (head (_ ++ _))) :: Int+  , id (abs (_ * _)) :: Int+  , id (abs (_ * x)) :: Int+  , id (abs (_ * 0)) :: Int+  , id (abs (_ * id _)) :: Int+  , id (abs (x * _)) :: Int+  , id (abs (0 * _)) :: Int+  , id (abs (id _ * _)) :: Int+  , id (abs (_ + _)) :: Int+  , id (abs (_ + x)) :: Int+  , id (abs (_ + y)) :: Int+  , id (abs (_ + 0)) :: Int+  , id (abs (_ + 1)) :: Int+  , id (abs (_ + ord _)) :: Int+  , id (abs (_ + id _)) :: Int+  , id (abs (_ + id x)) :: Int+  , id (abs (_ + id 0)) :: Int+  , id (abs (_ + id (id _))) :: Int+  , id (abs (_ + abs _)) :: Int+  , id (abs (_ + negate _)) :: Int+  , id (abs (_ + head _)) :: Int+  , id (abs (_ + (_ + _))) :: Int+  , id (abs (x + _)) :: Int+  , id (abs (x + x)) :: Int+  , id (abs (x + 0)) :: Int+  , id (abs (x + id _)) :: Int+  , id (abs (y + _)) :: Int+  , id (abs (0 + _)) :: Int+  , id (abs (0 + x)) :: Int+  , id (abs (0 + 0)) :: Int+  , id (abs (0 + id _)) :: Int+  , id (abs (1 + _)) :: Int+  , id (abs (ord _ + _)) :: Int+  , id (abs (id _ + _)) :: Int+  , id (abs (id _ + x)) :: Int+  , id (abs (id _ + 0)) :: Int+  , id (abs (id _ + id _)) :: Int+  , id (abs (id x + _)) :: Int+  , id (abs (id 0 + _)) :: Int+  , id (abs (id (id _) + _)) :: Int+  , id (abs (abs _ + _)) :: Int+  , id (abs (negate _ + _)) :: Int+  , id (abs (head _ + _)) :: Int+  , id (abs ((_ + _) + _)) :: Int+  , id (negate _) :: Int+  , id (negate x) :: Int+  , id (negate y) :: Int+  , id (negate z) :: Int+  , id (negate x') :: Int+  , id (negate 0) :: Int+  , id (negate 1) :: Int+  , id (negate 2) :: Int+  , id (negate (-1)) :: Int+  , id (negate (f _)) :: Int+  , id (negate (f x)) :: Int+  , id (negate (f 0)) :: Int+  , id (negate (f (id _))) :: Int+  , id (negate (g _)) :: Int+  , id (negate (ord _)) :: Int+  , id (negate (ord c)) :: Int+  , id (negate (ord d)) :: Int+  , id (negate (ord ' ')) :: Int+  , id (negate (ord 'a')) :: Int+  , id (negate (id _)) :: Int+  , id (negate (id x)) :: Int+  , id (negate (id y)) :: Int+  , id (negate (id z)) :: Int+  , id (negate (id 0)) :: Int+  , id (negate (id 1)) :: Int+  , id (negate (id (-1))) :: Int+  , id (negate (id (f _))) :: Int+  , id (negate (id (ord _))) :: Int+  , id (negate (id (ord c))) :: Int+  , id (negate (id (ord 'a'))) :: Int+  , id (negate (id (id _))) :: Int+  , id (negate (id (id x))) :: Int+  , id (negate (id (id y))) :: Int+  , id (negate (id (id 0))) :: Int+  , id (negate (id (id 1))) :: Int+  , id (negate (id (id (ord _)))) :: Int+  , id (negate (id (id (id _)))) :: Int+  , id (negate (id (id (id x)))) :: Int+  , id (negate (id (id (id 0)))) :: Int+  , id (negate (id (id (id (id _))))) :: Int+  , id (negate (id (id (abs _)))) :: Int+  , id (negate (id (id (negate _)))) :: Int+  , id (negate (id (id (head _)))) :: Int+  , id (negate (id (id (_ + _)))) :: Int+  , id (negate (id (abs _))) :: Int+  , id (negate (id (abs x))) :: Int+  , id (negate (id (abs 0))) :: Int+  , id (negate (id (abs (id _)))) :: Int+  , id (negate (id (negate _))) :: Int+  , id (negate (id (negate x))) :: Int+  , id (negate (id (negate 0))) :: Int+  , id (negate (id (negate (id _)))) :: Int+  , id (negate (id (head _))) :: Int+  , id (negate (id (head xs))) :: Int+  , id (negate (id (head []))) :: Int+  , id (negate (id (head (_:_)))) :: Int+  , id (negate (id (_ * _))) :: Int+  , id (negate (id (_ + _))) :: Int+  , id (negate (id (_ + x))) :: Int+  , id (negate (id (_ + 0))) :: Int+  , id (negate (id (_ + id _))) :: Int+  , id (negate (id (x + _))) :: Int+  , id (negate (id (0 + _))) :: Int+  , id (negate (id (id _ + _))) :: Int+  , id (negate (abs _)) :: Int+  , id (negate (abs x)) :: Int+  , id (negate (abs y)) :: Int+  , id (negate (abs 0)) :: Int+  , id (negate (abs 1)) :: Int+  , id (negate (abs (ord _))) :: Int+  , id (negate (abs (id _))) :: Int+  , id (negate (abs (id x))) :: Int+  , id (negate (abs (id 0))) :: Int+  , id (negate (abs (id (id _)))) :: Int+  , id (negate (abs (abs _))) :: Int+  , id (negate (abs (negate _))) :: Int+  , id (negate (abs (head _))) :: Int+  , id (negate (abs (_ + _))) :: Int+  , id (negate (negate _)) :: Int+  , id (negate (negate x)) :: Int+  , id (negate (negate y)) :: Int+  , id (negate (negate 0)) :: Int+  , id (negate (negate 1)) :: Int+  , id (negate (negate (ord _))) :: Int+  , id (negate (negate (id _))) :: Int+  , id (negate (negate (id x))) :: Int+  , id (negate (negate (id 0))) :: Int+  , id (negate (negate (id (id _)))) :: Int+  , id (negate (negate (abs _))) :: Int+  , id (negate (negate (negate _))) :: Int+  , id (negate (negate (head _))) :: Int+  , id (negate (negate (_ + _))) :: Int+  , id (negate (head _)) :: Int+  , id (negate (head xs)) :: Int+  , id (negate (head ys)) :: Int+  , id (negate (head [])) :: Int+  , id (negate (head [0])) :: Int+  , id (negate (head (tail _))) :: Int+  , id (negate (head (_:_))) :: Int+  , id (negate (head (_:xs))) :: Int+  , id (negate (head [_])) :: Int+  , id (negate (head (_:_:_))) :: Int+  , id (negate (head (x:_))) :: Int+  , id (negate (head (0:_))) :: Int+  , id (negate (head (id _:_))) :: Int+  , id (negate (head (_ ++ _))) :: Int+  , id (negate (_ * _)) :: Int+  , id (negate (_ * x)) :: Int+  , id (negate (_ * 0)) :: Int+  , id (negate (_ * id _)) :: Int+  , id (negate (x * _)) :: Int+  , id (negate (0 * _)) :: Int+  , id (negate (id _ * _)) :: Int+  , id (negate (_ + _)) :: Int+  , id (negate (_ + x)) :: Int+  , id (negate (_ + y)) :: Int+  , id (negate (_ + 0)) :: Int+  , id (negate (_ + 1)) :: Int+  , id (negate (_ + ord _)) :: Int+  , id (negate (_ + id _)) :: Int+  , id (negate (_ + id x)) :: Int+  , id (negate (_ + id 0)) :: Int+  , id (negate (_ + id (id _))) :: Int+  , id (negate (_ + abs _)) :: Int+  , id (negate (_ + negate _)) :: Int+  , id (negate (_ + head _)) :: Int+  , id (negate (_ + (_ + _))) :: Int+  , id (negate (x + _)) :: Int+  , id (negate (x + x)) :: Int+  , id (negate (x + 0)) :: Int+  , id (negate (x + id _)) :: Int+  , id (negate (y + _)) :: Int+  , id (negate (0 + _)) :: Int+  , id (negate (0 + x)) :: Int+  , id (negate (0 + 0)) :: Int+  , id (negate (0 + id _)) :: Int+  , id (negate (1 + _)) :: Int+  , id (negate (ord _ + _)) :: Int+  , id (negate (id _ + _)) :: Int+  , id (negate (id _ + x)) :: Int+  , id (negate (id _ + 0)) :: Int+  , id (negate (id _ + id _)) :: Int+  , id (negate (id x + _)) :: Int+  , id (negate (id 0 + _)) :: Int+  , id (negate (id (id _) + _)) :: Int+  , id (negate (abs _ + _)) :: Int+  , id (negate (negate _ + _)) :: Int+  , id (negate (head _ + _)) :: Int+  , id (negate ((_ + _) + _)) :: Int+  , id (head _) :: Int+  , id (head xs) :: Int+  , id (head ys) :: Int+  , id (head zs) :: Int+  , id (head xs') :: Int+  , id (head []) :: Int+  , id (head [0]) :: Int+  , id (head [1]) :: Int+  , id (head [-1]) :: Int+  , id (head [0,0]) :: Int+  , id (head [0,1]) :: Int+  , id (head [1,0]) :: Int+  , id (head [0,0,0]) :: Int+  , id (head (sort _)) :: Int+  , id (head (tail _)) :: Int+  , id (head (tail xs)) :: Int+  , id (head (tail ys)) :: Int+  , id (head (tail [])) :: Int+  , id (head (tail [0])) :: Int+  , id (head (tail (tail _))) :: Int+  , id (head (tail (_:_))) :: Int+  , id (head (tail (_:xs))) :: Int+  , id (head (tail [_])) :: Int+  , id (head (tail (_:_:_))) :: Int+  , id (head (tail (x:_))) :: Int+  , id (head (tail (0:_))) :: Int+  , id (head (tail (id _:_))) :: Int+  , id (head (tail (_ ++ _))) :: Int+  , id (head (_:_)) :: Int+  , id (head (_:xs)) :: Int+  , id (head (_:ys)) :: Int+  , id (head (_:zs)) :: Int+  , id (head [_]) :: Int+  , id (head (_:[0])) :: Int+  , id (head (_:[1])) :: Int+  , id (head (_:[0,0])) :: Int+  , id (head (_:sort _)) :: Int+  , id (head (_:tail _)) :: Int+  , id (head (_:tail xs)) :: Int+  , id (head (_:tail [])) :: Int+  , id (head (_:tail (_:_))) :: Int+  , id (head (_:_:_)) :: Int+  , id (head (_:_:xs)) :: Int+  , id (head (_:_:ys)) :: Int+  , id (head [_,_]) :: Int+  , id (head (_:_:[0])) :: Int+  , id (head (_:_:tail _)) :: Int+  , id (head (_:_:_:_)) :: Int+  , id (head (_:_:_:xs)) :: Int+  , id (head [_,_,_]) :: Int+  , id (head (_:_:_:_:_)) :: Int+  , id (head (_:_:x:_)) :: Int+  , id (head (_:_:0:_)) :: Int+  , id (head (_:_:id _:_)) :: Int+  , id (head (_:_:(_ ++ _))) :: Int+  , id (head (_:x:_)) :: Int+  , id (head (_:x:xs)) :: Int+  , id (head [_,x]) :: Int+  , id (head (_:x:_:_)) :: Int+  , id (head (_:y:_)) :: Int+  , id (head (_:0:_)) :: Int+  , id (head (_:0:xs)) :: Int+  , id (head [_,0]) :: Int+  , id (head (_:0:_:_)) :: Int+  , id (head (_:1:_)) :: Int+  , id (head (_:ord _:_)) :: Int+  , id (head (_:id _:_)) :: Int+  , id (head (_:id _:xs)) :: Int+  , id (head [_,id _]) :: Int+  , id (head (_:id _:_:_)) :: Int+  , id (head (_:id x:_)) :: Int+  , id (head (_:id 0:_)) :: Int+  , id (head (_:id (id _):_)) :: Int+  , id (head (_:abs _:_)) :: Int+  , id (head (_:negate _:_)) :: Int+  , id (head (_:head _:_)) :: Int+  , id (head (_:_ + _:_)) :: Int+  , id (head (_:insert _ _)) :: Int+  , id (head (_:(_ ++ _))) :: Int+  , id (head (_:(_ ++ xs))) :: Int+  , id (head (_:(_ ++ []))) :: Int+  , id (head (_:(_ ++ (_:_)))) :: Int+  , id (head (_:(xs ++ _))) :: Int+  , id (head (_:([] ++ _))) :: Int+  , id (head (_:((_:_) ++ _))) :: Int+  , id (head (x:_)) :: Int+  , id (head (x:xs)) :: Int+  , id (head (x:ys)) :: Int+  , id (head [x]) :: Int+  , id (head (x:[0])) :: Int+  , id (head (x:tail _)) :: Int+  , id (head (x:_:_)) :: Int+  , id (head (x:_:xs)) :: Int+  , id (head [x,_]) :: Int+  , id (head (x:_:_:_)) :: Int+  , id (head (x:x:_)) :: Int+  , id (head (x:0:_)) :: Int+  , id (head (x:id _:_)) :: Int+  , id (head (x:(_ ++ _))) :: Int+  , id (head (y:_)) :: Int+  , id (head (y:xs)) :: Int+  , id (head [y]) :: Int+  , id (head (y:_:_)) :: Int+  , id (head (z:_)) :: Int+  , id (head (0:_)) :: Int+  , id (head (0:xs)) :: Int+  , id (head (0:ys)) :: Int+  , id (head [0]) :: Int+  , id (head (0:[0])) :: Int+  , id (head (0:tail _)) :: Int+  , id (head (0:_:_)) :: Int+  , id (head (0:_:xs)) :: Int+  , id (head [0,_]) :: Int+  , id (head (0:_:_:_)) :: Int+  , id (head (0:x:_)) :: Int+  , id (head (0:0:_)) :: Int+  , id (head (0:id _:_)) :: Int+  , id (head (0:(_ ++ _))) :: Int+  , id (head (1:_)) :: Int+  , id (head (1:xs)) :: Int+  , id (head [1]) :: Int+  , id (head (1:_:_)) :: Int+  , id (head ((-1):_)) :: Int+  , id (head (f _:_)) :: Int+  , id (head (ord _:_)) :: Int+  , id (head (ord _:xs)) :: Int+  , id (head [ord _]) :: Int+  , id (head (ord _:_:_)) :: Int+  , id (head (ord c:_)) :: Int+  , id (head (ord 'a':_)) :: Int+  , id (head (id _:_)) :: Int+  , id (head (id _:xs)) :: Int+  , id (head (id _:ys)) :: Int+  , id (head [id _]) :: Int+  , id (head (id _:[0])) :: Int+  , id (head (id _:tail _)) :: Int+  , id (head (id _:_:_)) :: Int+  , id (head (id _:_:xs)) :: Int+  , id (head [id _,_]) :: Int+  , id (head (id _:_:_:_)) :: Int+  , id (head (id _:x:_)) :: Int+  , id (head (id _:0:_)) :: Int+  , id (head (id _:id _:_)) :: Int+  , id (head (id _:(_ ++ _))) :: Int+  , id (head (id x:_)) :: Int+  , id (head (id x:xs)) :: Int+  , id (head [id x]) :: Int+  , id (head (id x:_:_)) :: Int+  , id (head (id y:_)) :: Int+  , id (head (id 0:_)) :: Int+  , id (head (id 0:xs)) :: Int+  , id (head [id 0]) :: Int+  , id (head (id 0:_:_)) :: Int+  , id (head (id 1:_)) :: Int+  , id (head (id (ord _):_)) :: Int+  , id (head (id (id _):_)) :: Int+  , id (head (id (id _):xs)) :: Int+  , id (head [id (id _)]) :: Int+  , id (head (id (id _):_:_)) :: Int+  , id (head (id (id x):_)) :: Int+  , id (head (id (id 0):_)) :: Int+  , id (head (id (id (id _)):_)) :: Int+  , id (head (id (abs _):_)) :: Int+  , id (head (id (negate _):_)) :: Int+  , id (head (id (head _):_)) :: Int+  , id (head (id (_ + _):_)) :: Int+  , id (head (abs _:_)) :: Int+  , id (head (abs _:xs)) :: Int+  , id (head [abs _]) :: Int+  , id (head (abs _:_:_)) :: Int+  , id (head (abs x:_)) :: Int+  , id (head (abs 0:_)) :: Int+  , id (head (abs (id _):_)) :: Int+  , id (head (negate _:_)) :: Int+  , id (head (negate _:xs)) :: Int+  , id (head [negate _]) :: Int+  , id (head (negate _:_:_)) :: Int+  , id (head (negate x:_)) :: Int+  , id (head (negate 0:_)) :: Int+  , id (head (negate (id _):_)) :: Int+  , id (head (head _:_)) :: Int+  , id (head (head _:xs)) :: Int+  , id (head [head _]) :: Int+  , id (head (head _:_:_)) :: Int+  , id (head (head xs:_)) :: Int+  , id (head (head []:_)) :: Int+  , id (head (head (_:_):_)) :: Int+  , id (head (_ * _:_)) :: Int+  , id (head (_ + _:_)) :: Int+  , id (head (_ + _:xs)) :: Int+  , id (head [_ + _]) :: Int+  , id (head (_ + _:_:_)) :: Int+  , id (head (_ + x:_)) :: Int+  , id (head (_ + 0:_)) :: Int+  , id (head (_ + id _:_)) :: Int+  , id (head (x + _:_)) :: Int+  , id (head (0 + _:_)) :: Int+  , id (head (id _ + _:_)) :: Int+  , id (head (insert _ _)) :: Int+  , id (head (_ ++ _)) :: Int+  , id (head (_ ++ xs)) :: Int+  , id (head (_ ++ ys)) :: Int+  , id (head (_ ++ [])) :: Int+  , id (head (_ ++ [0])) :: Int+  , id (head (_ ++ tail _)) :: Int+  , id (head (_ ++ (_:_))) :: Int+  , id (head (_ ++ (_:xs))) :: Int+  , id (head (_ ++ [_])) :: Int+  , id (head (_ ++ (_:_:_))) :: Int+  , id (head (_ ++ (x:_))) :: Int+  , id (head (_ ++ (0:_))) :: Int+  , id (head (_ ++ (id _:_))) :: Int+  , id (head (_ ++ (_ ++ _))) :: Int+  , id (head (xs ++ _)) :: Int+  , id (head (xs ++ xs)) :: Int+  , id (head (xs ++ [])) :: Int+  , id (head (xs ++ (_:_))) :: Int+  , id (head (ys ++ _)) :: Int+  , id (head ([] ++ _)) :: Int+  , id (head ([] ++ xs)) :: Int+  , id (head ([] ++ [])) :: Int+  , id (head ([] ++ (_:_))) :: Int+  , id (head ([0] ++ _)) :: Int+  , id (head ((_:_) ++ _)) :: Int+  , id (head ((_:_) ++ xs)) :: Int+  , id (head ((_:_) ++ [])) :: Int+  , id (head ((_:_) ++ (_:_))) :: Int+  , id (head ((_:xs) ++ _)) :: Int+  , id (head ([_] ++ _)) :: Int+  , id (head ((_:_:_) ++ _)) :: Int+  , id (head ((x:_) ++ _)) :: Int+  , id (head ((0:_) ++ _)) :: Int+  , id (head ((id _:_) ++ _)) :: Int+  , id (_ * _) :: Int+  , id (_ * x) :: Int+  , id (_ * y) :: Int+  , id (_ * z) :: Int+  , id (_ * 0) :: Int+  , id (_ * 1) :: Int+  , id (_ * (-1)) :: Int+  , id (_ * f _) :: Int+  , id (_ * ord _) :: Int+  , id (_ * ord c) :: Int+  , id (_ * ord 'a') :: Int+  , id (_ * id _) :: Int+  , id (_ * id x) :: Int+  , id (_ * id y) :: Int+  , id (_ * id 0) :: Int+  , id (_ * id 1) :: Int+  , id (_ * id (ord _)) :: Int+  , id (_ * id (id _)) :: Int+  , id (_ * id (id x)) :: Int+  , id (_ * id (id 0)) :: Int+  , id (_ * id (id (id _))) :: Int+  , id (_ * id (abs _)) :: Int+  , id (_ * id (negate _)) :: Int+  , id (_ * id (head _)) :: Int+  , id (_ * id (_ + _)) :: Int+  , id (_ * abs _) :: Int+  , id (_ * abs x) :: Int+  , id (_ * abs 0) :: Int+  , id (_ * abs (id _)) :: Int+  , id (_ * negate _) :: Int+  , id (_ * negate x) :: Int+  , id (_ * negate 0) :: Int+  , id (_ * negate (id _)) :: Int+  , id (_ * head _) :: Int+  , id (_ * head xs) :: Int+  , id (_ * head []) :: Int+  , id (_ * head (_:_)) :: Int+  , id (_ * (_ * _)) :: Int+  , id (_ * (_ + _)) :: Int+  , id (_ * (_ + x)) :: Int+  , id (_ * (_ + 0)) :: Int+  , id (_ * (_ + id _)) :: Int+  , id (_ * (x + _)) :: Int+  , id (_ * (0 + _)) :: Int+  , id (_ * (id _ + _)) :: Int+  , id (x * _) :: Int+  , id (x * x) :: Int+  , id (x * y) :: Int+  , id (x * 0) :: Int+  , id (x * 1) :: Int+  , id (x * ord _) :: Int+  , id (x * id _) :: Int+  , id (x * id x) :: Int+  , id (x * id 0) :: Int+  , id (x * id (id _)) :: Int+  , id (x * abs _) :: Int+  , id (x * negate _) :: Int+  , id (x * head _) :: Int+  , id (x * (_ + _)) :: Int+  , id (y * _) :: Int+  , id (y * x) :: Int+  , id (y * 0) :: Int+  , id (y * id _) :: Int+  , id (z * _) :: Int+  , id (0 * _) :: Int+  , id (0 * x) :: Int+  , id (0 * y) :: Int+  , id (0 * 0) :: Int+  , id (0 * 1) :: Int+  , id (0 * ord _) :: Int+  , id (0 * id _) :: Int+  , id (0 * id x) :: Int+  , id (0 * id 0) :: Int+  , id (0 * id (id _)) :: Int+  , id (0 * abs _) :: Int+  , id (0 * negate _) :: Int+  , id (0 * head _) :: Int+  , id (0 * (_ + _)) :: Int+  , id (1 * _) :: Int+  , id (1 * x) :: Int+  , id (1 * 0) :: Int+  , id (1 * id _) :: Int+  , id ((-1) * _) :: Int+  , id (f _ * _) :: Int+  , id (ord _ * _) :: Int+  , id (ord _ * x) :: Int+  , id (ord _ * 0) :: Int+  , id (ord _ * id _) :: Int+  , id (ord c * _) :: Int+  , id (ord 'a' * _) :: Int+  , id (id _ * _) :: Int+  , id (id _ * x) :: Int+  , id (id _ * y) :: Int+  , id (id _ * 0) :: Int+  , id (id _ * 1) :: Int+  , id (id _ * ord _) :: Int+  , id (id _ * id _) :: Int+  , id (id _ * id x) :: Int+  , id (id _ * id 0) :: Int+  , id (id _ * id (id _)) :: Int+  , id (id _ * abs _) :: Int+  , id (id _ * negate _) :: Int+  , id (id _ * head _) :: Int+  , id (id _ * (_ + _)) :: Int+  , id (id x * _) :: Int+  , id (id x * x) :: Int+  , id (id x * 0) :: Int+  , id (id x * id _) :: Int+  , id (id y * _) :: Int+  , id (id 0 * _) :: Int+  , id (id 0 * x) :: Int+  , id (id 0 * 0) :: Int+  , id (id 0 * id _) :: Int+  , id (id 1 * _) :: Int+  , id (id (ord _) * _) :: Int+  , id (id (id _) * _) :: Int+  , id (id (id _) * x) :: Int+  , id (id (id _) * 0) :: Int+  , id (id (id _) * id _) :: Int+  , id (id (id x) * _) :: Int+  , id (id (id 0) * _) :: Int+  , id (id (id (id _)) * _) :: Int+  , id (id (abs _) * _) :: Int+  , id (id (negate _) * _) :: Int+  , id (id (head _) * _) :: Int+  , id (id (_ + _) * _) :: Int+  , id (abs _ * _) :: Int+  , id (abs _ * x) :: Int+  , id (abs _ * 0) :: Int+  , id (abs _ * id _) :: Int+  , id (abs x * _) :: Int+  , id (abs 0 * _) :: Int+  , id (abs (id _) * _) :: Int+  , id (negate _ * _) :: Int+  , id (negate _ * x) :: Int+  , id (negate _ * 0) :: Int+  , id (negate _ * id _) :: Int+  , id (negate x * _) :: Int+  , id (negate 0 * _) :: Int+  , id (negate (id _) * _) :: Int+  , id (head _ * _) :: Int+  , id (head _ * x) :: Int+  , id (head _ * 0) :: Int+  , id (head _ * id _) :: Int+  , id (head xs * _) :: Int+  , id (head [] * _) :: Int+  , id (head (_:_) * _) :: Int+  , id ((_ * _) * _) :: Int+  , id ((_ + _) * _) :: Int+  , id ((_ + _) * x) :: Int+  , id ((_ + _) * 0) :: Int+  , id ((_ + _) * id _) :: Int+  , id ((_ + x) * _) :: Int+  , id ((_ + 0) * _) :: Int+  , id ((_ + id _) * _) :: Int+  , id ((x + _) * _) :: Int+  , id ((0 + _) * _) :: Int+  , id ((id _ + _) * _) :: Int+  , id (_ + _) :: Int+  , id (_ + x) :: Int+  , id (_ + y) :: Int+  , id (_ + z) :: Int+  , id (_ + x') :: Int+  , id (_ + 0) :: Int+  , id (_ + 1) :: Int+  , id (_ + 2) :: Int+  , id (_ + (-1)) :: Int+  , id (_ + f _) :: Int+  , id (_ + f x) :: Int+  , id (_ + f 0) :: Int+  , id (_ + f (id _)) :: Int+  , id (_ + g _) :: Int+  , id (_ + ord _) :: Int+  , id (_ + ord c) :: Int+  , id (_ + ord d) :: Int+  , id (_ + ord ' ') :: Int+  , id (_ + ord 'a') :: Int+  , id (_ + id _) :: Int+  , id (_ + id x) :: Int+  , id (_ + id y) :: Int+  , id (_ + id z) :: Int+  , id (_ + id 0) :: Int+  , id (_ + id 1) :: Int+  , id (_ + id (-1)) :: Int+  , id (_ + id (f _)) :: Int+  , id (_ + id (ord _)) :: Int+  , id (_ + id (ord c)) :: Int+  , id (_ + id (ord 'a')) :: Int+  , id (_ + id (id _)) :: Int+  , id (_ + id (id x)) :: Int+  , id (_ + id (id y)) :: Int+  , id (_ + id (id 0)) :: Int+  , id (_ + id (id 1)) :: Int+  , id (_ + id (id (ord _))) :: Int+  , id (_ + id (id (id _))) :: Int+  , id (_ + id (id (id x))) :: Int+  , id (_ + id (id (id 0))) :: Int+  , id (_ + id (id (id (id _)))) :: Int+  , id (_ + id (id (abs _))) :: Int+  , id (_ + id (id (negate _))) :: Int+  , id (_ + id (id (head _))) :: Int+  , id (_ + id (id (_ + _))) :: Int+  , id (_ + id (abs _)) :: Int+  , id (_ + id (abs x)) :: Int+  , id (_ + id (abs 0)) :: Int+  , id (_ + id (abs (id _))) :: Int+  , id (_ + id (negate _)) :: Int+  , id (_ + id (negate x)) :: Int+  , id (_ + id (negate 0)) :: Int+  , id (_ + id (negate (id _))) :: Int+  , id (_ + id (head _)) :: Int+  , id (_ + id (head xs)) :: Int+  , id (_ + id (head [])) :: Int+  , id (_ + id (head (_:_))) :: Int+  , id (_ + id (_ * _)) :: Int+  , id (_ + id (_ + _)) :: Int+  , id (_ + id (_ + x)) :: Int+  , id (_ + id (_ + 0)) :: Int+  , id (_ + id (_ + id _)) :: Int+  , id (_ + id (x + _)) :: Int+  , id (_ + id (0 + _)) :: Int+  , id (_ + id (id _ + _)) :: Int+  , id (_ + abs _) :: Int+  , id (_ + abs x) :: Int+  , id (_ + abs y) :: Int+  , id (_ + abs 0) :: Int+  , id (_ + abs 1) :: Int+  , id (_ + abs (ord _)) :: Int+  , id (_ + abs (id _)) :: Int+  , id (_ + abs (id x)) :: Int+  , id (_ + abs (id 0)) :: Int+  , id (_ + abs (id (id _))) :: Int+  , id (_ + abs (abs _)) :: Int+  , id (_ + abs (negate _)) :: Int+  , id (_ + abs (head _)) :: Int+  , id (_ + abs (_ + _)) :: Int+  , id (_ + negate _) :: Int+  , id (_ + negate x) :: Int+  , id (_ + negate y) :: Int+  , id (_ + negate 0) :: Int+  , id (_ + negate 1) :: Int+  , id (_ + negate (ord _)) :: Int+  , id (_ + negate (id _)) :: Int+  , id (_ + negate (id x)) :: Int+  , id (_ + negate (id 0)) :: Int+  , id (_ + negate (id (id _))) :: Int+  , id (_ + negate (abs _)) :: Int+  , id (_ + negate (negate _)) :: Int+  , id (_ + negate (head _)) :: Int+  , id (_ + negate (_ + _)) :: Int+  , id (_ + head _) :: Int+  , id (_ + head xs) :: Int+  , id (_ + head ys) :: Int+  , id (_ + head []) :: Int+  , id (_ + head [0]) :: Int+  , id (_ + head (tail _)) :: Int+  , id (_ + head (_:_)) :: Int+  , id (_ + head (_:xs)) :: Int+  , id (_ + head [_]) :: Int+  , id (_ + head (_:_:_)) :: Int+  , id (_ + head (x:_)) :: Int+  , id (_ + head (0:_)) :: Int+  , id (_ + head (id _:_)) :: Int+  , id (_ + head (_ ++ _)) :: Int+  , id (_ + _ * _) :: Int+  , id (_ + _ * x) :: Int+  , id (_ + _ * 0) :: Int+  , id (_ + _ * id _) :: Int+  , id (_ + x * _) :: Int+  , id (_ + 0 * _) :: Int+  , id (_ + id _ * _) :: Int+  , id (_ + (_ + _)) :: Int+  , id (_ + (_ + x)) :: Int+  , id (_ + (_ + y)) :: Int+  , id (_ + (_ + 0)) :: Int+  , id (_ + (_ + 1)) :: Int+  , id (_ + (_ + ord _)) :: Int+  , id (_ + (_ + id _)) :: Int+  , id (_ + (_ + id x)) :: Int+  , id (_ + (_ + id 0)) :: Int+  , id (_ + (_ + id (id _))) :: Int+  , id (_ + (_ + abs _)) :: Int+  , id (_ + (_ + negate _)) :: Int+  , id (_ + (_ + head _)) :: Int+  , id (_ + (_ + (_ + _))) :: Int+  , id (_ + (x + _)) :: Int+  , id (_ + (x + x)) :: Int+  , id (_ + (x + 0)) :: Int+  , id (_ + (x + id _)) :: Int+  , id (_ + (y + _)) :: Int+  , id (_ + (0 + _)) :: Int+  , id (_ + (0 + x)) :: Int+  , id (_ + (0 + 0)) :: Int+  , id (_ + (0 + id _)) :: Int+  , id (_ + (1 + _)) :: Int+  , id (_ + (ord _ + _)) :: Int+  , id (_ + (id _ + _)) :: Int+  , id (_ + (id _ + x)) :: Int+  , id (_ + (id _ + 0)) :: Int+  , id (_ + (id _ + id _)) :: Int+  , id (_ + (id x + _)) :: Int+  , id (_ + (id 0 + _)) :: Int+  , id (_ + (id (id _) + _)) :: Int+  , id (_ + (abs _ + _)) :: Int+  , id (_ + (negate _ + _)) :: Int+  , id (_ + (head _ + _)) :: Int+  , id (_ + ((_ + _) + _)) :: Int+  , id (x + _) :: Int+  , id (x + x) :: Int+  , id (x + y) :: Int+  , id (x + z) :: Int+  , id (x + 0) :: Int+  , id (x + 1) :: Int+  , id (x + (-1)) :: Int+  , id (x + f _) :: Int+  , id (x + ord _) :: Int+  , id (x + ord c) :: Int+  , id (x + ord 'a') :: Int+  , id (x + id _) :: Int+  , id (x + id x) :: Int+  , id (x + id y) :: Int+  , id (x + id 0) :: Int+  , id (x + id 1) :: Int+  , id (x + id (ord _)) :: Int+  , id (x + id (id _)) :: Int+  , id (x + id (id x)) :: Int+  , id (x + id (id 0)) :: Int+  , id (x + id (id (id _))) :: Int+  , id (x + id (abs _)) :: Int+  , id (x + id (negate _)) :: Int+  , id (x + id (head _)) :: Int+  , id (x + id (_ + _)) :: Int+  , id (x + abs _) :: Int+  , id (x + abs x) :: Int+  , id (x + abs 0) :: Int+  , id (x + abs (id _)) :: Int+  , id (x + negate _) :: Int+  , id (x + negate x) :: Int+  , id (x + negate 0) :: Int+  , id (x + negate (id _)) :: Int+  , id (x + head _) :: Int+  , id (x + head xs) :: Int+  , id (x + head []) :: Int+  , id (x + head (_:_)) :: Int+  , id (x + _ * _) :: Int+  , id (x + (_ + _)) :: Int+  , id (x + (_ + x)) :: Int+  , id (x + (_ + 0)) :: Int+  , id (x + (_ + id _)) :: Int+  , id (x + (x + _)) :: Int+  , id (x + (0 + _)) :: Int+  , id (x + (id _ + _)) :: Int+  , id (y + _) :: Int+  , id (y + x) :: Int+  , id (y + y) :: Int+  , id (y + 0) :: Int+  , id (y + 1) :: Int+  , id (y + ord _) :: Int+  , id (y + id _) :: Int+  , id (y + id x) :: Int+  , id (y + id 0) :: Int+  , id (y + id (id _)) :: Int+  , id (y + abs _) :: Int+  , id (y + negate _) :: Int+  , id (y + head _) :: Int+  , id (y + (_ + _)) :: Int+  , id (z + _) :: Int+  , id (z + x) :: Int+  , id (z + 0) :: Int+  , id (z + id _) :: Int+  , id (x' + _) :: Int+  , id (0 + _) :: Int+  , id (0 + x) :: Int+  , id (0 + y) :: Int+  , id (0 + z) :: Int+  , id (0 + 0) :: Int+  , id (0 + 1) :: Int+  , id (0 + (-1)) :: Int+  , id (0 + f _) :: Int+  , id (0 + ord _) :: Int+  , id (0 + ord c) :: Int+  , id (0 + ord 'a') :: Int+  , id (0 + id _) :: Int+  , id (0 + id x) :: Int+  , id (0 + id y) :: Int+  , id (0 + id 0) :: Int+  , id (0 + id 1) :: Int+  , id (0 + id (ord _)) :: Int+  , id (0 + id (id _)) :: Int+  , id (0 + id (id x)) :: Int+  , id (0 + id (id 0)) :: Int+  , id (0 + id (id (id _))) :: Int+  , id (0 + id (abs _)) :: Int+  , id (0 + id (negate _)) :: Int+  , id (0 + id (head _)) :: Int+  , id (0 + id (_ + _)) :: Int+  , id (0 + abs _) :: Int+  , id (0 + abs x) :: Int+  , id (0 + abs 0) :: Int+  , id (0 + abs (id _)) :: Int+  , id (0 + negate _) :: Int+  , id (0 + negate x) :: Int+  , id (0 + negate 0) :: Int+  , id (0 + negate (id _)) :: Int+  , id (0 + head _) :: Int+  , id (0 + head xs) :: Int+  , id (0 + head []) :: Int+  , id (0 + head (_:_)) :: Int+  , id (0 + _ * _) :: Int+  , id (0 + (_ + _)) :: Int+  , id (0 + (_ + x)) :: Int+  , id (0 + (_ + 0)) :: Int+  , id (0 + (_ + id _)) :: Int+  , id (0 + (x + _)) :: Int+  , id (0 + (0 + _)) :: Int+  , id (0 + (id _ + _)) :: Int+  , id (1 + _) :: Int+  , id (1 + x) :: Int+  , id (1 + y) :: Int+  , id (1 + 0) :: Int+  , id (1 + 1) :: Int+  , id (1 + ord _) :: Int+  , id (1 + id _) :: Int+  , id (1 + id x) :: Int+  , id (1 + id 0) :: Int+  , id (1 + id (id _)) :: Int+  , id (1 + abs _) :: Int+  , id (1 + negate _) :: Int+  , id (1 + head _) :: Int+  , id (1 + (_ + _)) :: Int+  , id (2 + _) :: Int+  , id ((-1) + _) :: Int+  , id ((-1) + x) :: Int+  , id ((-1) + 0) :: Int+  , id ((-1) + id _) :: Int+  , id (f _ + _) :: Int+  , id (f _ + x) :: Int+  , id (f _ + 0) :: Int+  , id (f _ + id _) :: Int+  , id (f x + _) :: Int+  , id (f 0 + _) :: Int+  , id (f (id _) + _) :: Int+  , id (g _ + _) :: Int+  , id (ord _ + _) :: Int+  , id (ord _ + x) :: Int+  , id (ord _ + y) :: Int+  , id (ord _ + 0) :: Int+  , id (ord _ + 1) :: Int+  , id (ord _ + ord _) :: Int+  , id (ord _ + id _) :: Int+  , id (ord _ + id x) :: Int+  , id (ord _ + id 0) :: Int+  , id (ord _ + id (id _)) :: Int+  , id (ord _ + abs _) :: Int+  , id (ord _ + negate _) :: Int+  , id (ord _ + head _) :: Int+  , id (ord _ + (_ + _)) :: Int+  , id (ord c + _) :: Int+  , id (ord c + x) :: Int+  , id (ord c + 0) :: Int+  , id (ord c + id _) :: Int+  , id (ord d + _) :: Int+  , id (ord ' ' + _) :: Int+  , id (ord 'a' + _) :: Int+  , id (ord 'a' + x) :: Int+  , id (ord 'a' + 0) :: Int+  , id (ord 'a' + id _) :: Int+  , id (id _ + _) :: Int+  , id (id _ + x) :: Int+  , id (id _ + y) :: Int+  , id (id _ + z) :: Int+  , id (id _ + 0) :: Int+  , id (id _ + 1) :: Int+  , id (id _ + (-1)) :: Int+  , id (id _ + f _) :: Int+  , id (id _ + ord _) :: Int+  , id (id _ + ord c) :: Int+  , id (id _ + ord 'a') :: Int+  , id (id _ + id _) :: Int+  , id (id _ + id x) :: Int+  , id (id _ + id y) :: Int+  , id (id _ + id 0) :: Int+  , id (id _ + id 1) :: Int+  , id (id _ + id (ord _)) :: Int+  , id (id _ + id (id _)) :: Int+  , id (id _ + id (id x)) :: Int+  , id (id _ + id (id 0)) :: Int+  , id (id _ + id (id (id _))) :: Int+  , id (id _ + id (abs _)) :: Int+  , id (id _ + id (negate _)) :: Int+  , id (id _ + id (head _)) :: Int+  , id (id _ + id (_ + _)) :: Int+  , id (id _ + abs _) :: Int+  , id (id _ + abs x) :: Int+  , id (id _ + abs 0) :: Int+  , id (id _ + abs (id _)) :: Int+  , id (id _ + negate _) :: Int+  , id (id _ + negate x) :: Int+  , id (id _ + negate 0) :: Int+  , id (id _ + negate (id _)) :: Int+  , id (id _ + head _) :: Int+  , id (id _ + head xs) :: Int+  , id (id _ + head []) :: Int+  , id (id _ + head (_:_)) :: Int+  , id (id _ + _ * _) :: Int+  , id (id _ + (_ + _)) :: Int+  , id (id _ + (_ + x)) :: Int+  , id (id _ + (_ + 0)) :: Int+  , id (id _ + (_ + id _)) :: Int+  , id (id _ + (x + _)) :: Int+  , id (id _ + (0 + _)) :: Int+  , id (id _ + (id _ + _)) :: Int+  , id (id x + _) :: Int+  , id (id x + x) :: Int+  , id (id x + y) :: Int+  , id (id x + 0) :: Int+  , id (id x + 1) :: Int+  , id (id x + ord _) :: Int+  , id (id x + id _) :: Int+  , id (id x + id x) :: Int+  , id (id x + id 0) :: Int+  , id (id x + id (id _)) :: Int+  , id (id x + abs _) :: Int+  , id (id x + negate _) :: Int+  , id (id x + head _) :: Int+  , id (id x + (_ + _)) :: Int+  , id (id y + _) :: Int+  , id (id y + x) :: Int+  , id (id y + 0) :: Int+  , id (id y + id _) :: Int+  , id (id z + _) :: Int+  , id (id 0 + _) :: Int+  , id (id 0 + x) :: Int+  , id (id 0 + y) :: Int+  , id (id 0 + 0) :: Int+  , id (id 0 + 1) :: Int+  , id (id 0 + ord _) :: Int+  , id (id 0 + id _) :: Int+  , id (id 0 + id x) :: Int+  , id (id 0 + id 0) :: Int+  , id (id 0 + id (id _)) :: Int+  , id (id 0 + abs _) :: Int+  , id (id 0 + negate _) :: Int+  , id (id 0 + head _) :: Int+  , id (id 0 + (_ + _)) :: Int+  , id (id 1 + _) :: Int+  , id (id 1 + x) :: Int+  , id (id 1 + 0) :: Int+  , id (id 1 + id _) :: Int+  , id (id (-1) + _) :: Int+  , id (id (f _) + _) :: Int+  , id (id (ord _) + _) :: Int+  , id (id (ord _) + x) :: Int+  , id (id (ord _) + 0) :: Int+  , id (id (ord _) + id _) :: Int+  , id (id (ord c) + _) :: Int+  , id (id (ord 'a') + _) :: Int+  , id (id (id _) + _) :: Int+  , id (id (id _) + x) :: Int+  , id (id (id _) + y) :: Int+  , id (id (id _) + 0) :: Int+  , id (id (id _) + 1) :: Int+  , id (id (id _) + ord _) :: Int+  , id (id (id _) + id _) :: Int+  , id (id (id _) + id x) :: Int+  , id (id (id _) + id 0) :: Int+  , id (id (id _) + id (id _)) :: Int+  , id (id (id _) + abs _) :: Int+  , id (id (id _) + negate _) :: Int+  , id (id (id _) + head _) :: Int+  , id (id (id _) + (_ + _)) :: Int+  , id (id (id x) + _) :: Int+  , id (id (id x) + x) :: Int+  , id (id (id x) + 0) :: Int+  , id (id (id x) + id _) :: Int+  , id (id (id y) + _) :: Int+  , id (id (id 0) + _) :: Int+  , id (id (id 0) + x) :: Int+  , id (id (id 0) + 0) :: Int+  , id (id (id 0) + id _) :: Int+  , id (id (id 1) + _) :: Int+  , id (id (id (ord _)) + _) :: Int+  , id (id (id (id _)) + _) :: Int+  , id (id (id (id _)) + x) :: Int+  , id (id (id (id _)) + 0) :: Int+  , id (id (id (id _)) + id _) :: Int+  , id (id (id (id x)) + _) :: Int+  , id (id (id (id 0)) + _) :: Int+  , id (id (id (id (id _))) + _) :: Int+  , id (id (id (abs _)) + _) :: Int+  , id (id (id (negate _)) + _) :: Int+  , id (id (id (head _)) + _) :: Int+  , id (id (id (_ + _)) + _) :: Int+  , id (id (abs _) + _) :: Int+  , id (id (abs _) + x) :: Int+  , id (id (abs _) + 0) :: Int+  , id (id (abs _) + id _) :: Int+  , id (id (abs x) + _) :: Int+  , id (id (abs 0) + _) :: Int+  , id (id (abs (id _)) + _) :: Int+  , id (id (negate _) + _) :: Int+  , id (id (negate _) + x) :: Int+  , id (id (negate _) + 0) :: Int+  , id (id (negate _) + id _) :: Int+  , id (id (negate x) + _) :: Int+  , id (id (negate 0) + _) :: Int+  , id (id (negate (id _)) + _) :: Int+  , id (id (head _) + _) :: Int+  , id (id (head _) + x) :: Int+  , id (id (head _) + 0) :: Int+  , id (id (head _) + id _) :: Int+  , id (id (head xs) + _) :: Int+  , id (id (head []) + _) :: Int+  , id (id (head (_:_)) + _) :: Int+  , id (id (_ * _) + _) :: Int+  , id (id (_ + _) + _) :: Int+  , id (id (_ + _) + x) :: Int+  , id (id (_ + _) + 0) :: Int+  , id (id (_ + _) + id _) :: Int+  , id (id (_ + x) + _) :: Int+  , id (id (_ + 0) + _) :: Int+  , id (id (_ + id _) + _) :: Int+  , id (id (x + _) + _) :: Int+  , id (id (0 + _) + _) :: Int+  , id (id (id _ + _) + _) :: Int+  , id (abs _ + _) :: Int+  , id (abs _ + x) :: Int+  , id (abs _ + y) :: Int+  , id (abs _ + 0) :: Int+  , id (abs _ + 1) :: Int+  , id (abs _ + ord _) :: Int+  , id (abs _ + id _) :: Int+  , id (abs _ + id x) :: Int+  , id (abs _ + id 0) :: Int+  , id (abs _ + id (id _)) :: Int+  , id (abs _ + abs _) :: Int+  , id (abs _ + negate _) :: Int+  , id (abs _ + head _) :: Int+  , id (abs _ + (_ + _)) :: Int+  , id (abs x + _) :: Int+  , id (abs x + x) :: Int+  , id (abs x + 0) :: Int+  , id (abs x + id _) :: Int+  , id (abs y + _) :: Int+  , id (abs 0 + _) :: Int+  , id (abs 0 + x) :: Int+  , id (abs 0 + 0) :: Int+  , id (abs 0 + id _) :: Int+  , id (abs 1 + _) :: Int+  , id (abs (ord _) + _) :: Int+  , id (abs (id _) + _) :: Int+  , id (abs (id _) + x) :: Int+  , id (abs (id _) + 0) :: Int+  , id (abs (id _) + id _) :: Int+  , id (abs (id x) + _) :: Int+  , id (abs (id 0) + _) :: Int+  , id (abs (id (id _)) + _) :: Int+  , id (abs (abs _) + _) :: Int+  , id (abs (negate _) + _) :: Int+  , id (abs (head _) + _) :: Int+  , id (abs (_ + _) + _) :: Int+  , id (negate _ + _) :: Int+  , id (negate _ + x) :: Int+  , id (negate _ + y) :: Int+  , id (negate _ + 0) :: Int+  , id (negate _ + 1) :: Int+  , id (negate _ + ord _) :: Int+  , id (negate _ + id _) :: Int+  , id (negate _ + id x) :: Int+  , id (negate _ + id 0) :: Int+  , id (negate _ + id (id _)) :: Int+  , id (negate _ + abs _) :: Int+  , id (negate _ + negate _) :: Int+  , id (negate _ + head _) :: Int+  , id (negate _ + (_ + _)) :: Int+  , id (negate x + _) :: Int+  , id (negate x + x) :: Int+  , id (negate x + 0) :: Int+  , id (negate x + id _) :: Int+  , id (negate y + _) :: Int+  , id (negate 0 + _) :: Int+  , id (negate 0 + x) :: Int+  , id (negate 0 + 0) :: Int+  , id (negate 0 + id _) :: Int+  , id (negate 1 + _) :: Int+  , id (negate (ord _) + _) :: Int+  , id (negate (id _) + _) :: Int+  , id (negate (id _) + x) :: Int+  , id (negate (id _) + 0) :: Int+  , id (negate (id _) + id _) :: Int+  , id (negate (id x) + _) :: Int+  , id (negate (id 0) + _) :: Int+  , id (negate (id (id _)) + _) :: Int+  , id (negate (abs _) + _) :: Int+  , id (negate (negate _) + _) :: Int+  , id (negate (head _) + _) :: Int+  , id (negate (_ + _) + _) :: Int+  , id (head _ + _) :: Int+  , id (head _ + x) :: Int+  , id (head _ + y) :: Int+  , id (head _ + 0) :: Int+  , id (head _ + 1) :: Int+  , id (head _ + ord _) :: Int+  , id (head _ + id _) :: Int+  , id (head _ + id x) :: Int+  , id (head _ + id 0) :: Int+  , id (head _ + id (id _)) :: Int+  , id (head _ + abs _) :: Int+  , id (head _ + negate _) :: Int+  , id (head _ + head _) :: Int+  , id (head _ + (_ + _)) :: Int+  , id (head xs + _) :: Int+  , id (head xs + x) :: Int+  , id (head xs + 0) :: Int+  , id (head xs + id _) :: Int+  , id (head ys + _) :: Int+  , id (head [] + _) :: Int+  , id (head [] + x) :: Int+  , id (head [] + 0) :: Int+  , id (head [] + id _) :: Int+  , id (head [0] + _) :: Int+  , id (head (tail _) + _) :: Int+  , id (head (_:_) + _) :: Int+  , id (head (_:_) + x) :: Int+  , id (head (_:_) + 0) :: Int+  , id (head (_:_) + id _) :: Int+  , id (head (_:xs) + _) :: Int+  , id (head [_] + _) :: Int+  , id (head (_:_:_) + _) :: Int+  , id (head (x:_) + _) :: Int+  , id (head (0:_) + _) :: Int+  , id (head (id _:_) + _) :: Int+  , id (head (_ ++ _) + _) :: Int+  , id (_ * _ + _) :: Int+  , id (_ * _ + x) :: Int+  , id (_ * _ + 0) :: Int+  , id (_ * _ + id _) :: Int+  , id (_ * x + _) :: Int+  , id (_ * 0 + _) :: Int+  , id (_ * id _ + _) :: Int+  , id (x * _ + _) :: Int+  , id (0 * _ + _) :: Int+  , id (id _ * _ + _) :: Int+  , id ((_ + _) + _) :: Int+  , id ((_ + _) + x) :: Int+  , id ((_ + _) + y) :: Int+  , id ((_ + _) + 0) :: Int+  , id ((_ + _) + 1) :: Int+  , id ((_ + _) + ord _) :: Int+  , id ((_ + _) + id _) :: Int+  , id ((_ + _) + id x) :: Int+  , id ((_ + _) + id 0) :: Int+  , id ((_ + _) + id (id _)) :: Int+  , id ((_ + _) + abs _) :: Int+  , id ((_ + _) + negate _) :: Int+  , id ((_ + _) + head _) :: Int+  , id ((_ + _) + (_ + _)) :: Int+  , id ((_ + x) + _) :: Int+  , id ((_ + x) + x) :: Int+  , id ((_ + x) + 0) :: Int+  , id ((_ + x) + id _) :: Int+  , id ((_ + y) + _) :: Int+  , id ((_ + 0) + _) :: Int+  , id ((_ + 0) + x) :: Int+  , id ((_ + 0) + 0) :: Int+  , id ((_ + 0) + id _) :: Int+  , id ((_ + 1) + _) :: Int+  , id ((_ + ord _) + _) :: Int+  , id ((_ + id _) + _) :: Int+  , id ((_ + id _) + x) :: Int+  , id ((_ + id _) + 0) :: Int+  , id ((_ + id _) + id _) :: Int+  , id ((_ + id x) + _) :: Int+  , id ((_ + id 0) + _) :: Int+  , id ((_ + id (id _)) + _) :: Int+  , id ((_ + abs _) + _) :: Int+  , id ((_ + negate _) + _) :: Int+  , id ((_ + head _) + _) :: Int+  , id ((_ + (_ + _)) + _) :: Int+  , id ((x + _) + _) :: Int+  , id ((x + _) + x) :: Int+  , id ((x + _) + 0) :: Int+  , id ((x + _) + id _) :: Int+  , id ((x + x) + _) :: Int+  , id ((x + 0) + _) :: Int+  , id ((x + id _) + _) :: Int+  , id ((y + _) + _) :: Int+  , id ((0 + _) + _) :: Int+  , id ((0 + _) + x) :: Int+  , id ((0 + _) + 0) :: Int+  , id ((0 + _) + id _) :: Int+  , id ((0 + x) + _) :: Int+  , id ((0 + 0) + _) :: Int+  , id ((0 + id _) + _) :: Int+  , id ((1 + _) + _) :: Int+  , id ((ord _ + _) + _) :: Int+  , id ((id _ + _) + _) :: Int+  , id ((id _ + _) + x) :: Int+  , id ((id _ + _) + 0) :: Int+  , id ((id _ + _) + id _) :: Int+  , id ((id _ + x) + _) :: Int+  , id ((id _ + 0) + _) :: Int+  , id ((id _ + id _) + _) :: Int+  , id ((id x + _) + _) :: Int+  , id ((id 0 + _) + _) :: Int+  , id ((id (id _) + _) + _) :: Int+  , id ((abs _ + _) + _) :: Int+  , id ((negate _ + _) + _) :: Int+  , id ((head _ + _) + _) :: Int+  , id (((_ + _) + _) + _) :: Int+  , abs _ :: Int+  , abs x :: Int+  , abs y :: Int+  , abs z :: Int+  , abs x' :: Int+  , abs 0 :: Int+  , abs 1 :: Int+  , abs 2 :: Int+  , abs (-1) :: Int+  , abs (f _) :: Int+  , abs (f x) :: Int+  , abs (f 0) :: Int+  , abs (f (id _)) :: Int+  , abs (g _) :: Int+  , abs (ord _) :: Int+  , abs (ord c) :: Int+  , abs (ord d) :: Int+  , abs (ord ' ') :: Int+  , abs (ord 'a') :: Int+  , abs (id _) :: Int+  , abs (id x) :: Int+  , abs (id y) :: Int+  , abs (id z) :: Int+  , abs (id 0) :: Int+  , abs (id 1) :: Int+  , abs (id (-1)) :: Int+  , abs (id (f _)) :: Int+  , abs (id (ord _)) :: Int+  , abs (id (ord c)) :: Int+  , abs (id (ord 'a')) :: Int+  , abs (id (id _)) :: Int+  , abs (id (id x)) :: Int+  , abs (id (id y)) :: Int+  , abs (id (id 0)) :: Int+  , abs (id (id 1)) :: Int+  , abs (id (id (ord _))) :: Int+  , abs (id (id (id _))) :: Int+  , abs (id (id (id x))) :: Int+  , abs (id (id (id 0))) :: Int+  , abs (id (id (id (id _)))) :: Int+  , abs (id (id (abs _))) :: Int+  , abs (id (id (negate _))) :: Int+  , abs (id (id (head _))) :: Int+  , abs (id (id (_ + _))) :: Int+  , abs (id (abs _)) :: Int+  , abs (id (abs x)) :: Int+  , abs (id (abs 0)) :: Int+  , abs (id (abs (id _))) :: Int+  , abs (id (negate _)) :: Int+  , abs (id (negate x)) :: Int+  , abs (id (negate 0)) :: Int+  , abs (id (negate (id _))) :: Int+  , abs (id (head _)) :: Int+  , abs (id (head xs)) :: Int+  , abs (id (head [])) :: Int+  , abs (id (head (_:_))) :: Int+  , abs (id (_ * _)) :: Int+  , abs (id (_ + _)) :: Int+  , abs (id (_ + x)) :: Int+  , abs (id (_ + 0)) :: Int+  , abs (id (_ + id _)) :: Int+  , abs (id (x + _)) :: Int+  , abs (id (0 + _)) :: Int+  , abs (id (id _ + _)) :: Int+  , abs (abs _) :: Int+  , abs (abs x) :: Int+  , abs (abs y) :: Int+  , abs (abs 0) :: Int+  , abs (abs 1) :: Int+  , abs (abs (ord _)) :: Int+  , abs (abs (id _)) :: Int+  , abs (abs (id x)) :: Int+  , abs (abs (id 0)) :: Int+  , abs (abs (id (id _))) :: Int+  , abs (abs (abs _)) :: Int+  , abs (abs (negate _)) :: Int+  , abs (abs (head _)) :: Int+  , abs (abs (_ + _)) :: Int+  , abs (negate _) :: Int+  , abs (negate x) :: Int+  , abs (negate y) :: Int+  , abs (negate 0) :: Int+  , abs (negate 1) :: Int+  , abs (negate (ord _)) :: Int+  , abs (negate (id _)) :: Int+  , abs (negate (id x)) :: Int+  , abs (negate (id 0)) :: Int+  , abs (negate (id (id _))) :: Int+  , abs (negate (abs _)) :: Int+  , abs (negate (negate _)) :: Int+  , abs (negate (head _)) :: Int+  , abs (negate (_ + _)) :: Int+  , abs (head _) :: Int+  , abs (head xs) :: Int+  , abs (head ys) :: Int+  , abs (head []) :: Int+  , abs (head [0]) :: Int+  , abs (head (tail _)) :: Int+  , abs (head (_:_)) :: Int+  , abs (head (_:xs)) :: Int+  , abs (head [_]) :: Int+  , abs (head (_:_:_)) :: Int+  , abs (head (x:_)) :: Int+  , abs (head (0:_)) :: Int+  , abs (head (id _:_)) :: Int+  , abs (head (_ ++ _)) :: Int+  , abs (_ * _) :: Int+  , abs (_ * x) :: Int+  , abs (_ * 0) :: Int+  , abs (_ * id _) :: Int+  , abs (x * _) :: Int+  , abs (0 * _) :: Int+  , abs (id _ * _) :: Int+  , abs (_ + _) :: Int+  , abs (_ + x) :: Int+  , abs (_ + y) :: Int+  , abs (_ + 0) :: Int+  , abs (_ + 1) :: Int+  , abs (_ + ord _) :: Int+  , abs (_ + id _) :: Int+  , abs (_ + id x) :: Int+  , abs (_ + id 0) :: Int+  , abs (_ + id (id _)) :: Int+  , abs (_ + abs _) :: Int+  , abs (_ + negate _) :: Int+  , abs (_ + head _) :: Int+  , abs (_ + (_ + _)) :: Int+  , abs (x + _) :: Int+  , abs (x + x) :: Int+  , abs (x + 0) :: Int+  , abs (x + id _) :: Int+  , abs (y + _) :: Int+  , abs (0 + _) :: Int+  , abs (0 + x) :: Int+  , abs (0 + 0) :: Int+  , abs (0 + id _) :: Int+  , abs (1 + _) :: Int+  , abs (ord _ + _) :: Int+  , abs (id _ + _) :: Int+  , abs (id _ + x) :: Int+  , abs (id _ + 0) :: Int+  , abs (id _ + id _) :: Int+  , abs (id x + _) :: Int+  , abs (id 0 + _) :: Int+  , abs (id (id _) + _) :: Int+  , abs (abs _ + _) :: Int+  , abs (negate _ + _) :: Int+  , abs (head _ + _) :: Int+  , abs ((_ + _) + _) :: Int+  , negate _ :: Int+  , negate x :: Int+  , negate y :: Int+  , negate z :: Int+  , negate x' :: Int+  , negate 0 :: Int+  , negate 1 :: Int+  , negate 2 :: Int+  , negate (-1) :: Int+  , negate (f _) :: Int+  , negate (f x) :: Int+  , negate (f 0) :: Int+  , negate (f (id _)) :: Int+  , negate (g _) :: Int+  , negate (ord _) :: Int+  , negate (ord c) :: Int+  , negate (ord d) :: Int+  , negate (ord ' ') :: Int+  , negate (ord 'a') :: Int+  , negate (id _) :: Int+  , negate (id x) :: Int+  , negate (id y) :: Int+  , negate (id z) :: Int+  , negate (id 0) :: Int+  , negate (id 1) :: Int+  , negate (id (-1)) :: Int+  , negate (id (f _)) :: Int+  , negate (id (ord _)) :: Int+  , negate (id (ord c)) :: Int+  , negate (id (ord 'a')) :: Int+  , negate (id (id _)) :: Int+  , negate (id (id x)) :: Int+  , negate (id (id y)) :: Int+  , negate (id (id 0)) :: Int+  , negate (id (id 1)) :: Int+  , negate (id (id (ord _))) :: Int+  , negate (id (id (id _))) :: Int+  , negate (id (id (id x))) :: Int+  , negate (id (id (id 0))) :: Int+  , negate (id (id (id (id _)))) :: Int+  , negate (id (id (abs _))) :: Int+  , negate (id (id (negate _))) :: Int+  , negate (id (id (head _))) :: Int+  , negate (id (id (_ + _))) :: Int+  , negate (id (abs _)) :: Int+  , negate (id (abs x)) :: Int+  , negate (id (abs 0)) :: Int+  , negate (id (abs (id _))) :: Int+  , negate (id (negate _)) :: Int+  , negate (id (negate x)) :: Int+  , negate (id (negate 0)) :: Int+  , negate (id (negate (id _))) :: Int+  , negate (id (head _)) :: Int+  , negate (id (head xs)) :: Int+  , negate (id (head [])) :: Int+  , negate (id (head (_:_))) :: Int+  , negate (id (_ * _)) :: Int+  , negate (id (_ + _)) :: Int+  , negate (id (_ + x)) :: Int+  , negate (id (_ + 0)) :: Int+  , negate (id (_ + id _)) :: Int+  , negate (id (x + _)) :: Int+  , negate (id (0 + _)) :: Int+  , negate (id (id _ + _)) :: Int+  , negate (abs _) :: Int+  , negate (abs x) :: Int+  , negate (abs y) :: Int+  , negate (abs 0) :: Int+  , negate (abs 1) :: Int+  , negate (abs (ord _)) :: Int+  , negate (abs (id _)) :: Int+  , negate (abs (id x)) :: Int+  , negate (abs (id 0)) :: Int+  , negate (abs (id (id _))) :: Int+  , negate (abs (abs _)) :: Int+  , negate (abs (negate _)) :: Int+  , negate (abs (head _)) :: Int+  , negate (abs (_ + _)) :: Int+  , negate (negate _) :: Int+  , negate (negate x) :: Int+  , negate (negate y) :: Int+  , negate (negate 0) :: Int+  , negate (negate 1) :: Int+  , negate (negate (ord _)) :: Int+  , negate (negate (id _)) :: Int+  , negate (negate (id x)) :: Int+  , negate (negate (id 0)) :: Int+  , negate (negate (id (id _))) :: Int+  , negate (negate (abs _)) :: Int+  , negate (negate (negate _)) :: Int+  , negate (negate (head _)) :: Int+  , negate (negate (_ + _)) :: Int+  , negate (head _) :: Int+  , negate (head xs) :: Int+  , negate (head ys) :: Int+  , negate (head []) :: Int+  , negate (head [0]) :: Int+  , negate (head (tail _)) :: Int+  , negate (head (_:_)) :: Int+  , negate (head (_:xs)) :: Int+  , negate (head [_]) :: Int+  , negate (head (_:_:_)) :: Int+  , negate (head (x:_)) :: Int+  , negate (head (0:_)) :: Int+  , negate (head (id _:_)) :: Int+  , negate (head (_ ++ _)) :: Int+  , negate (_ * _) :: Int+  , negate (_ * x) :: Int+  , negate (_ * 0) :: Int+  , negate (_ * id _) :: Int+  , negate (x * _) :: Int+  , negate (0 * _) :: Int+  , negate (id _ * _) :: Int+  , negate (_ + _) :: Int+  , negate (_ + x) :: Int+  , negate (_ + y) :: Int+  , negate (_ + 0) :: Int+  , negate (_ + 1) :: Int+  , negate (_ + ord _) :: Int+  , negate (_ + id _) :: Int+  , negate (_ + id x) :: Int+  , negate (_ + id 0) :: Int+  , negate (_ + id (id _)) :: Int+  , negate (_ + abs _) :: Int+  , negate (_ + negate _) :: Int+  , negate (_ + head _) :: Int+  , negate (_ + (_ + _)) :: Int+  , negate (x + _) :: Int+  , negate (x + x) :: Int+  , negate (x + 0) :: Int+  , negate (x + id _) :: Int+  , negate (y + _) :: Int+  , negate (0 + _) :: Int+  , negate (0 + x) :: Int+  , negate (0 + 0) :: Int+  , negate (0 + id _) :: Int+  , negate (1 + _) :: Int+  , negate (ord _ + _) :: Int+  , negate (id _ + _) :: Int+  , negate (id _ + x) :: Int+  , negate (id _ + 0) :: Int+  , negate (id _ + id _) :: Int+  , negate (id x + _) :: Int+  , negate (id 0 + _) :: Int+  , negate (id (id _) + _) :: Int+  , negate (abs _ + _) :: Int+  , negate (negate _ + _) :: Int+  , negate (head _ + _) :: Int+  , negate ((_ + _) + _) :: Int+  , head _ :: Int+  , head xs :: Int+  , head ys :: Int+  , head zs :: Int+  , head xs' :: Int+  , head [] :: Int+  , head [0] :: Int+  , head [1] :: Int+  , head [-1] :: Int+  , head [0,0] :: Int+  , head [0,1] :: Int+  , head [1,0] :: Int+  , head [0,0,0] :: Int+  , head (sort _) :: Int+  , head (sort xs) :: Int+  , head (sort []) :: Int+  , head (sort (_:_)) :: Int+  , head (tail _) :: Int+  , head (tail xs) :: Int+  , head (tail ys) :: Int+  , head (tail []) :: Int+  , head (tail [0]) :: Int+  , head (tail (tail _)) :: Int+  , head (tail (_:_)) :: Int+  , head (tail (_:xs)) :: Int+  , head (tail [_]) :: Int+  , head (tail (_:_:_)) :: Int+  , head (tail (x:_)) :: Int+  , head (tail (0:_)) :: Int+  , head (tail (id _:_)) :: Int+  , head (tail (_ ++ _)) :: Int+  , head (_:_) :: Int+  , head (_:xs) :: Int+  , head (_:ys) :: Int+  , head (_:zs) :: Int+  , head [_] :: Int+  , head (_:[0]) :: Int+  , head (_:[1]) :: Int+  , head (_:[0,0]) :: Int+  , head (_:sort _) :: Int+  , head (_:tail _) :: Int+  , head (_:tail xs) :: Int+  , head (_:tail []) :: Int+  , head (_:tail (_:_)) :: Int+  , head (_:_:_) :: Int+  , head (_:_:xs) :: Int+  , head (_:_:ys) :: Int+  , head [_,_] :: Int+  , head (_:_:[0]) :: Int+  , head (_:_:tail _) :: Int+  , head (_:_:_:_) :: Int+  , head (_:_:_:xs) :: Int+  , head [_,_,_] :: Int+  , head (_:_:_:_:_) :: Int+  , head (_:_:x:_) :: Int+  , head (_:_:0:_) :: Int+  , head (_:_:id _:_) :: Int+  , head (_:_:(_ ++ _)) :: Int+  , head (_:x:_) :: Int+  , head (_:x:xs) :: Int+  , head [_,x] :: Int+  , head (_:x:_:_) :: Int+  , head (_:y:_) :: Int+  , head (_:0:_) :: Int+  , head (_:0:xs) :: Int+  , head [_,0] :: Int+  , head (_:0:_:_) :: Int+  , head (_:1:_) :: Int+  , head (_:ord _:_) :: Int+  , head (_:id _:_) :: Int+  , head (_:id _:xs) :: Int+  , head [_,id _] :: Int+  , head (_:id _:_:_) :: Int+  , head (_:id x:_) :: Int+  , head (_:id 0:_) :: Int+  , head (_:id (id _):_) :: Int+  , head (_:abs _:_) :: Int+  , head (_:negate _:_) :: Int+  , head (_:head _:_) :: Int+  , head (_:_ + _:_) :: Int+  , head (_:insert _ _) :: Int+  , head (_:(_ ++ _)) :: Int+  , head (_:(_ ++ xs)) :: Int+  , head (_:(_ ++ [])) :: Int+  , head (_:(_ ++ (_:_))) :: Int+  , head (_:(xs ++ _)) :: Int+  , head (_:([] ++ _)) :: Int+  , head (_:((_:_) ++ _)) :: Int+  , head (x:_) :: Int+  , head (x:xs) :: Int+  , head (x:ys) :: Int+  , head [x] :: Int+  , head (x:[0]) :: Int+  , head (x:tail _) :: Int+  , head (x:_:_) :: Int+  , head (x:_:xs) :: Int+  , head [x,_] :: Int+  , head (x:_:_:_) :: Int+  , head (x:x:_) :: Int+  , head (x:0:_) :: Int+  , head (x:id _:_) :: Int+  , head (x:(_ ++ _)) :: Int+  , head (y:_) :: Int+  , head (y:xs) :: Int+  , head [y] :: Int+  , head (y:_:_) :: Int+  , head (z:_) :: Int+  , head (0:_) :: Int+  , head (0:xs) :: Int+  , head (0:ys) :: Int+  , head [0] :: Int+  , head (0:[0]) :: Int+  , head (0:tail _) :: Int+  , head (0:_:_) :: Int+  , head (0:_:xs) :: Int+  , head [0,_] :: Int+  , head (0:_:_:_) :: Int+  , head (0:x:_) :: Int+  , head (0:0:_) :: Int+  , head (0:id _:_) :: Int+  , head (0:(_ ++ _)) :: Int+  , head (1:_) :: Int+  , head (1:xs) :: Int+  , head [1] :: Int+  , head (1:_:_) :: Int+  , head ((-1):_) :: Int+  , head (f _:_) :: Int+  , head (ord _:_) :: Int+  , head (ord _:xs) :: Int+  , head [ord _] :: Int+  , head (ord _:_:_) :: Int+  , head (ord c:_) :: Int+  , head (ord 'a':_) :: Int+  , head (id _:_) :: Int+  , head (id _:xs) :: Int+  , head (id _:ys) :: Int+  , head [id _] :: Int+  , head (id _:[0]) :: Int+  , head (id _:tail _) :: Int+  , head (id _:_:_) :: Int+  , head (id _:_:xs) :: Int+  , head [id _,_] :: Int+  , head (id _:_:_:_) :: Int+  , head (id _:x:_) :: Int+  , head (id _:0:_) :: Int+  , head (id _:id _:_) :: Int+  , head (id _:(_ ++ _)) :: Int+  , head (id x:_) :: Int+  , head (id x:xs) :: Int+  , head [id x] :: Int+  , head (id x:_:_) :: Int+  , head (id y:_) :: Int+  , head (id 0:_) :: Int+  , head (id 0:xs) :: Int+  , head [id 0] :: Int+  , head (id 0:_:_) :: Int+  , head (id 1:_) :: Int+  , head (id (ord _):_) :: Int+  , head (id (id _):_) :: Int+  , head (id (id _):xs) :: Int+  , head [id (id _)] :: Int+  , head (id (id _):_:_) :: Int+  , head (id (id x):_) :: Int+  , head (id (id 0):_) :: Int+  , head (id (id (id _)):_) :: Int+  , head (id (abs _):_) :: Int+  , head (id (negate _):_) :: Int+  , head (id (head _):_) :: Int+  , head (id (_ + _):_) :: Int+  , head (abs _:_) :: Int+  , head (abs _:xs) :: Int+  , head [abs _] :: Int+  , head (abs _:_:_) :: Int+  , head (abs x:_) :: Int+  , head (abs 0:_) :: Int+  , head (abs (id _):_) :: Int+  , head (negate _:_) :: Int+  , head (negate _:xs) :: Int+  , head [negate _] :: Int+  , head (negate _:_:_) :: Int+  , head (negate x:_) :: Int+  , head (negate 0:_) :: Int+  , head (negate (id _):_) :: Int+  , head (head _:_) :: Int+  , head (head _:xs) :: Int+  , head [head _] :: Int+  , head (head _:_:_) :: Int+  , head (head xs:_) :: Int+  , head (head []:_) :: Int+  , head (head (_:_):_) :: Int+  , head (_ * _:_) :: Int+  , head (_ + _:_) :: Int+  , head (_ + _:xs) :: Int+  , head [_ + _] :: Int+  , head (_ + _:_:_) :: Int+  , head (_ + x:_) :: Int+  , head (_ + 0:_) :: Int+  , head (_ + id _:_) :: Int+  , head (x + _:_) :: Int+  , head (0 + _:_) :: Int+  , head (id _ + _:_) :: Int+  , head (insert _ _) :: Int+  , head (insert _ xs) :: Int+  , head (insert _ []) :: Int+  , head (insert _ (_:_)) :: Int+  , head (insert x _) :: Int+  , head (insert 0 _) :: Int+  , head (insert (id _) _) :: Int+  , head (_ ++ _) :: Int+  , head (_ ++ xs) :: Int+  , head (_ ++ ys) :: Int+  , head (_ ++ []) :: Int+  , head (_ ++ [0]) :: Int+  , head (_ ++ tail _) :: Int+  , head (_ ++ (_:_)) :: Int+  , head (_ ++ (_:xs)) :: Int+  , head (_ ++ [_]) :: Int+  , head (_ ++ (_:_:_)) :: Int+  , head (_ ++ (x:_)) :: Int+  , head (_ ++ (0:_)) :: Int+  , head (_ ++ (id _:_)) :: Int+  , head (_ ++ (_ ++ _)) :: Int+  , head (xs ++ _) :: Int+  , head (xs ++ xs) :: Int+  , head (xs ++ []) :: Int+  , head (xs ++ (_:_)) :: Int+  , head (ys ++ _) :: Int+  , head ([] ++ _) :: Int+  , head ([] ++ xs) :: Int+  , head ([] ++ []) :: Int+  , head ([] ++ (_:_)) :: Int+  , head ([0] ++ _) :: Int+  , head (tail _ ++ _) :: Int+  , head ((_:_) ++ _) :: Int+  , head ((_:_) ++ xs) :: Int+  , head ((_:_) ++ []) :: Int+  , head ((_:_) ++ (_:_)) :: Int+  , head ((_:xs) ++ _) :: Int+  , head ([_] ++ _) :: Int+  , head ((_:_:_) ++ _) :: Int+  , head ((x:_) ++ _) :: Int+  , head ((0:_) ++ _) :: Int+  , head ((id _:_) ++ _) :: Int+  , head ((_ ++ _) ++ _) :: Int+  , sort _ :: [Int]+  , sort xs :: [Int]+  , sort ys :: [Int]+  , sort [] :: [Int]+  , sort [0] :: [Int]+  , sort (tail _) :: [Int]+  , sort (_:_) :: [Int]+  , sort (_:xs) :: [Int]+  , sort [_] :: [Int]+  , sort (_:_:_) :: [Int]+  , sort (x:_) :: [Int]+  , sort (0:_) :: [Int]+  , sort (id _:_) :: [Int]+  , sort (_ ++ _) :: [Int]+  , tail _ :: [Int]+  , tail xs :: [Int]+  , tail ys :: [Int]+  , tail zs :: [Int]+  , tail [] :: [Int]+  , tail [0] :: [Int]+  , tail [1] :: [Int]+  , tail [0,0] :: [Int]+  , tail (sort _) :: [Int]+  , tail (tail _) :: [Int]+  , tail (tail xs) :: [Int]+  , tail (tail []) :: [Int]+  , tail (tail (_:_)) :: [Int]+  , tail (_:_) :: [Int]+  , tail (_:xs) :: [Int]+  , tail (_:ys) :: [Int]+  , tail [_] :: [Int]+  , tail (_:[0]) :: [Int]+  , tail (_:tail _) :: [Int]+  , tail (_:_:_) :: [Int]+  , tail (_:_:xs) :: [Int]+  , tail [_,_] :: [Int]+  , tail (_:_:_:_) :: [Int]+  , tail (_:x:_) :: [Int]+  , tail (_:0:_) :: [Int]+  , tail (_:id _:_) :: [Int]+  , tail (_:(_ ++ _)) :: [Int]+  , tail (x:_) :: [Int]+  , tail (x:xs) :: [Int]+  , tail [x] :: [Int]+  , tail (x:_:_) :: [Int]+  , tail (y:_) :: [Int]+  , tail (0:_) :: [Int]+  , tail (0:xs) :: [Int]+  , tail [0] :: [Int]+  , tail (0:_:_) :: [Int]+  , tail (1:_) :: [Int]+  , tail (ord _:_) :: [Int]+  , tail (id _:_) :: [Int]+  , tail (id _:xs) :: [Int]+  , tail [id _] :: [Int]+  , tail (id _:_:_) :: [Int]+  , tail (id x:_) :: [Int]+  , tail (id 0:_) :: [Int]+  , tail (id (id _):_) :: [Int]+  , tail (abs _:_) :: [Int]+  , tail (negate _:_) :: [Int]+  , tail (head _:_) :: [Int]+  , tail (_ + _:_) :: [Int]+  , tail (insert _ _) :: [Int]+  , tail (_ ++ _) :: [Int]+  , tail (_ ++ xs) :: [Int]+  , tail (_ ++ []) :: [Int]+  , tail (_ ++ (_:_)) :: [Int]+  , tail (xs ++ _) :: [Int]+  , tail ([] ++ _) :: [Int]+  , tail ((_:_) ++ _) :: [Int]+  , (_ &&) :: Bool -> Bool+  , (p &&) :: Bool -> Bool+  , (False &&) :: Bool -> Bool+  , (True &&) :: Bool -> Bool+  , (not _ &&) :: Bool -> Bool+  , (_ ||) :: Bool -> Bool+  , (p ||) :: Bool -> Bool+  , (q ||) :: Bool -> Bool+  , (False ||) :: Bool -> Bool+  , (True ||) :: Bool -> Bool+  , (not _ ||) :: Bool -> Bool+  , (not p ||) :: Bool -> Bool+  , (not False ||) :: Bool -> Bool+  , (not True ||) :: Bool -> Bool+  , (not (not _) ||) :: Bool -> Bool+  , ((_ || _) ||) :: Bool -> Bool+  , (_ ==>) :: Bool -> Bool+  , (_ *) :: Int -> Int+  , (x *) :: Int -> Int+  , (y *) :: Int -> Int+  , (0 *) :: Int -> Int+  , (1 *) :: Int -> Int+  , (ord _ *) :: Int -> Int+  , (id _ *) :: Int -> Int+  , (id x *) :: Int -> Int+  , (id 0 *) :: Int -> Int+  , (id (id _) *) :: Int -> Int+  , (abs _ *) :: Int -> Int+  , (negate _ *) :: Int -> Int+  , (head _ *) :: Int -> Int+  , ((_ + _) *) :: Int -> Int+  , (_ +) :: Int -> Int+  , (x +) :: Int -> Int+  , (y +) :: Int -> Int+  , (z +) :: Int -> Int+  , (0 +) :: Int -> Int+  , (1 +) :: Int -> Int+  , ((-1) +) :: Int -> Int+  , (f _ +) :: Int -> Int+  , (ord _ +) :: Int -> Int+  , (ord c +) :: Int -> Int+  , (ord 'a' +) :: Int -> Int+  , (id _ +) :: Int -> Int+  , (id x +) :: Int -> Int+  , (id y +) :: Int -> Int+  , (id 0 +) :: Int -> Int+  , (id 1 +) :: Int -> Int+  , (id (ord _) +) :: Int -> Int+  , (id (id _) +) :: Int -> Int+  , (id (id x) +) :: Int -> Int+  , (id (id 0) +) :: Int -> Int+  , (id (id (id _)) +) :: Int -> Int+  , (id (abs _) +) :: Int -> Int+  , (id (negate _) +) :: Int -> Int+  , (id (head _) +) :: Int -> Int+  , (id (_ + _) +) :: Int -> Int+  , (abs _ +) :: Int -> Int+  , (abs x +) :: Int -> Int+  , (abs 0 +) :: Int -> Int+  , (abs (id _) +) :: Int -> Int+  , (negate _ +) :: Int -> Int+  , (negate x +) :: Int -> Int+  , (negate 0 +) :: Int -> Int+  , (negate (id _) +) :: Int -> Int+  , (head _ +) :: Int -> Int+  , (head xs +) :: Int -> Int+  , (head [] +) :: Int -> Int+  , (head (_:_) +) :: Int -> Int+  , (_ * _ +) :: Int -> Int+  , ((_ + _) +) :: Int -> Int+  , ((_ + x) +) :: Int -> Int+  , ((_ + 0) +) :: Int -> Int+  , ((_ + id _) +) :: Int -> Int+  , ((x + _) +) :: Int -> Int+  , ((0 + _) +) :: Int -> Int+  , ((id _ + _) +) :: Int -> Int+  , _ < _ :: Bool+  , _ && _ :: Bool+  , _ && p :: Bool+  , _ && q :: Bool+  , _ && False :: Bool+  , _ && True :: Bool+  , _ && not _ :: Bool+  , _ && not p :: Bool+  , _ && not False :: Bool+  , _ && not True :: Bool+  , _ && not (not _) :: Bool+  , _ && (_ || _) :: Bool+  , p && _ :: Bool+  , p && p :: Bool+  , p && False :: Bool+  , p && True :: Bool+  , p && not _ :: Bool+  , q && _ :: Bool+  , False && _ :: Bool+  , False && p :: Bool+  , False && False :: Bool+  , False && True :: Bool+  , False && not _ :: Bool+  , True && _ :: Bool+  , True && p :: Bool+  , True && False :: Bool+  , True && True :: Bool+  , True && not _ :: Bool+  , not _ && _ :: Bool+  , not _ && p :: Bool+  , not _ && False :: Bool+  , not _ && True :: Bool+  , not _ && not _ :: Bool+  , not p && _ :: Bool+  , not False && _ :: Bool+  , not True && _ :: Bool+  , not (not _) && _ :: Bool+  , (_ || _) && _ :: Bool+  , _ <= _ :: Bool+  , _ <= p :: Bool+  , _ <= False :: Bool+  , _ <= True :: Bool+  , _ <= not _ :: Bool+  , p <= _ :: Bool+  , False <= _ :: Bool+  , True <= _ :: Bool+  , not _ <= _ :: Bool+  , _ == _ :: Bool+  , _ == p :: Bool+  , _ == q :: Bool+  , _ == False :: Bool+  , _ == True :: Bool+  , _ == not _ :: Bool+  , _ == not p :: Bool+  , _ == not False :: Bool+  , _ == not True :: Bool+  , _ == not (not _) :: Bool+  , _ == (_ || _) :: Bool+  , p == _ :: Bool+  , p == p :: Bool+  , p == False :: Bool+  , p == True :: Bool+  , p == not _ :: Bool+  , q == _ :: Bool+  , False == _ :: Bool+  , False == p :: Bool+  , False == False :: Bool+  , False == True :: Bool+  , False == not _ :: Bool+  , True == _ :: Bool+  , True == p :: Bool+  , True == False :: Bool+  , True == True :: Bool+  , True == not _ :: Bool+  , not _ == _ :: Bool+  , not _ == p :: Bool+  , not _ == False :: Bool+  , not _ == True :: Bool+  , not _ == not _ :: Bool+  , not p == _ :: Bool+  , not False == _ :: Bool+  , not True == _ :: Bool+  , not (not _) == _ :: Bool+  , (_ || _) == _ :: Bool+  , _ || _ :: Bool+  , _ || p :: Bool+  , _ || q :: Bool+  , _ || r :: Bool+  , _ || False :: Bool+  , _ || True :: Bool+  , _ || not _ :: Bool+  , _ || not p :: Bool+  , _ || not q :: Bool+  , _ || not False :: Bool+  , _ || not True :: Bool+  , _ || not (not _) :: Bool+  , _ || not (not p) :: Bool+  , _ || not (not False) :: Bool+  , _ || not (not True) :: Bool+  , _ || not (not (not _)) :: Bool+  , _ || not (_ || _) :: Bool+  , _ || odd _ :: Bool+  , _ || even _ :: Bool+  , _ || _ && _ :: Bool+  , _ || _ == _ :: Bool+  , _ || (_ || _) :: Bool+  , _ || (_ || p) :: Bool+  , _ || (_ || False) :: Bool+  , _ || (_ || True) :: Bool+  , _ || (_ || not _) :: Bool+  , _ || (p || _) :: Bool+  , _ || (False || _) :: Bool+  , _ || (True || _) :: Bool+  , _ || (not _ || _) :: Bool+  , _ || _ == _ :: Bool+  , _ || elem _ _ :: Bool+  , p || _ :: Bool+  , p || p :: Bool+  , p || q :: Bool+  , p || False :: Bool+  , p || True :: Bool+  , p || not _ :: Bool+  , p || not p :: Bool+  , p || not False :: Bool+  , p || not True :: Bool+  , p || not (not _) :: Bool+  , p || (_ || _) :: Bool+  , q || _ :: Bool+  , q || p :: Bool+  , q || False :: Bool+  , q || True :: Bool+  , q || not _ :: Bool+  , r || _ :: Bool+  , False || _ :: Bool+  , False || p :: Bool+  , False || q :: Bool+  , False || False :: Bool+  , False || True :: Bool+  , False || not _ :: Bool+  , False || not p :: Bool+  , False || not False :: Bool+  , False || not True :: Bool+  , False || not (not _) :: Bool+  , False || (_ || _) :: Bool+  , True || _ :: Bool+  , True || p :: Bool+  , True || q :: Bool+  , True || False :: Bool+  , True || True :: Bool+  , True || not _ :: Bool+  , True || not p :: Bool+  , True || not False :: Bool+  , True || not True :: Bool+  , True || not (not _) :: Bool+  , True || (_ || _) :: Bool+  , not _ || _ :: Bool+  , not _ || p :: Bool+  , not _ || q :: Bool+  , not _ || False :: Bool+  , not _ || True :: Bool+  , not _ || not _ :: Bool+  , not _ || not p :: Bool+  , not _ || not False :: Bool+  , not _ || not True :: Bool+  , not _ || not (not _) :: Bool+  , not _ || (_ || _) :: Bool+  , not p || _ :: Bool+  , not p || p :: Bool+  , not p || False :: Bool+  , not p || True :: Bool+  , not p || not _ :: Bool+  , not q || _ :: Bool+  , not False || _ :: Bool+  , not False || p :: Bool+  , not False || False :: Bool+  , not False || True :: Bool+  , not False || not _ :: Bool+  , not True || _ :: Bool+  , not True || p :: Bool+  , not True || False :: Bool+  , not True || True :: Bool+  , not True || not _ :: Bool+  , not (not _) || _ :: Bool+  , not (not _) || p :: Bool+  , not (not _) || False :: Bool+  , not (not _) || True :: Bool+  , not (not _) || not _ :: Bool+  , not (not p) || _ :: Bool+  , not (not False) || _ :: Bool+  , not (not True) || _ :: Bool+  , not (not (not _)) || _ :: Bool+  , not (_ || _) || _ :: Bool+  , odd _ || _ :: Bool+  , even _ || _ :: Bool+  , _ && _ || _ :: Bool+  , _ == _ || _ :: Bool+  , (_ || _) || _ :: Bool+  , (_ || _) || p :: Bool+  , (_ || _) || False :: Bool+  , (_ || _) || True :: Bool+  , (_ || _) || not _ :: Bool+  , (_ || p) || _ :: Bool+  , (_ || False) || _ :: Bool+  , (_ || True) || _ :: Bool+  , (_ || not _) || _ :: Bool+  , (p || _) || _ :: Bool+  , (False || _) || _ :: Bool+  , (True || _) || _ :: Bool+  , (not _ || _) || _ :: Bool+  , _ == _ || _ :: Bool+  , elem _ _ || _ :: Bool+  , _ ==> _ :: Bool+  , _ ==> p :: Bool+  , _ ==> False :: Bool+  , _ ==> True :: Bool+  , _ ==> not _ :: Bool+  , p ==> _ :: Bool+  , False ==> _ :: Bool+  , True ==> _ :: Bool+  , not _ ==> _ :: Bool+  , _ < _ :: Bool+  , _ <= _ :: Bool+  , _ <= x :: Bool+  , _ <= 0 :: Bool+  , _ <= id _ :: Bool+  , x <= _ :: Bool+  , 0 <= _ :: Bool+  , id _ <= _ :: Bool+  , _ == _ :: Bool+  , _ == x :: Bool+  , _ == y :: Bool+  , _ == 0 :: Bool+  , _ == 1 :: Bool+  , _ == ord _ :: Bool+  , _ == id _ :: Bool+  , _ == id x :: Bool+  , _ == id 0 :: Bool+  , _ == id (id _) :: Bool+  , _ == abs _ :: Bool+  , _ == negate _ :: Bool+  , _ == head _ :: Bool+  , _ == _ + _ :: Bool+  , x == _ :: Bool+  , x == x :: Bool+  , x == 0 :: Bool+  , x == id _ :: Bool+  , y == _ :: Bool+  , 0 == _ :: Bool+  , 0 == x :: Bool+  , 0 == 0 :: Bool+  , 0 == id _ :: Bool+  , 1 == _ :: Bool+  , ord _ == _ :: Bool+  , id _ == _ :: Bool+  , id _ == x :: Bool+  , id _ == 0 :: Bool+  , id _ == id _ :: Bool+  , id x == _ :: Bool+  , id 0 == _ :: Bool+  , id (id _) == _ :: Bool+  , abs _ == _ :: Bool+  , negate _ == _ :: Bool+  , head _ == _ :: Bool+  , _ + _ == _ :: Bool+  , _ * _ :: Int+  , _ * x :: Int+  , _ * y :: Int+  , _ * z :: Int+  , _ * 0 :: Int+  , _ * 1 :: Int+  , _ * (-1) :: Int+  , _ * f _ :: Int+  , _ * ord _ :: Int+  , _ * ord c :: Int+  , _ * ord 'a' :: Int+  , _ * id _ :: Int+  , _ * id x :: Int+  , _ * id y :: Int+  , _ * id 0 :: Int+  , _ * id 1 :: Int+  , _ * id (ord _) :: Int+  , _ * id (id _) :: Int+  , _ * id (id x) :: Int+  , _ * id (id 0) :: Int+  , _ * id (id (id _)) :: Int+  , _ * id (abs _) :: Int+  , _ * id (negate _) :: Int+  , _ * id (head _) :: Int+  , _ * id (_ + _) :: Int+  , _ * abs _ :: Int+  , _ * abs x :: Int+  , _ * abs 0 :: Int+  , _ * abs (id _) :: Int+  , _ * negate _ :: Int+  , _ * negate x :: Int+  , _ * negate 0 :: Int+  , _ * negate (id _) :: Int+  , _ * head _ :: Int+  , _ * head xs :: Int+  , _ * head [] :: Int+  , _ * head (_:_) :: Int+  , _ * (_ * _) :: Int+  , _ * (_ + _) :: Int+  , _ * (_ + x) :: Int+  , _ * (_ + 0) :: Int+  , _ * (_ + id _) :: Int+  , _ * (x + _) :: Int+  , _ * (0 + _) :: Int+  , _ * (id _ + _) :: Int+  , x * _ :: Int+  , x * x :: Int+  , x * y :: Int+  , x * 0 :: Int+  , x * 1 :: Int+  , x * ord _ :: Int+  , x * id _ :: Int+  , x * id x :: Int+  , x * id 0 :: Int+  , x * id (id _) :: Int+  , x * abs _ :: Int+  , x * negate _ :: Int+  , x * head _ :: Int+  , x * (_ + _) :: Int+  , y * _ :: Int+  , y * x :: Int+  , y * 0 :: Int+  , y * id _ :: Int+  , z * _ :: Int+  , 0 * _ :: Int+  , 0 * x :: Int+  , 0 * y :: Int+  , 0 * 0 :: Int+  , 0 * 1 :: Int+  , 0 * ord _ :: Int+  , 0 * id _ :: Int+  , 0 * id x :: Int+  , 0 * id 0 :: Int+  , 0 * id (id _) :: Int+  , 0 * abs _ :: Int+  , 0 * negate _ :: Int+  , 0 * head _ :: Int+  , 0 * (_ + _) :: Int+  , 1 * _ :: Int+  , 1 * x :: Int+  , 1 * 0 :: Int+  , 1 * id _ :: Int+  , (-1) * _ :: Int+  , f _ * _ :: Int+  , ord _ * _ :: Int+  , ord _ * x :: Int+  , ord _ * 0 :: Int+  , ord _ * id _ :: Int+  , ord c * _ :: Int+  , ord 'a' * _ :: Int+  , id _ * _ :: Int+  , id _ * x :: Int+  , id _ * y :: Int+  , id _ * 0 :: Int+  , id _ * 1 :: Int+  , id _ * ord _ :: Int+  , id _ * id _ :: Int+  , id _ * id x :: Int+  , id _ * id 0 :: Int+  , id _ * id (id _) :: Int+  , id _ * abs _ :: Int+  , id _ * negate _ :: Int+  , id _ * head _ :: Int+  , id _ * (_ + _) :: Int+  , id x * _ :: Int+  , id x * x :: Int+  , id x * 0 :: Int+  , id x * id _ :: Int+  , id y * _ :: Int+  , id 0 * _ :: Int+  , id 0 * x :: Int+  , id 0 * 0 :: Int+  , id 0 * id _ :: Int+  , id 1 * _ :: Int+  , id (ord _) * _ :: Int+  , id (id _) * _ :: Int+  , id (id _) * x :: Int+  , id (id _) * 0 :: Int+  , id (id _) * id _ :: Int+  , id (id x) * _ :: Int+  , id (id 0) * _ :: Int+  , id (id (id _)) * _ :: Int+  , id (abs _) * _ :: Int+  , id (negate _) * _ :: Int+  , id (head _) * _ :: Int+  , id (_ + _) * _ :: Int+  , abs _ * _ :: Int+  , abs _ * x :: Int+  , abs _ * 0 :: Int+  , abs _ * id _ :: Int+  , abs x * _ :: Int+  , abs 0 * _ :: Int+  , abs (id _) * _ :: Int+  , negate _ * _ :: Int+  , negate _ * x :: Int+  , negate _ * 0 :: Int+  , negate _ * id _ :: Int+  , negate x * _ :: Int+  , negate 0 * _ :: Int+  , negate (id _) * _ :: Int+  , head _ * _ :: Int+  , head _ * x :: Int+  , head _ * 0 :: Int+  , head _ * id _ :: Int+  , head xs * _ :: Int+  , head [] * _ :: Int+  , head (_:_) * _ :: Int+  , (_ * _) * _ :: Int+  , (_ + _) * _ :: Int+  , (_ + _) * x :: Int+  , (_ + _) * 0 :: Int+  , (_ + _) * id _ :: Int+  , (_ + x) * _ :: Int+  , (_ + 0) * _ :: Int+  , (_ + id _) * _ :: Int+  , (x + _) * _ :: Int+  , (0 + _) * _ :: Int+  , (id _ + _) * _ :: Int+  , _ + _ :: Int+  , _ + x :: Int+  , _ + y :: Int+  , _ + z :: Int+  , _ + x' :: Int+  , _ + 0 :: Int+  , _ + 1 :: Int+  , _ + 2 :: Int+  , _ + (-1) :: Int+  , _ + f _ :: Int+  , _ + f x :: Int+  , _ + f 0 :: Int+  , _ + f (id _) :: Int+  , _ + g _ :: Int+  , _ + ord _ :: Int+  , _ + ord c :: Int+  , _ + ord d :: Int+  , _ + ord ' ' :: Int+  , _ + ord 'a' :: Int+  , _ + id _ :: Int+  , _ + id x :: Int+  , _ + id y :: Int+  , _ + id z :: Int+  , _ + id 0 :: Int+  , _ + id 1 :: Int+  , _ + id (-1) :: Int+  , _ + id (f _) :: Int+  , _ + id (ord _) :: Int+  , _ + id (ord c) :: Int+  , _ + id (ord 'a') :: Int+  , _ + id (id _) :: Int+  , _ + id (id x) :: Int+  , _ + id (id y) :: Int+  , _ + id (id 0) :: Int+  , _ + id (id 1) :: Int+  , _ + id (id (ord _)) :: Int+  , _ + id (id (id _)) :: Int+  , _ + id (id (id x)) :: Int+  , _ + id (id (id 0)) :: Int+  , _ + id (id (id (id _))) :: Int+  , _ + id (id (abs _)) :: Int+  , _ + id (id (negate _)) :: Int+  , _ + id (id (head _)) :: Int+  , _ + id (id (_ + _)) :: Int+  , _ + id (abs _) :: Int+  , _ + id (abs x) :: Int+  , _ + id (abs 0) :: Int+  , _ + id (abs (id _)) :: Int+  , _ + id (negate _) :: Int+  , _ + id (negate x) :: Int+  , _ + id (negate 0) :: Int+  , _ + id (negate (id _)) :: Int+  , _ + id (head _) :: Int+  , _ + id (head xs) :: Int+  , _ + id (head []) :: Int+  , _ + id (head (_:_)) :: Int+  , _ + id (_ * _) :: Int+  , _ + id (_ + _) :: Int+  , _ + id (_ + x) :: Int+  , _ + id (_ + 0) :: Int+  , _ + id (_ + id _) :: Int+  , _ + id (x + _) :: Int+  , _ + id (0 + _) :: Int+  , _ + id (id _ + _) :: Int+  , _ + abs _ :: Int+  , _ + abs x :: Int+  , _ + abs y :: Int+  , _ + abs 0 :: Int+  , _ + abs 1 :: Int+  , _ + abs (ord _) :: Int+  , _ + abs (id _) :: Int+  , _ + abs (id x) :: Int+  , _ + abs (id 0) :: Int+  , _ + abs (id (id _)) :: Int+  , _ + abs (abs _) :: Int+  , _ + abs (negate _) :: Int+  , _ + abs (head _) :: Int+  , _ + abs (_ + _) :: Int+  , _ + negate _ :: Int+  , _ + negate x :: Int+  , _ + negate y :: Int+  , _ + negate 0 :: Int+  , _ + negate 1 :: Int+  , _ + negate (ord _) :: Int+  , _ + negate (id _) :: Int+  , _ + negate (id x) :: Int+  , _ + negate (id 0) :: Int+  , _ + negate (id (id _)) :: Int+  , _ + negate (abs _) :: Int+  , _ + negate (negate _) :: Int+  , _ + negate (head _) :: Int+  , _ + negate (_ + _) :: Int+  , _ + head _ :: Int+  , _ + head xs :: Int+  , _ + head ys :: Int+  , _ + head [] :: Int+  , _ + head [0] :: Int+  , _ + head (tail _) :: Int+  , _ + head (_:_) :: Int+  , _ + head (_:xs) :: Int+  , _ + head [_] :: Int+  , _ + head (_:_:_) :: Int+  , _ + head (x:_) :: Int+  , _ + head (0:_) :: Int+  , _ + head (id _:_) :: Int+  , _ + head (_ ++ _) :: Int+  , _ + _ * _ :: Int+  , _ + _ * x :: Int+  , _ + _ * 0 :: Int+  , _ + _ * id _ :: Int+  , _ + x * _ :: Int+  , _ + 0 * _ :: Int+  , _ + id _ * _ :: Int+  , _ + (_ + _) :: Int+  , _ + (_ + x) :: Int+  , _ + (_ + y) :: Int+  , _ + (_ + 0) :: Int+  , _ + (_ + 1) :: Int+  , _ + (_ + ord _) :: Int+  , _ + (_ + id _) :: Int+  , _ + (_ + id x) :: Int+  , _ + (_ + id 0) :: Int+  , _ + (_ + id (id _)) :: Int+  , _ + (_ + abs _) :: Int+  , _ + (_ + negate _) :: Int+  , _ + (_ + head _) :: Int+  , _ + (_ + (_ + _)) :: Int+  , _ + (x + _) :: Int+  , _ + (x + x) :: Int+  , _ + (x + 0) :: Int+  , _ + (x + id _) :: Int+  , _ + (y + _) :: Int+  , _ + (0 + _) :: Int+  , _ + (0 + x) :: Int+  , _ + (0 + 0) :: Int+  , _ + (0 + id _) :: Int+  , _ + (1 + _) :: Int+  , _ + (ord _ + _) :: Int+  , _ + (id _ + _) :: Int+  , _ + (id _ + x) :: Int+  , _ + (id _ + 0) :: Int+  , _ + (id _ + id _) :: Int+  , _ + (id x + _) :: Int+  , _ + (id 0 + _) :: Int+  , _ + (id (id _) + _) :: Int+  , _ + (abs _ + _) :: Int+  , _ + (negate _ + _) :: Int+  , _ + (head _ + _) :: Int+  , _ + ((_ + _) + _) :: Int+  , x + _ :: Int+  , x + x :: Int+  , x + y :: Int+  , x + z :: Int+  , x + 0 :: Int+  , x + 1 :: Int+  , x + (-1) :: Int+  , x + f _ :: Int+  , x + ord _ :: Int+  , x + ord c :: Int+  , x + ord 'a' :: Int+  , x + id _ :: Int+  , x + id x :: Int+  , x + id y :: Int+  , x + id 0 :: Int+  , x + id 1 :: Int+  , x + id (ord _) :: Int+  , x + id (id _) :: Int+  , x + id (id x) :: Int+  , x + id (id 0) :: Int+  , x + id (id (id _)) :: Int+  , x + id (abs _) :: Int+  , x + id (negate _) :: Int+  , x + id (head _) :: Int+  , x + id (_ + _) :: Int+  , x + abs _ :: Int+  , x + abs x :: Int+  , x + abs 0 :: Int+  , x + abs (id _) :: Int+  , x + negate _ :: Int+  , x + negate x :: Int+  , x + negate 0 :: Int+  , x + negate (id _) :: Int+  , x + head _ :: Int+  , x + head xs :: Int+  , x + head [] :: Int+  , x + head (_:_) :: Int+  , x + _ * _ :: Int+  , x + (_ + _) :: Int+  , x + (_ + x) :: Int+  , x + (_ + 0) :: Int+  , x + (_ + id _) :: Int+  , x + (x + _) :: Int+  , x + (0 + _) :: Int+  , x + (id _ + _) :: Int+  , y + _ :: Int+  , y + x :: Int+  , y + y :: Int+  , y + 0 :: Int+  , y + 1 :: Int+  , y + ord _ :: Int+  , y + id _ :: Int+  , y + id x :: Int+  , y + id 0 :: Int+  , y + id (id _) :: Int+  , y + abs _ :: Int+  , y + negate _ :: Int+  , y + head _ :: Int+  , y + (_ + _) :: Int+  , z + _ :: Int+  , z + x :: Int+  , z + 0 :: Int+  , z + id _ :: Int+  , x' + _ :: Int+  , 0 + _ :: Int+  , 0 + x :: Int+  , 0 + y :: Int+  , 0 + z :: Int+  , 0 + 0 :: Int+  , 0 + 1 :: Int+  , 0 + (-1) :: Int+  , 0 + f _ :: Int+  , 0 + ord _ :: Int+  , 0 + ord c :: Int+  , 0 + ord 'a' :: Int+  , 0 + id _ :: Int+  , 0 + id x :: Int+  , 0 + id y :: Int+  , 0 + id 0 :: Int+  , 0 + id 1 :: Int+  , 0 + id (ord _) :: Int+  , 0 + id (id _) :: Int+  , 0 + id (id x) :: Int+  , 0 + id (id 0) :: Int+  , 0 + id (id (id _)) :: Int+  , 0 + id (abs _) :: Int+  , 0 + id (negate _) :: Int+  , 0 + id (head _) :: Int+  , 0 + id (_ + _) :: Int+  , 0 + abs _ :: Int+  , 0 + abs x :: Int+  , 0 + abs 0 :: Int+  , 0 + abs (id _) :: Int+  , 0 + negate _ :: Int+  , 0 + negate x :: Int+  , 0 + negate 0 :: Int+  , 0 + negate (id _) :: Int+  , 0 + head _ :: Int+  , 0 + head xs :: Int+  , 0 + head [] :: Int+  , 0 + head (_:_) :: Int+  , 0 + _ * _ :: Int+  , 0 + (_ + _) :: Int+  , 0 + (_ + x) :: Int+  , 0 + (_ + 0) :: Int+  , 0 + (_ + id _) :: Int+  , 0 + (x + _) :: Int+  , 0 + (0 + _) :: Int+  , 0 + (id _ + _) :: Int+  , 1 + _ :: Int+  , 1 + x :: Int+  , 1 + y :: Int+  , 1 + 0 :: Int+  , 1 + 1 :: Int+  , 1 + ord _ :: Int+  , 1 + id _ :: Int+  , 1 + id x :: Int+  , 1 + id 0 :: Int+  , 1 + id (id _) :: Int+  , 1 + abs _ :: Int+  , 1 + negate _ :: Int+  , 1 + head _ :: Int+  , 1 + (_ + _) :: Int+  , 2 + _ :: Int+  , (-1) + _ :: Int+  , (-1) + x :: Int+  , (-1) + 0 :: Int+  , (-1) + id _ :: Int+  , f _ + _ :: Int+  , f _ + x :: Int+  , f _ + 0 :: Int+  , f _ + id _ :: Int+  , f x + _ :: Int+  , f 0 + _ :: Int+  , f (id _) + _ :: Int+  , g _ + _ :: Int+  , ord _ + _ :: Int+  , ord _ + x :: Int+  , ord _ + y :: Int+  , ord _ + 0 :: Int+  , ord _ + 1 :: Int+  , ord _ + ord _ :: Int+  , ord _ + id _ :: Int+  , ord _ + id x :: Int+  , ord _ + id 0 :: Int+  , ord _ + id (id _) :: Int+  , ord _ + abs _ :: Int+  , ord _ + negate _ :: Int+  , ord _ + head _ :: Int+  , ord _ + (_ + _) :: Int+  , ord c + _ :: Int+  , ord c + x :: Int+  , ord c + 0 :: Int+  , ord c + id _ :: Int+  , ord d + _ :: Int+  , ord ' ' + _ :: Int+  , ord 'a' + _ :: Int+  , ord 'a' + x :: Int+  , ord 'a' + 0 :: Int+  , ord 'a' + id _ :: Int+  , id _ + _ :: Int+  , id _ + x :: Int+  , id _ + y :: Int+  , id _ + z :: Int+  , id _ + 0 :: Int+  , id _ + 1 :: Int+  , id _ + (-1) :: Int+  , id _ + f _ :: Int+  , id _ + ord _ :: Int+  , id _ + ord c :: Int+  , id _ + ord 'a' :: Int+  , id _ + id _ :: Int+  , id _ + id x :: Int+  , id _ + id y :: Int+  , id _ + id 0 :: Int+  , id _ + id 1 :: Int+  , id _ + id (ord _) :: Int+  , id _ + id (id _) :: Int+  , id _ + id (id x) :: Int+  , id _ + id (id 0) :: Int+  , id _ + id (id (id _)) :: Int+  , id _ + id (abs _) :: Int+  , id _ + id (negate _) :: Int+  , id _ + id (head _) :: Int+  , id _ + id (_ + _) :: Int+  , id _ + abs _ :: Int+  , id _ + abs x :: Int+  , id _ + abs 0 :: Int+  , id _ + abs (id _) :: Int+  , id _ + negate _ :: Int+  , id _ + negate x :: Int+  , id _ + negate 0 :: Int+  , id _ + negate (id _) :: Int+  , id _ + head _ :: Int+  , id _ + head xs :: Int+  , id _ + head [] :: Int+  , id _ + head (_:_) :: Int+  , id _ + _ * _ :: Int+  , id _ + (_ + _) :: Int+  , id _ + (_ + x) :: Int+  , id _ + (_ + 0) :: Int+  , id _ + (_ + id _) :: Int+  , id _ + (x + _) :: Int+  , id _ + (0 + _) :: Int+  , id _ + (id _ + _) :: Int+  , id x + _ :: Int+  , id x + x :: Int+  , id x + y :: Int+  , id x + 0 :: Int+  , id x + 1 :: Int+  , id x + ord _ :: Int+  , id x + id _ :: Int+  , id x + id x :: Int+  , id x + id 0 :: Int+  , id x + id (id _) :: Int+  , id x + abs _ :: Int+  , id x + negate _ :: Int+  , id x + head _ :: Int+  , id x + (_ + _) :: Int+  , id y + _ :: Int+  , id y + x :: Int+  , id y + 0 :: Int+  , id y + id _ :: Int+  , id z + _ :: Int+  , id 0 + _ :: Int+  , id 0 + x :: Int+  , id 0 + y :: Int+  , id 0 + 0 :: Int+  , id 0 + 1 :: Int+  , id 0 + ord _ :: Int+  , id 0 + id _ :: Int+  , id 0 + id x :: Int+  , id 0 + id 0 :: Int+  , id 0 + id (id _) :: Int+  , id 0 + abs _ :: Int+  , id 0 + negate _ :: Int+  , id 0 + head _ :: Int+  , id 0 + (_ + _) :: Int+  , id 1 + _ :: Int+  , id 1 + x :: Int+  , id 1 + 0 :: Int+  , id 1 + id _ :: Int+  , id (-1) + _ :: Int+  , id (f _) + _ :: Int+  , id (ord _) + _ :: Int+  , id (ord _) + x :: Int+  , id (ord _) + 0 :: Int+  , id (ord _) + id _ :: Int+  , id (ord c) + _ :: Int+  , id (ord 'a') + _ :: Int+  , id (id _) + _ :: Int+  , id (id _) + x :: Int+  , id (id _) + y :: Int+  , id (id _) + 0 :: Int+  , id (id _) + 1 :: Int+  , id (id _) + ord _ :: Int+  , id (id _) + id _ :: Int+  , id (id _) + id x :: Int+  , id (id _) + id 0 :: Int+  , id (id _) + id (id _) :: Int+  , id (id _) + abs _ :: Int+  , id (id _) + negate _ :: Int+  , id (id _) + head _ :: Int+  , id (id _) + (_ + _) :: Int+  , id (id x) + _ :: Int+  , id (id x) + x :: Int+  , id (id x) + 0 :: Int+  , id (id x) + id _ :: Int+  , id (id y) + _ :: Int+  , id (id 0) + _ :: Int+  , id (id 0) + x :: Int+  , id (id 0) + 0 :: Int+  , id (id 0) + id _ :: Int+  , id (id 1) + _ :: Int+  , id (id (ord _)) + _ :: Int+  , id (id (id _)) + _ :: Int+  , id (id (id _)) + x :: Int+  , id (id (id _)) + 0 :: Int+  , id (id (id _)) + id _ :: Int+  , id (id (id x)) + _ :: Int+  , id (id (id 0)) + _ :: Int+  , id (id (id (id _))) + _ :: Int+  , id (id (abs _)) + _ :: Int+  , id (id (negate _)) + _ :: Int+  , id (id (head _)) + _ :: Int+  , id (id (_ + _)) + _ :: Int+  , id (abs _) + _ :: Int+  , id (abs _) + x :: Int+  , id (abs _) + 0 :: Int+  , id (abs _) + id _ :: Int+  , id (abs x) + _ :: Int+  , id (abs 0) + _ :: Int+  , id (abs (id _)) + _ :: Int+  , id (negate _) + _ :: Int+  , id (negate _) + x :: Int+  , id (negate _) + 0 :: Int+  , id (negate _) + id _ :: Int+  , id (negate x) + _ :: Int+  , id (negate 0) + _ :: Int+  , id (negate (id _)) + _ :: Int+  , id (head _) + _ :: Int+  , id (head _) + x :: Int+  , id (head _) + 0 :: Int+  , id (head _) + id _ :: Int+  , id (head xs) + _ :: Int+  , id (head []) + _ :: Int+  , id (head (_:_)) + _ :: Int+  , id (_ * _) + _ :: Int+  , id (_ + _) + _ :: Int+  , id (_ + _) + x :: Int+  , id (_ + _) + 0 :: Int+  , id (_ + _) + id _ :: Int+  , id (_ + x) + _ :: Int+  , id (_ + 0) + _ :: Int+  , id (_ + id _) + _ :: Int+  , id (x + _) + _ :: Int+  , id (0 + _) + _ :: Int+  , id (id _ + _) + _ :: Int+  , abs _ + _ :: Int+  , abs _ + x :: Int+  , abs _ + y :: Int+  , abs _ + 0 :: Int+  , abs _ + 1 :: Int+  , abs _ + ord _ :: Int+  , abs _ + id _ :: Int+  , abs _ + id x :: Int+  , abs _ + id 0 :: Int+  , abs _ + id (id _) :: Int+  , abs _ + abs _ :: Int+  , abs _ + negate _ :: Int+  , abs _ + head _ :: Int+  , abs _ + (_ + _) :: Int+  , abs x + _ :: Int+  , abs x + x :: Int+  , abs x + 0 :: Int+  , abs x + id _ :: Int+  , abs y + _ :: Int+  , abs 0 + _ :: Int+  , abs 0 + x :: Int+  , abs 0 + 0 :: Int+  , abs 0 + id _ :: Int+  , abs 1 + _ :: Int+  , abs (ord _) + _ :: Int+  , abs (id _) + _ :: Int+  , abs (id _) + x :: Int+  , abs (id _) + 0 :: Int+  , abs (id _) + id _ :: Int+  , abs (id x) + _ :: Int+  , abs (id 0) + _ :: Int+  , abs (id (id _)) + _ :: Int+  , abs (abs _) + _ :: Int+  , abs (negate _) + _ :: Int+  , abs (head _) + _ :: Int+  , abs (_ + _) + _ :: Int+  , negate _ + _ :: Int+  , negate _ + x :: Int+  , negate _ + y :: Int+  , negate _ + 0 :: Int+  , negate _ + 1 :: Int+  , negate _ + ord _ :: Int+  , negate _ + id _ :: Int+  , negate _ + id x :: Int+  , negate _ + id 0 :: Int+  , negate _ + id (id _) :: Int+  , negate _ + abs _ :: Int+  , negate _ + negate _ :: Int+  , negate _ + head _ :: Int+  , negate _ + (_ + _) :: Int+  , negate x + _ :: Int+  , negate x + x :: Int+  , negate x + 0 :: Int+  , negate x + id _ :: Int+  , negate y + _ :: Int+  , negate 0 + _ :: Int+  , negate 0 + x :: Int+  , negate 0 + 0 :: Int+  , negate 0 + id _ :: Int+  , negate 1 + _ :: Int+  , negate (ord _) + _ :: Int+  , negate (id _) + _ :: Int+  , negate (id _) + x :: Int+  , negate (id _) + 0 :: Int+  , negate (id _) + id _ :: Int+  , negate (id x) + _ :: Int+  , negate (id 0) + _ :: Int+  , negate (id (id _)) + _ :: Int+  , negate (abs _) + _ :: Int+  , negate (negate _) + _ :: Int+  , negate (head _) + _ :: Int+  , negate (_ + _) + _ :: Int+  , head _ + _ :: Int+  , head _ + x :: Int+  , head _ + y :: Int+  , head _ + 0 :: Int+  , head _ + 1 :: Int+  , head _ + ord _ :: Int+  , head _ + id _ :: Int+  , head _ + id x :: Int+  , head _ + id 0 :: Int+  , head _ + id (id _) :: Int+  , head _ + abs _ :: Int+  , head _ + negate _ :: Int+  , head _ + head _ :: Int+  , head _ + (_ + _) :: Int+  , head xs + _ :: Int+  , head xs + x :: Int+  , head xs + 0 :: Int+  , head xs + id _ :: Int+  , head ys + _ :: Int+  , head [] + _ :: Int+  , head [] + x :: Int+  , head [] + 0 :: Int+  , head [] + id _ :: Int+  , head [0] + _ :: Int+  , head (tail _) + _ :: Int+  , head (_:_) + _ :: Int+  , head (_:_) + x :: Int+  , head (_:_) + 0 :: Int+  , head (_:_) + id _ :: Int+  , head (_:xs) + _ :: Int+  , head [_] + _ :: Int+  , head (_:_:_) + _ :: Int+  , head (x:_) + _ :: Int+  , head (0:_) + _ :: Int+  , head (id _:_) + _ :: Int+  , head (_ ++ _) + _ :: Int+  , _ * _ + _ :: Int+  , _ * _ + x :: Int+  , _ * _ + 0 :: Int+  , _ * _ + id _ :: Int+  , _ * x + _ :: Int+  , _ * 0 + _ :: Int+  , _ * id _ + _ :: Int+  , x * _ + _ :: Int+  , 0 * _ + _ :: Int+  , id _ * _ + _ :: Int+  , (_ + _) + _ :: Int+  , (_ + _) + x :: Int+  , (_ + _) + y :: Int+  , (_ + _) + 0 :: Int+  , (_ + _) + 1 :: Int+  , (_ + _) + ord _ :: Int+  , (_ + _) + id _ :: Int+  , (_ + _) + id x :: Int+  , (_ + _) + id 0 :: Int+  , (_ + _) + id (id _) :: Int+  , (_ + _) + abs _ :: Int+  , (_ + _) + negate _ :: Int+  , (_ + _) + head _ :: Int+  , (_ + _) + (_ + _) :: Int+  , (_ + x) + _ :: Int+  , (_ + x) + x :: Int+  , (_ + x) + 0 :: Int+  , (_ + x) + id _ :: Int+  , (_ + y) + _ :: Int+  , (_ + 0) + _ :: Int+  , (_ + 0) + x :: Int+  , (_ + 0) + 0 :: Int+  , (_ + 0) + id _ :: Int+  , (_ + 1) + _ :: Int+  , (_ + ord _) + _ :: Int+  , (_ + id _) + _ :: Int+  , (_ + id _) + x :: Int+  , (_ + id _) + 0 :: Int+  , (_ + id _) + id _ :: Int+  , (_ + id x) + _ :: Int+  , (_ + id 0) + _ :: Int+  , (_ + id (id _)) + _ :: Int+  , (_ + abs _) + _ :: Int+  , (_ + negate _) + _ :: Int+  , (_ + head _) + _ :: Int+  , (_ + (_ + _)) + _ :: Int+  , (x + _) + _ :: Int+  , (x + _) + x :: Int+  , (x + _) + 0 :: Int+  , (x + _) + id _ :: Int+  , (x + x) + _ :: Int+  , (x + 0) + _ :: Int+  , (x + id _) + _ :: Int+  , (y + _) + _ :: Int+  , (0 + _) + _ :: Int+  , (0 + _) + x :: Int+  , (0 + _) + 0 :: Int+  , (0 + _) + id _ :: Int+  , (0 + x) + _ :: Int+  , (0 + 0) + _ :: Int+  , (0 + id _) + _ :: Int+  , (1 + _) + _ :: Int+  , (ord _ + _) + _ :: Int+  , (id _ + _) + _ :: Int+  , (id _ + _) + x :: Int+  , (id _ + _) + 0 :: Int+  , (id _ + _) + id _ :: Int+  , (id _ + x) + _ :: Int+  , (id _ + 0) + _ :: Int+  , (id _ + id _) + _ :: Int+  , (id x + _) + _ :: Int+  , (id 0 + _) + _ :: Int+  , (id (id _) + _) + _ :: Int+  , (abs _ + _) + _ :: Int+  , (negate _ + _) + _ :: Int+  , (head _ + _) + _ :: Int+  , ((_ + _) + _) + _ :: Int+  , elem _ _ :: Bool+  , elem _ xs :: Bool+  , elem _ ys :: Bool+  , elem _ [] :: Bool+  , elem _ [0] :: Bool+  , elem _ (tail _) :: Bool+  , elem _ (_:_) :: Bool+  , elem _ (_:xs) :: Bool+  , elem _ [_] :: Bool+  , elem _ (_:_:_) :: Bool+  , elem _ (x:_) :: Bool+  , elem _ (0:_) :: Bool+  , elem _ (id _:_) :: Bool+  , elem _ (_ ++ _) :: Bool+  , elem x _ :: Bool+  , elem x xs :: Bool+  , elem x [] :: Bool+  , elem x (_:_) :: Bool+  , elem y _ :: Bool+  , elem 0 _ :: Bool+  , elem 0 xs :: Bool+  , elem 0 [] :: Bool+  , elem 0 (_:_) :: Bool+  , elem 1 _ :: Bool+  , elem (ord _) _ :: Bool+  , elem (id _) _ :: Bool+  , elem (id _) xs :: Bool+  , elem (id _) [] :: Bool+  , elem (id _) (_:_) :: Bool+  , elem (id x) _ :: Bool+  , elem (id 0) _ :: Bool+  , elem (id (id _)) _ :: Bool+  , elem (abs _) _ :: Bool+  , elem (negate _) _ :: Bool+  , elem (head _) _ :: Bool+  , elem (_ + _) _ :: Bool+  , _:_ :: [Int]+  , _:xs :: [Int]+  , _:ys :: [Int]+  , _:zs :: [Int]+  , _:xs' :: [Int]+  , [_] :: [Int]+  , _:[0] :: [Int]+  , _:[1] :: [Int]+  , _:[-1] :: [Int]+  , _:[0,0] :: [Int]+  , _:[0,1] :: [Int]+  , _:[1,0] :: [Int]+  , _:[0,0,0] :: [Int]+  , _:sort _ :: [Int]+  , _:sort xs :: [Int]+  , _:sort [] :: [Int]+  , _:sort (_:_) :: [Int]+  , _:tail _ :: [Int]+  , _:tail xs :: [Int]+  , _:tail ys :: [Int]+  , _:tail [] :: [Int]+  , _:tail [0] :: [Int]+  , _:tail (tail _) :: [Int]+  , _:tail (_:_) :: [Int]+  , _:tail (_:xs) :: [Int]+  , _:tail [_] :: [Int]+  , _:tail (_:_:_) :: [Int]+  , _:tail (x:_) :: [Int]+  , _:tail (0:_) :: [Int]+  , _:tail (id _:_) :: [Int]+  , _:tail (_ ++ _) :: [Int]+  , _:_:_ :: [Int]+  , _:_:xs :: [Int]+  , _:_:ys :: [Int]+  , _:_:zs :: [Int]+  , [_,_] :: [Int]+  , _:_:[0] :: [Int]+  , _:_:[1] :: [Int]+  , _:_:[0,0] :: [Int]+  , _:_:sort _ :: [Int]+  , _:_:tail _ :: [Int]+  , _:_:tail xs :: [Int]+  , _:_:tail [] :: [Int]+  , _:_:tail (_:_) :: [Int]+  , _:_:_:_ :: [Int]+  , _:_:_:xs :: [Int]+  , _:_:_:ys :: [Int]+  , [_,_,_] :: [Int]+  , _:_:_:[0] :: [Int]+  , _:_:_:tail _ :: [Int]+  , _:_:_:_:_ :: [Int]+  , _:_:_:_:xs :: [Int]+  , [_,_,_,_] :: [Int]+  , _:_:_:_:_:_ :: [Int]+  , _:_:_:x:_ :: [Int]+  , _:_:_:0:_ :: [Int]+  , _:_:_:id _:_ :: [Int]+  , _:_:_:(_ ++ _) :: [Int]+  , _:_:x:_ :: [Int]+  , _:_:x:xs :: [Int]+  , [_,_,x] :: [Int]+  , _:_:x:_:_ :: [Int]+  , _:_:y:_ :: [Int]+  , _:_:0:_ :: [Int]+  , _:_:0:xs :: [Int]+  , [_,_,0] :: [Int]+  , _:_:0:_:_ :: [Int]+  , _:_:1:_ :: [Int]+  , _:_:ord _:_ :: [Int]+  , _:_:id _:_ :: [Int]+  , _:_:id _:xs :: [Int]+  , [_,_,id _] :: [Int]+  , _:_:id _:_:_ :: [Int]+  , _:_:id x:_ :: [Int]+  , _:_:id 0:_ :: [Int]+  , _:_:id (id _):_ :: [Int]+  , _:_:abs _:_ :: [Int]+  , _:_:negate _:_ :: [Int]+  , _:_:head _:_ :: [Int]+  , _:_:_ + _:_ :: [Int]+  , _:_:insert _ _ :: [Int]+  , _:_:(_ ++ _) :: [Int]+  , _:_:(_ ++ xs) :: [Int]+  , _:_:(_ ++ []) :: [Int]+  , _:_:(_ ++ (_:_)) :: [Int]+  , _:_:(xs ++ _) :: [Int]+  , _:_:([] ++ _) :: [Int]+  , _:_:((_:_) ++ _) :: [Int]+  , _:x:_ :: [Int]+  , _:x:xs :: [Int]+  , _:x:ys :: [Int]+  , [_,x] :: [Int]+  , _:x:[0] :: [Int]+  , _:x:tail _ :: [Int]+  , _:x:_:_ :: [Int]+  , _:x:_:xs :: [Int]+  , [_,x,_] :: [Int]+  , _:x:_:_:_ :: [Int]+  , _:x:x:_ :: [Int]+  , _:x:0:_ :: [Int]+  , _:x:id _:_ :: [Int]+  , _:x:(_ ++ _) :: [Int]+  , _:y:_ :: [Int]+  , _:y:xs :: [Int]+  , [_,y] :: [Int]+  , _:y:_:_ :: [Int]+  , _:z:_ :: [Int]+  , _:0:_ :: [Int]+  , _:0:xs :: [Int]+  , _:0:ys :: [Int]+  , [_,0] :: [Int]+  , _:0:[0] :: [Int]+  , _:0:tail _ :: [Int]+  , _:0:_:_ :: [Int]+  , _:0:_:xs :: [Int]+  , [_,0,_] :: [Int]+  , _:0:_:_:_ :: [Int]+  , _:0:x:_ :: [Int]+  , _:0:0:_ :: [Int]+  , _:0:id _:_ :: [Int]+  , _:0:(_ ++ _) :: [Int]+  , _:1:_ :: [Int]+  , _:1:xs :: [Int]+  , [_,1] :: [Int]+  , _:1:_:_ :: [Int]+  , _:(-1):_ :: [Int]+  , _:f _:_ :: [Int]+  , _:ord _:_ :: [Int]+  , _:ord _:xs :: [Int]+  , [_,ord _] :: [Int]+  , _:ord _:_:_ :: [Int]+  , _:ord c:_ :: [Int]+  , _:ord 'a':_ :: [Int]+  , _:id _:_ :: [Int]+  , _:id _:xs :: [Int]+  , _:id _:ys :: [Int]+  , [_,id _] :: [Int]+  , _:id _:[0] :: [Int]+  , _:id _:tail _ :: [Int]+  , _:id _:_:_ :: [Int]+  , _:id _:_:xs :: [Int]+  , [_,id _,_] :: [Int]+  , _:id _:_:_:_ :: [Int]+  , _:id _:x:_ :: [Int]+  , _:id _:0:_ :: [Int]+  , _:id _:id _:_ :: [Int]+  , _:id _:(_ ++ _) :: [Int]+  , _:id x:_ :: [Int]+  , _:id x:xs :: [Int]+  , [_,id x] :: [Int]+  , _:id x:_:_ :: [Int]+  , _:id y:_ :: [Int]+  , _:id 0:_ :: [Int]+  , _:id 0:xs :: [Int]+  , [_,id 0] :: [Int]+  , _:id 0:_:_ :: [Int]+  , _:id 1:_ :: [Int]+  , _:id (ord _):_ :: [Int]+  , _:id (id _):_ :: [Int]+  , _:id (id _):xs :: [Int]+  , [_,id (id _)] :: [Int]+  , _:id (id _):_:_ :: [Int]+  , _:id (id x):_ :: [Int]+  , _:id (id 0):_ :: [Int]+  , _:id (id (id _)):_ :: [Int]+  , _:id (abs _):_ :: [Int]+  , _:id (negate _):_ :: [Int]+  , _:id (head _):_ :: [Int]+  , _:id (_ + _):_ :: [Int]+  , _:abs _:_ :: [Int]+  , _:abs _:xs :: [Int]+  , [_,abs _] :: [Int]+  , _:abs _:_:_ :: [Int]+  , _:abs x:_ :: [Int]+  , _:abs 0:_ :: [Int]+  , _:abs (id _):_ :: [Int]+  , _:negate _:_ :: [Int]+  , _:negate _:xs :: [Int]+  , [_,negate _] :: [Int]+  , _:negate _:_:_ :: [Int]+  , _:negate x:_ :: [Int]+  , _:negate 0:_ :: [Int]+  , _:negate (id _):_ :: [Int]+  , _:head _:_ :: [Int]+  , _:head _:xs :: [Int]+  , [_,head _] :: [Int]+  , _:head _:_:_ :: [Int]+  , _:head xs:_ :: [Int]+  , _:head []:_ :: [Int]+  , _:head (_:_):_ :: [Int]+  , _:_ * _:_ :: [Int]+  , _:_ + _:_ :: [Int]+  , _:_ + _:xs :: [Int]+  , [_,_ + _] :: [Int]+  , _:_ + _:_:_ :: [Int]+  , _:_ + x:_ :: [Int]+  , _:_ + 0:_ :: [Int]+  , _:_ + id _:_ :: [Int]+  , _:x + _:_ :: [Int]+  , _:0 + _:_ :: [Int]+  , _:id _ + _:_ :: [Int]+  , _:insert _ _ :: [Int]+  , _:insert _ xs :: [Int]+  , _:insert _ [] :: [Int]+  , _:insert _ (_:_) :: [Int]+  , _:insert x _ :: [Int]+  , _:insert 0 _ :: [Int]+  , _:insert (id _) _ :: [Int]+  , _:(_ ++ _) :: [Int]+  , _:(_ ++ xs) :: [Int]+  , _:(_ ++ ys) :: [Int]+  , _:(_ ++ []) :: [Int]+  , _:(_ ++ [0]) :: [Int]+  , _:(_ ++ tail _) :: [Int]+  , _:(_ ++ (_:_)) :: [Int]+  , _:(_ ++ (_:xs)) :: [Int]+  , _:(_ ++ [_]) :: [Int]+  , _:(_ ++ (_:_:_)) :: [Int]+  , _:(_ ++ (x:_)) :: [Int]+  , _:(_ ++ (0:_)) :: [Int]+  , _:(_ ++ (id _:_)) :: [Int]+  , _:(_ ++ (_ ++ _)) :: [Int]+  , _:(xs ++ _) :: [Int]+  , _:(xs ++ xs) :: [Int]+  , _:(xs ++ []) :: [Int]+  , _:(xs ++ (_:_)) :: [Int]+  , _:(ys ++ _) :: [Int]+  , _:([] ++ _) :: [Int]+  , _:([] ++ xs) :: [Int]+  , _:([] ++ []) :: [Int]+  , _:([] ++ (_:_)) :: [Int]+  , _:([0] ++ _) :: [Int]+  , _:(tail _ ++ _) :: [Int]+  , _:((_:_) ++ _) :: [Int]+  , _:((_:_) ++ xs) :: [Int]+  , _:((_:_) ++ []) :: [Int]+  , _:((_:_) ++ (_:_)) :: [Int]+  , _:((_:xs) ++ _) :: [Int]+  , _:([_] ++ _) :: [Int]+  , _:((_:_:_) ++ _) :: [Int]+  , _:((x:_) ++ _) :: [Int]+  , _:((0:_) ++ _) :: [Int]+  , _:((id _:_) ++ _) :: [Int]+  , _:((_ ++ _) ++ _) :: [Int]+  , x:_ :: [Int]+  , x:xs :: [Int]+  , x:ys :: [Int]+  , x:zs :: [Int]+  , [x] :: [Int]+  , x:[0] :: [Int]+  , x:[1] :: [Int]+  , x:[0,0] :: [Int]+  , x:sort _ :: [Int]+  , x:tail _ :: [Int]+  , x:tail xs :: [Int]+  , x:tail [] :: [Int]+  , x:tail (_:_) :: [Int]+  , x:_:_ :: [Int]+  , x:_:xs :: [Int]+  , x:_:ys :: [Int]+  , [x,_] :: [Int]+  , x:_:[0] :: [Int]+  , x:_:tail _ :: [Int]+  , x:_:_:_ :: [Int]+  , x:_:_:xs :: [Int]+  , [x,_,_] :: [Int]+  , x:_:_:_:_ :: [Int]+  , x:_:x:_ :: [Int]+  , x:_:0:_ :: [Int]+  , x:_:id _:_ :: [Int]+  , x:_:(_ ++ _) :: [Int]+  , x:x:_ :: [Int]+  , x:x:xs :: [Int]+  , [x,x] :: [Int]+  , x:x:_:_ :: [Int]+  , x:y:_ :: [Int]+  , x:0:_ :: [Int]+  , x:0:xs :: [Int]+  , [x,0] :: [Int]+  , x:0:_:_ :: [Int]+  , x:1:_ :: [Int]+  , x:ord _:_ :: [Int]+  , x:id _:_ :: [Int]+  , x:id _:xs :: [Int]+  , [x,id _] :: [Int]+  , x:id _:_:_ :: [Int]+  , x:id x:_ :: [Int]+  , x:id 0:_ :: [Int]+  , x:id (id _):_ :: [Int]+  , x:abs _:_ :: [Int]+  , x:negate _:_ :: [Int]+  , x:head _:_ :: [Int]+  , x:_ + _:_ :: [Int]+  , x:insert _ _ :: [Int]+  , x:(_ ++ _) :: [Int]+  , x:(_ ++ xs) :: [Int]+  , x:(_ ++ []) :: [Int]+  , x:(_ ++ (_:_)) :: [Int]+  , x:(xs ++ _) :: [Int]+  , x:([] ++ _) :: [Int]+  , x:((_:_) ++ _) :: [Int]+  , y:_ :: [Int]+  , y:xs :: [Int]+  , y:ys :: [Int]+  , [y] :: [Int]+  , y:[0] :: [Int]+  , y:tail _ :: [Int]+  , y:_:_ :: [Int]+  , y:_:xs :: [Int]+  , [y,_] :: [Int]+  , y:_:_:_ :: [Int]+  , y:x:_ :: [Int]+  , y:0:_ :: [Int]+  , y:id _:_ :: [Int]+  , y:(_ ++ _) :: [Int]+  , z:_ :: [Int]+  , z:xs :: [Int]+  , [z] :: [Int]+  , z:_:_ :: [Int]+  , x':_ :: [Int]+  , 0:_ :: [Int]+  , 0:xs :: [Int]+  , 0:ys :: [Int]+  , 0:zs :: [Int]+  , [0] :: [Int]+  , 0:[0] :: [Int]+  , 0:[1] :: [Int]+  , 0:[0,0] :: [Int]+  , 0:sort _ :: [Int]+  , 0:tail _ :: [Int]+  , 0:tail xs :: [Int]+  , 0:tail [] :: [Int]+  , 0:tail (_:_) :: [Int]+  , 0:_:_ :: [Int]+  , 0:_:xs :: [Int]+  , 0:_:ys :: [Int]+  , [0,_] :: [Int]+  , 0:_:[0] :: [Int]+  , 0:_:tail _ :: [Int]+  , 0:_:_:_ :: [Int]+  , 0:_:_:xs :: [Int]+  , [0,_,_] :: [Int]+  , 0:_:_:_:_ :: [Int]+  , 0:_:x:_ :: [Int]+  , 0:_:0:_ :: [Int]+  , 0:_:id _:_ :: [Int]+  , 0:_:(_ ++ _) :: [Int]+  , 0:x:_ :: [Int]+  , 0:x:xs :: [Int]+  , [0,x] :: [Int]+  , 0:x:_:_ :: [Int]+  , 0:y:_ :: [Int]+  , 0:0:_ :: [Int]+  , 0:0:xs :: [Int]+  , [0,0] :: [Int]+  , 0:0:_:_ :: [Int]+  , 0:1:_ :: [Int]+  , 0:ord _:_ :: [Int]+  , 0:id _:_ :: [Int]+  , 0:id _:xs :: [Int]+  , [0,id _] :: [Int]+  , 0:id _:_:_ :: [Int]+  , 0:id x:_ :: [Int]+  , 0:id 0:_ :: [Int]+  , 0:id (id _):_ :: [Int]+  , 0:abs _:_ :: [Int]+  , 0:negate _:_ :: [Int]+  , 0:head _:_ :: [Int]+  , 0:_ + _:_ :: [Int]+  , 0:insert _ _ :: [Int]+  , 0:(_ ++ _) :: [Int]+  , 0:(_ ++ xs) :: [Int]+  , 0:(_ ++ []) :: [Int]+  , 0:(_ ++ (_:_)) :: [Int]+  , 0:(xs ++ _) :: [Int]+  , 0:([] ++ _) :: [Int]+  , 0:((_:_) ++ _) :: [Int]+  , 1:_ :: [Int]+  , 1:xs :: [Int]+  , 1:ys :: [Int]+  , [1] :: [Int]+  , 1:[0] :: [Int]+  , 1:tail _ :: [Int]+  , 1:_:_ :: [Int]+  , 1:_:xs :: [Int]+  , [1,_] :: [Int]+  , 1:_:_:_ :: [Int]+  , 1:x:_ :: [Int]+  , 1:0:_ :: [Int]+  , 1:id _:_ :: [Int]+  , 1:(_ ++ _) :: [Int]+  , 2:_ :: [Int]+  , (-1):_ :: [Int]+  , (-1):xs :: [Int]+  , [-1] :: [Int]+  , (-1):_:_ :: [Int]+  , f _:_ :: [Int]+  , f _:xs :: [Int]+  , [f _] :: [Int]+  , f _:_:_ :: [Int]+  , f x:_ :: [Int]+  , f 0:_ :: [Int]+  , f (id _):_ :: [Int]+  , g _:_ :: [Int]+  , ord _:_ :: [Int]+  , ord _:xs :: [Int]+  , ord _:ys :: [Int]+  , [ord _] :: [Int]+  , ord _:[0] :: [Int]+  , ord _:tail _ :: [Int]+  , ord _:_:_ :: [Int]+  , ord _:_:xs :: [Int]+  , [ord _,_] :: [Int]+  , ord _:_:_:_ :: [Int]+  , ord _:x:_ :: [Int]+  , ord _:0:_ :: [Int]+  , ord _:id _:_ :: [Int]+  , ord _:(_ ++ _) :: [Int]+  , ord c:_ :: [Int]+  , ord c:xs :: [Int]+  , [ord c] :: [Int]+  , ord c:_:_ :: [Int]+  , ord d:_ :: [Int]+  , ord ' ':_ :: [Int]+  , ord 'a':_ :: [Int]+  , ord 'a':xs :: [Int]+  , [ord 'a'] :: [Int]+  , ord 'a':_:_ :: [Int]+  , id _:_ :: [Int]+  , id _:xs :: [Int]+  , id _:ys :: [Int]+  , id _:zs :: [Int]+  , [id _] :: [Int]+  , id _:[0] :: [Int]+  , id _:[1] :: [Int]+  , id _:[0,0] :: [Int]+  , id _:sort _ :: [Int]+  , id _:tail _ :: [Int]+  , id _:tail xs :: [Int]+  , id _:tail [] :: [Int]+  , id _:tail (_:_) :: [Int]+  , id _:_:_ :: [Int]+  , id _:_:xs :: [Int]+  , id _:_:ys :: [Int]+  , [id _,_] :: [Int]+  , id _:_:[0] :: [Int]+  , id _:_:tail _ :: [Int]+  , id _:_:_:_ :: [Int]+  , id _:_:_:xs :: [Int]+  , [id _,_,_] :: [Int]+  , id _:_:_:_:_ :: [Int]+  , id _:_:x:_ :: [Int]+  , id _:_:0:_ :: [Int]+  , id _:_:id _:_ :: [Int]+  , id _:_:(_ ++ _) :: [Int]+  , id _:x:_ :: [Int]+  , id _:x:xs :: [Int]+  , [id _,x] :: [Int]+  , id _:x:_:_ :: [Int]+  , id _:y:_ :: [Int]+  , id _:0:_ :: [Int]+  , id _:0:xs :: [Int]+  , [id _,0] :: [Int]+  , id _:0:_:_ :: [Int]+  , id _:1:_ :: [Int]+  , id _:ord _:_ :: [Int]+  , id _:id _:_ :: [Int]+  , id _:id _:xs :: [Int]+  , [id _,id _] :: [Int]+  , id _:id _:_:_ :: [Int]+  , id _:id x:_ :: [Int]+  , id _:id 0:_ :: [Int]+  , id _:id (id _):_ :: [Int]+  , id _:abs _:_ :: [Int]+  , id _:negate _:_ :: [Int]+  , id _:head _:_ :: [Int]+  , id _:_ + _:_ :: [Int]+  , id _:insert _ _ :: [Int]+  , id _:(_ ++ _) :: [Int]+  , id _:(_ ++ xs) :: [Int]+  , id _:(_ ++ []) :: [Int]+  , id _:(_ ++ (_:_)) :: [Int]+  , id _:(xs ++ _) :: [Int]+  , id _:([] ++ _) :: [Int]+  , id _:((_:_) ++ _) :: [Int]+  , id x:_ :: [Int]+  , id x:xs :: [Int]+  , id x:ys :: [Int]+  , [id x] :: [Int]+  , id x:[0] :: [Int]+  , id x:tail _ :: [Int]+  , id x:_:_ :: [Int]+  , id x:_:xs :: [Int]+  , [id x,_] :: [Int]+  , id x:_:_:_ :: [Int]+  , id x:x:_ :: [Int]+  , id x:0:_ :: [Int]+  , id x:id _:_ :: [Int]+  , id x:(_ ++ _) :: [Int]+  , id y:_ :: [Int]+  , id y:xs :: [Int]+  , [id y] :: [Int]+  , id y:_:_ :: [Int]+  , id z:_ :: [Int]+  , id 0:_ :: [Int]+  , id 0:xs :: [Int]+  , id 0:ys :: [Int]+  , [id 0] :: [Int]+  , id 0:[0] :: [Int]+  , id 0:tail _ :: [Int]+  , id 0:_:_ :: [Int]+  , id 0:_:xs :: [Int]+  , [id 0,_] :: [Int]+  , id 0:_:_:_ :: [Int]+  , id 0:x:_ :: [Int]+  , id 0:0:_ :: [Int]+  , id 0:id _:_ :: [Int]+  , id 0:(_ ++ _) :: [Int]+  , id 1:_ :: [Int]+  , id 1:xs :: [Int]+  , [id 1] :: [Int]+  , id 1:_:_ :: [Int]+  , id (-1):_ :: [Int]+  , id (f _):_ :: [Int]+  , id (ord _):_ :: [Int]+  , id (ord _):xs :: [Int]+  , [id (ord _)] :: [Int]+  , id (ord _):_:_ :: [Int]+  , id (ord c):_ :: [Int]+  , id (ord 'a'):_ :: [Int]+  , id (id _):_ :: [Int]+  , id (id _):xs :: [Int]+  , id (id _):ys :: [Int]+  , [id (id _)] :: [Int]+  , id (id _):[0] :: [Int]+  , id (id _):tail _ :: [Int]+  , id (id _):_:_ :: [Int]+  , id (id _):_:xs :: [Int]+  , [id (id _),_] :: [Int]+  , id (id _):_:_:_ :: [Int]+  , id (id _):x:_ :: [Int]+  , id (id _):0:_ :: [Int]+  , id (id _):id _:_ :: [Int]+  , id (id _):(_ ++ _) :: [Int]+  , id (id x):_ :: [Int]+  , id (id x):xs :: [Int]+  , [id (id x)] :: [Int]+  , id (id x):_:_ :: [Int]+  , id (id y):_ :: [Int]+  , id (id 0):_ :: [Int]+  , id (id 0):xs :: [Int]+  , [id (id 0)] :: [Int]+  , id (id 0):_:_ :: [Int]+  , id (id 1):_ :: [Int]+  , id (id (ord _)):_ :: [Int]+  , id (id (id _)):_ :: [Int]+  , id (id (id _)):xs :: [Int]+  , [id (id (id _))] :: [Int]+  , id (id (id _)):_:_ :: [Int]+  , id (id (id x)):_ :: [Int]+  , id (id (id 0)):_ :: [Int]+  , id (id (id (id _))):_ :: [Int]+  , id (id (abs _)):_ :: [Int]+  , id (id (negate _)):_ :: [Int]+  , id (id (head _)):_ :: [Int]+  , id (id (_ + _)):_ :: [Int]+  , id (abs _):_ :: [Int]+  , id (abs _):xs :: [Int]+  , [id (abs _)] :: [Int]+  , id (abs _):_:_ :: [Int]+  , id (abs x):_ :: [Int]+  , id (abs 0):_ :: [Int]+  , id (abs (id _)):_ :: [Int]+  , id (negate _):_ :: [Int]+  , id (negate _):xs :: [Int]+  , [id (negate _)] :: [Int]+  , id (negate _):_:_ :: [Int]+  , id (negate x):_ :: [Int]+  , id (negate 0):_ :: [Int]+  , id (negate (id _)):_ :: [Int]+  , id (head _):_ :: [Int]+  , id (head _):xs :: [Int]+  , [id (head _)] :: [Int]+  , id (head _):_:_ :: [Int]+  , id (head xs):_ :: [Int]+  , id (head []):_ :: [Int]+  , id (head (_:_)):_ :: [Int]+  , id (_ * _):_ :: [Int]+  , id (_ + _):_ :: [Int]+  , id (_ + _):xs :: [Int]+  , [id (_ + _)] :: [Int]+  , id (_ + _):_:_ :: [Int]+  , id (_ + x):_ :: [Int]+  , id (_ + 0):_ :: [Int]+  , id (_ + id _):_ :: [Int]+  , id (x + _):_ :: [Int]+  , id (0 + _):_ :: [Int]+  , id (id _ + _):_ :: [Int]+  , abs _:_ :: [Int]+  , abs _:xs :: [Int]+  , abs _:ys :: [Int]+  , [abs _] :: [Int]+  , abs _:[0] :: [Int]+  , abs _:tail _ :: [Int]+  , abs _:_:_ :: [Int]+  , abs _:_:xs :: [Int]+  , [abs _,_] :: [Int]+  , abs _:_:_:_ :: [Int]+  , abs _:x:_ :: [Int]+  , abs _:0:_ :: [Int]+  , abs _:id _:_ :: [Int]+  , abs _:(_ ++ _) :: [Int]+  , abs x:_ :: [Int]+  , abs x:xs :: [Int]+  , [abs x] :: [Int]+  , abs x:_:_ :: [Int]+  , abs y:_ :: [Int]+  , abs 0:_ :: [Int]+  , abs 0:xs :: [Int]+  , [abs 0] :: [Int]+  , abs 0:_:_ :: [Int]+  , abs 1:_ :: [Int]+  , abs (ord _):_ :: [Int]+  , abs (id _):_ :: [Int]+  , abs (id _):xs :: [Int]+  , [abs (id _)] :: [Int]+  , abs (id _):_:_ :: [Int]+  , abs (id x):_ :: [Int]+  , abs (id 0):_ :: [Int]+  , abs (id (id _)):_ :: [Int]+  , abs (abs _):_ :: [Int]+  , abs (negate _):_ :: [Int]+  , abs (head _):_ :: [Int]+  , abs (_ + _):_ :: [Int]+  , negate _:_ :: [Int]+  , negate _:xs :: [Int]+  , negate _:ys :: [Int]+  , [negate _] :: [Int]+  , negate _:[0] :: [Int]+  , negate _:tail _ :: [Int]+  , negate _:_:_ :: [Int]+  , negate _:_:xs :: [Int]+  , [negate _,_] :: [Int]+  , negate _:_:_:_ :: [Int]+  , negate _:x:_ :: [Int]+  , negate _:0:_ :: [Int]+  , negate _:id _:_ :: [Int]+  , negate _:(_ ++ _) :: [Int]+  , negate x:_ :: [Int]+  , negate x:xs :: [Int]+  , [negate x] :: [Int]+  , negate x:_:_ :: [Int]+  , negate y:_ :: [Int]+  , negate 0:_ :: [Int]+  , negate 0:xs :: [Int]+  , [negate 0] :: [Int]+  , negate 0:_:_ :: [Int]+  , negate 1:_ :: [Int]+  , negate (ord _):_ :: [Int]+  , negate (id _):_ :: [Int]+  , negate (id _):xs :: [Int]+  , [negate (id _)] :: [Int]+  , negate (id _):_:_ :: [Int]+  , negate (id x):_ :: [Int]+  , negate (id 0):_ :: [Int]+  , negate (id (id _)):_ :: [Int]+  , negate (abs _):_ :: [Int]+  , negate (negate _):_ :: [Int]+  , negate (head _):_ :: [Int]+  , negate (_ + _):_ :: [Int]+  , head _:_ :: [Int]+  , head _:xs :: [Int]+  , head _:ys :: [Int]+  , [head _] :: [Int]+  , head _:[0] :: [Int]+  , head _:tail _ :: [Int]+  , head _:_:_ :: [Int]+  , head _:_:xs :: [Int]+  , [head _,_] :: [Int]+  , head _:_:_:_ :: [Int]+  , head _:x:_ :: [Int]+  , head _:0:_ :: [Int]+  , head _:id _:_ :: [Int]+  , head _:(_ ++ _) :: [Int]+  , head xs:_ :: [Int]+  , head xs:xs :: [Int]+  , [head xs] :: [Int]+  , head xs:_:_ :: [Int]+  , head ys:_ :: [Int]+  , head []:_ :: [Int]+  , head []:xs :: [Int]+  , [head []] :: [Int]+  , head []:_:_ :: [Int]+  , head [0]:_ :: [Int]+  , head (tail _):_ :: [Int]+  , head (_:_):_ :: [Int]+  , head (_:_):xs :: [Int]+  , [head (_:_)] :: [Int]+  , head (_:_):_:_ :: [Int]+  , head (_:xs):_ :: [Int]+  , head [_]:_ :: [Int]+  , head (_:_:_):_ :: [Int]+  , head (x:_):_ :: [Int]+  , head (0:_):_ :: [Int]+  , head (id _:_):_ :: [Int]+  , head (_ ++ _):_ :: [Int]+  , _ * _:_ :: [Int]+  , _ * _:xs :: [Int]+  , [_ * _] :: [Int]+  , _ * _:_:_ :: [Int]+  , _ * x:_ :: [Int]+  , _ * 0:_ :: [Int]+  , _ * id _:_ :: [Int]+  , x * _:_ :: [Int]+  , 0 * _:_ :: [Int]+  , id _ * _:_ :: [Int]+  , _ + _:_ :: [Int]+  , _ + _:xs :: [Int]+  , _ + _:ys :: [Int]+  , [_ + _] :: [Int]+  , _ + _:[0] :: [Int]+  , _ + _:tail _ :: [Int]+  , _ + _:_:_ :: [Int]+  , _ + _:_:xs :: [Int]+  , [_ + _,_] :: [Int]+  , _ + _:_:_:_ :: [Int]+  , _ + _:x:_ :: [Int]+  , _ + _:0:_ :: [Int]+  , _ + _:id _:_ :: [Int]+  , _ + _:(_ ++ _) :: [Int]+  , _ + x:_ :: [Int]+  , _ + x:xs :: [Int]+  , [_ + x] :: [Int]+  , _ + x:_:_ :: [Int]+  , _ + y:_ :: [Int]+  , _ + 0:_ :: [Int]+  , _ + 0:xs :: [Int]+  , [_ + 0] :: [Int]+  , _ + 0:_:_ :: [Int]+  , _ + 1:_ :: [Int]+  , _ + ord _:_ :: [Int]+  , _ + id _:_ :: [Int]+  , _ + id _:xs :: [Int]+  , [_ + id _] :: [Int]+  , _ + id _:_:_ :: [Int]+  , _ + id x:_ :: [Int]+  , _ + id 0:_ :: [Int]+  , _ + id (id _):_ :: [Int]+  , _ + abs _:_ :: [Int]+  , _ + negate _:_ :: [Int]+  , _ + head _:_ :: [Int]+  , _ + (_ + _):_ :: [Int]+  , x + _:_ :: [Int]+  , x + _:xs :: [Int]+  , [x + _] :: [Int]+  , x + _:_:_ :: [Int]+  , x + x:_ :: [Int]+  , x + 0:_ :: [Int]+  , x + id _:_ :: [Int]+  , y + _:_ :: [Int]+  , 0 + _:_ :: [Int]+  , 0 + _:xs :: [Int]+  , [0 + _] :: [Int]+  , 0 + _:_:_ :: [Int]+  , 0 + x:_ :: [Int]+  , 0 + 0:_ :: [Int]+  , 0 + id _:_ :: [Int]+  , 1 + _:_ :: [Int]+  , ord _ + _:_ :: [Int]+  , id _ + _:_ :: [Int]+  , id _ + _:xs :: [Int]+  , [id _ + _] :: [Int]+  , id _ + _:_:_ :: [Int]+  , id _ + x:_ :: [Int]+  , id _ + 0:_ :: [Int]+  , id _ + id _:_ :: [Int]+  , id x + _:_ :: [Int]+  , id 0 + _:_ :: [Int]+  , id (id _) + _:_ :: [Int]+  , abs _ + _:_ :: [Int]+  , negate _ + _:_ :: [Int]+  , head _ + _:_ :: [Int]+  , (_ + _) + _:_ :: [Int]+  , insert _ _ :: [Int]+  , insert _ xs :: [Int]+  , insert _ ys :: [Int]+  , insert _ [] :: [Int]+  , insert _ [0] :: [Int]+  , insert _ (tail _) :: [Int]+  , insert _ (_:_) :: [Int]+  , insert _ (_:xs) :: [Int]+  , insert _ [_] :: [Int]+  , insert _ (_:_:_) :: [Int]+  , insert _ (x:_) :: [Int]+  , insert _ (0:_) :: [Int]+  , insert _ (id _:_) :: [Int]+  , insert _ (_ ++ _) :: [Int]+  , insert x _ :: [Int]+  , insert x xs :: [Int]+  , insert x [] :: [Int]+  , insert x (_:_) :: [Int]+  , insert y _ :: [Int]+  , insert 0 _ :: [Int]+  , insert 0 xs :: [Int]+  , insert 0 [] :: [Int]+  , insert 0 (_:_) :: [Int]+  , insert 1 _ :: [Int]+  , insert (ord _) _ :: [Int]+  , insert (id _) _ :: [Int]+  , insert (id _) xs :: [Int]+  , insert (id _) [] :: [Int]+  , insert (id _) (_:_) :: [Int]+  , insert (id x) _ :: [Int]+  , insert (id 0) _ :: [Int]+  , insert (id (id _)) _ :: [Int]+  , insert (abs _) _ :: [Int]+  , insert (negate _) _ :: [Int]+  , insert (head _) _ :: [Int]+  , insert (_ + _) _ :: [Int]+  , _ ++ _ :: [Int]+  , _ ++ xs :: [Int]+  , _ ++ ys :: [Int]+  , _ ++ zs :: [Int]+  , _ ++ [] :: [Int]+  , _ ++ [0] :: [Int]+  , _ ++ [1] :: [Int]+  , _ ++ [0,0] :: [Int]+  , _ ++ sort _ :: [Int]+  , _ ++ tail _ :: [Int]+  , _ ++ tail xs :: [Int]+  , _ ++ tail [] :: [Int]+  , _ ++ tail (_:_) :: [Int]+  , _ ++ (_:_) :: [Int]+  , _ ++ (_:xs) :: [Int]+  , _ ++ (_:ys) :: [Int]+  , _ ++ [_] :: [Int]+  , _ ++ (_:[0]) :: [Int]+  , _ ++ (_:tail _) :: [Int]+  , _ ++ (_:_:_) :: [Int]+  , _ ++ (_:_:xs) :: [Int]+  , _ ++ [_,_] :: [Int]+  , _ ++ (_:_:_:_) :: [Int]+  , _ ++ (_:x:_) :: [Int]+  , _ ++ (_:0:_) :: [Int]+  , _ ++ (_:id _:_) :: [Int]+  , _ ++ (_:(_ ++ _)) :: [Int]+  , _ ++ (x:_) :: [Int]+  , _ ++ (x:xs) :: [Int]+  , _ ++ [x] :: [Int]+  , _ ++ (x:_:_) :: [Int]+  , _ ++ (y:_) :: [Int]+  , _ ++ (0:_) :: [Int]+  , _ ++ (0:xs) :: [Int]+  , _ ++ [0] :: [Int]+  , _ ++ (0:_:_) :: [Int]+  , _ ++ (1:_) :: [Int]+  , _ ++ (ord _:_) :: [Int]+  , _ ++ (id _:_) :: [Int]+  , _ ++ (id _:xs) :: [Int]+  , _ ++ [id _] :: [Int]+  , _ ++ (id _:_:_) :: [Int]+  , _ ++ (id x:_) :: [Int]+  , _ ++ (id 0:_) :: [Int]+  , _ ++ (id (id _):_) :: [Int]+  , _ ++ (abs _:_) :: [Int]+  , _ ++ (negate _:_) :: [Int]+  , _ ++ (head _:_) :: [Int]+  , _ ++ (_ + _:_) :: [Int]+  , _ ++ insert _ _ :: [Int]+  , _ ++ (_ ++ _) :: [Int]+  , _ ++ (_ ++ xs) :: [Int]+  , _ ++ (_ ++ []) :: [Int]+  , _ ++ (_ ++ (_:_)) :: [Int]+  , _ ++ (xs ++ _) :: [Int]+  , _ ++ ([] ++ _) :: [Int]+  , _ ++ ((_:_) ++ _) :: [Int]+  , xs ++ _ :: [Int]+  , xs ++ xs :: [Int]+  , xs ++ ys :: [Int]+  , xs ++ [] :: [Int]+  , xs ++ [0] :: [Int]+  , xs ++ tail _ :: [Int]+  , xs ++ (_:_) :: [Int]+  , xs ++ (_:xs) :: [Int]+  , xs ++ [_] :: [Int]+  , xs ++ (_:_:_) :: [Int]+  , xs ++ (x:_) :: [Int]+  , xs ++ (0:_) :: [Int]+  , xs ++ (id _:_) :: [Int]+  , xs ++ (_ ++ _) :: [Int]+  , ys ++ _ :: [Int]+  , ys ++ xs :: [Int]+  , ys ++ [] :: [Int]+  , ys ++ (_:_) :: [Int]+  , zs ++ _ :: [Int]+  , [] ++ _ :: [Int]+  , [] ++ xs :: [Int]+  , [] ++ ys :: [Int]+  , [] ++ [] :: [Int]+  , [] ++ [0] :: [Int]+  , [] ++ tail _ :: [Int]+  , [] ++ (_:_) :: [Int]+  , [] ++ (_:xs) :: [Int]+  , [] ++ [_] :: [Int]+  , [] ++ (_:_:_) :: [Int]+  , [] ++ (x:_) :: [Int]+  , [] ++ (0:_) :: [Int]+  , [] ++ (id _:_) :: [Int]+  , [] ++ (_ ++ _) :: [Int]+  , [0] ++ _ :: [Int]+  , [0] ++ xs :: [Int]+  , [0] ++ [] :: [Int]+  , [0] ++ (_:_) :: [Int]+  , [1] ++ _ :: [Int]+  , [0,0] ++ _ :: [Int]+  , sort _ ++ _ :: [Int]+  , tail _ ++ _ :: [Int]+  , tail _ ++ xs :: [Int]+  , tail _ ++ [] :: [Int]+  , tail _ ++ (_:_) :: [Int]+  , tail xs ++ _ :: [Int]+  , tail [] ++ _ :: [Int]+  , tail (_:_) ++ _ :: [Int]+  , (_:_) ++ _ :: [Int]+  , (_:_) ++ xs :: [Int]+  , (_:_) ++ ys :: [Int]+  , (_:_) ++ [] :: [Int]+  , (_:_) ++ [0] :: [Int]+  , (_:_) ++ tail _ :: [Int]+  , (_:_) ++ (_:_) :: [Int]+  , (_:_) ++ (_:xs) :: [Int]+  , (_:_) ++ [_] :: [Int]+  , (_:_) ++ (_:_:_) :: [Int]+  , (_:_) ++ (x:_) :: [Int]+  , (_:_) ++ (0:_) :: [Int]+  , (_:_) ++ (id _:_) :: [Int]+  , (_:_) ++ (_ ++ _) :: [Int]+  , (_:xs) ++ _ :: [Int]+  , (_:xs) ++ xs :: [Int]+  , (_:xs) ++ [] :: [Int]+  , (_:xs) ++ (_:_) :: [Int]+  , (_:ys) ++ _ :: [Int]+  , [_] ++ _ :: [Int]+  , [_] ++ xs :: [Int]+  , [_] ++ [] :: [Int]+  , [_] ++ (_:_) :: [Int]+  , (_:[0]) ++ _ :: [Int]+  , (_:tail _) ++ _ :: [Int]+  , (_:_:_) ++ _ :: [Int]+  , (_:_:_) ++ xs :: [Int]+  , (_:_:_) ++ [] :: [Int]+  , (_:_:_) ++ (_:_) :: [Int]+  , (_:_:xs) ++ _ :: [Int]+  , [_,_] ++ _ :: [Int]+  , (_:_:_:_) ++ _ :: [Int]+  , (_:x:_) ++ _ :: [Int]+  , (_:0:_) ++ _ :: [Int]+  , (_:id _:_) ++ _ :: [Int]+  , (_:(_ ++ _)) ++ _ :: [Int]+  , (x:_) ++ _ :: [Int]+  , (x:_) ++ xs :: [Int]+  , (x:_) ++ [] :: [Int]+  , (x:_) ++ (_:_) :: [Int]+  , (x:xs) ++ _ :: [Int]+  , [x] ++ _ :: [Int]+  , (x:_:_) ++ _ :: [Int]+  , (y:_) ++ _ :: [Int]+  , (0:_) ++ _ :: [Int]+  , (0:_) ++ xs :: [Int]+  , (0:_) ++ [] :: [Int]+  , (0:_) ++ (_:_) :: [Int]+  , (0:xs) ++ _ :: [Int]+  , [0] ++ _ :: [Int]+  , (0:_:_) ++ _ :: [Int]+  , (1:_) ++ _ :: [Int]+  , (ord _:_) ++ _ :: [Int]+  , (id _:_) ++ _ :: [Int]+  , (id _:_) ++ xs :: [Int]+  , (id _:_) ++ [] :: [Int]+  , (id _:_) ++ (_:_) :: [Int]+  , (id _:xs) ++ _ :: [Int]+  , [id _] ++ _ :: [Int]+  , (id _:_:_) ++ _ :: [Int]+  , (id x:_) ++ _ :: [Int]+  , (id 0:_) ++ _ :: [Int]+  , (id (id _):_) ++ _ :: [Int]+  , (abs _:_) ++ _ :: [Int]+  , (negate _:_) ++ _ :: [Int]+  , (head _:_) ++ _ :: [Int]+  , (_ + _:_) ++ _ :: [Int]+  , insert _ _ ++ _ :: [Int]+  , (_ ++ _) ++ _ :: [Int]+  , (_ ++ _) ++ xs :: [Int]+  , (_ ++ _) ++ [] :: [Int]+  , (_ ++ _) ++ (_:_) :: [Int]+  , (_ ++ xs) ++ _ :: [Int]+  , (_ ++ []) ++ _ :: [Int]+  , (_ ++ (_:_)) ++ _ :: [Int]+  , (xs ++ _) ++ _ :: [Int]+  , ([] ++ _) ++ _ :: [Int]+  , ((_:_) ++ _) ++ _ :: [Int]+  ]++sortBy compareQuickly $ take 5040 $ list  ::  [ Expr ]  =+  [ False :: Bool+  , True :: Bool+  , _ :: Bool+  , p :: Bool+  , p' :: Bool+  , q :: Bool+  , q' :: Bool+  , r :: Bool+  , ' ' :: Char+  , 'A' :: Char+  , 'a' :: Char+  , 'b' :: Char+  , 'c' :: Char+  , _ :: Char+  , c :: Char+  , c' :: Char+  , d :: Char+  , d' :: Char+  , e :: Char+  , -1 :: Int+  , -2 :: Int+  , -3 :: Int+  , 0 :: Int+  , 1 :: Int+  , 2 :: Int+  , 3 :: Int+  , _ :: Int+  , x :: Int+  , x' :: Int+  , x'' :: Int+  , y :: Int+  , y' :: Int+  , z :: Int+  , z' :: Int+  , [-1,0] :: [Int]+  , [-1] :: [Int]+  , [0,-1] :: [Int]+  , [0,0,0,0] :: [Int]+  , [0,0,0] :: [Int]+  , [0,0,1] :: [Int]+  , [0,0] :: [Int]+  , [0,1,0] :: [Int]+  , [0,1] :: [Int]+  , [0] :: [Int]+  , [1,0,0] :: [Int]+  , [1,0] :: [Int]+  , [1,1] :: [Int]+  , [1] :: [Int]+  , [2] :: [Int]+  , [] :: [Int]+  , _ :: [Int]+  , xs :: [Int]+  , xs' :: [Int]+  , ys :: [Int]+  , ys' :: [Int]+  , zs :: [Int]+  , not :: Bool -> Bool+  , f :: Int -> Int+  , g :: Int -> Int+  , h :: Int -> Int+  , abs :: Int -> Int+  , id :: Int -> Int+  , negate :: Int -> Int+  , (&&) :: Bool -> Bool -> Bool+  , (==>) :: Bool -> Bool -> Bool+  , (||) :: Bool -> Bool -> Bool+  , (*) :: Int -> Int -> Int+  , (+) :: Int -> Int -> Int+  , not False :: Bool+  , not True :: Bool+  , not _ :: Bool+  , not p :: Bool+  , not p' :: Bool+  , not q :: Bool+  , not r :: Bool+  , not (not False) :: Bool+  , not (not True) :: Bool+  , not (not _) :: Bool+  , not (not p) :: Bool+  , not (not q) :: Bool+  , not (not r) :: Bool+  , not (not (not False)) :: Bool+  , not (not (not True)) :: Bool+  , not (not (not _)) :: Bool+  , not (not (not p)) :: Bool+  , not (not (not q)) :: Bool+  , not (not (not (not False))) :: Bool+  , not (not (not (not True))) :: Bool+  , not (not (not (not _))) :: Bool+  , not (not (not (not p))) :: Bool+  , not (not (not (not (not _)))) :: Bool+  , not (not (not (_ || _))) :: Bool+  , not (not (even _)) :: Bool+  , not (not (odd _)) :: Bool+  , not (not (_ && _)) :: Bool+  , not (not (_ == _)) :: Bool+  , not (not (False || _)) :: Bool+  , not (not (True || _)) :: Bool+  , not (not (_ || False)) :: Bool+  , not (not (_ || True)) :: Bool+  , not (not (_ || _)) :: Bool+  , not (not (_ || p)) :: Bool+  , not (not (_ || not _)) :: Bool+  , not (not (p || _)) :: Bool+  , not (not (not _ || _)) :: Bool+  , not (not (_ == _)) :: Bool+  , not (not (elem _ _)) :: Bool+  , not (even 0) :: Bool+  , not (even _) :: Bool+  , not (even x) :: Bool+  , not (even (id _)) :: Bool+  , not (odd 0) :: Bool+  , not (odd _) :: Bool+  , not (odd x) :: Bool+  , not (odd (id _)) :: Bool+  , not (False && _) :: Bool+  , not (True && _) :: Bool+  , not (_ && False) :: Bool+  , not (_ && True) :: Bool+  , not (_ && _) :: Bool+  , not (_ && p) :: Bool+  , not (_ && not _) :: Bool+  , not (p && _) :: Bool+  , not (not _ && _) :: Bool+  , not (_ <= _) :: Bool+  , not (False == _) :: Bool+  , not (True == _) :: Bool+  , not (_ == False) :: Bool+  , not (_ == True) :: Bool+  , not (_ == _) :: Bool+  , not (_ == p) :: Bool+  , not (_ == not _) :: Bool+  , not (p == _) :: Bool+  , not (not _ == _) :: Bool+  , not (_ ==> _) :: Bool+  , not (False || False) :: Bool+  , not (False || True) :: Bool+  , not (False || _) :: Bool+  , not (False || p) :: Bool+  , not (False || not _) :: Bool+  , not (True || False) :: Bool+  , not (True || True) :: Bool+  , not (True || _) :: Bool+  , not (True || p) :: Bool+  , not (True || not _) :: Bool+  , not (_ || False) :: Bool+  , not (_ || True) :: Bool+  , not (_ || _) :: Bool+  , not (_ || p) :: Bool+  , not (_ || q) :: Bool+  , not (_ || not False) :: Bool+  , not (_ || not True) :: Bool+  , not (_ || not _) :: Bool+  , not (_ || not p) :: Bool+  , not (_ || not (not _)) :: Bool+  , not (_ || (_ || _)) :: Bool+  , not (p || False) :: Bool+  , not (p || True) :: Bool+  , not (p || _) :: Bool+  , not (p || p) :: Bool+  , not (p || not _) :: Bool+  , not (q || _) :: Bool+  , not (not False || _) :: Bool+  , not (not True || _) :: Bool+  , not (not _ || False) :: Bool+  , not (not _ || True) :: Bool+  , not (not _ || _) :: Bool+  , not (not _ || p) :: Bool+  , not (not _ || not _) :: Bool+  , not (not p || _) :: Bool+  , not (not (not _) || _) :: Bool+  , not ((_ || _) || _) :: Bool+  , not (_ <= _) :: Bool+  , not (0 == _) :: Bool+  , not (_ == 0) :: Bool+  , not (_ == _) :: Bool+  , not (_ == x) :: Bool+  , not (_ == id _) :: Bool+  , not (x == _) :: Bool+  , not (id _ == _) :: Bool+  , not (elem 0 _) :: Bool+  , not (elem _ []) :: Bool+  , not (elem _ _) :: Bool+  , not (elem _ xs) :: Bool+  , not (elem _ (_:_)) :: Bool+  , not (elem x _) :: Bool+  , not (elem (id _) _) :: Bool+  , ord ' ' :: Int+  , ord 'A' :: Int+  , ord 'a' :: Int+  , ord 'b' :: Int+  , ord _ :: Int+  , ord c :: Int+  , ord c' :: Int+  , ord d :: Int+  , ord e :: Int+  , even 0 :: Bool+  , even 1 :: Bool+  , even _ :: Bool+  , even x :: Bool+  , even y :: Bool+  , even (ord _) :: Bool+  , even (abs _) :: Bool+  , even (id 0) :: Bool+  , even (id _) :: Bool+  , even (id x) :: Bool+  , even (id (id _)) :: Bool+  , even (negate _) :: Bool+  , even (head _) :: Bool+  , even (_ + _) :: Bool+  , odd 0 :: Bool+  , odd 1 :: Bool+  , odd _ :: Bool+  , odd x :: Bool+  , odd y :: Bool+  , odd (ord _) :: Bool+  , odd (abs _) :: Bool+  , odd (id 0) :: Bool+  , odd (id _) :: Bool+  , odd (id x) :: Bool+  , odd (id (id _)) :: Bool+  , odd (negate _) :: Bool+  , odd (head _) :: Bool+  , odd (_ + _) :: Bool+  , f (-1) :: Int+  , f 0 :: Int+  , f 1 :: Int+  , f _ :: Int+  , f x :: Int+  , f y :: Int+  , f z :: Int+  , f (ord 'a') :: Int+  , f (ord _) :: Int+  , f (ord c) :: Int+  , f (f _) :: Int+  , f (abs 0) :: Int+  , f (abs _) :: Int+  , f (abs x) :: Int+  , f (abs (id _)) :: Int+  , f (id 0) :: Int+  , f (id 1) :: Int+  , f (id _) :: Int+  , f (id x) :: Int+  , f (id y) :: Int+  , f (id (ord _)) :: Int+  , f (id (abs _)) :: Int+  , f (id (id 0)) :: Int+  , f (id (id _)) :: Int+  , f (id (id x)) :: Int+  , f (id (id (id _))) :: Int+  , f (id (negate _)) :: Int+  , f (id (head _)) :: Int+  , f (id (_ + _)) :: Int+  , f (negate 0) :: Int+  , f (negate _) :: Int+  , f (negate x) :: Int+  , f (negate (id _)) :: Int+  , f (head []) :: Int+  , f (head _) :: Int+  , f (head xs) :: Int+  , f (head (_:_)) :: Int+  , f (_ * _) :: Int+  , f (0 + _) :: Int+  , f (_ + 0) :: Int+  , f (_ + _) :: Int+  , f (_ + x) :: Int+  , f (_ + id _) :: Int+  , f (x + _) :: Int+  , f (id _ + _) :: Int+  , f' _ :: Int+  , g 0 :: Int+  , g 1 :: Int+  , g _ :: Int+  , g x :: Int+  , g y :: Int+  , g (ord _) :: Int+  , g (abs _) :: Int+  , g (id 0) :: Int+  , g (id _) :: Int+  , g (id x) :: Int+  , g (id (id _)) :: Int+  , g (negate _) :: Int+  , g (head _) :: Int+  , g (_ + _) :: Int+  , h 0 :: Int+  , h _ :: Int+  , h x :: Int+  , h (id _) :: Int+  , abs (-1) :: Int+  , abs 0 :: Int+  , abs 1 :: Int+  , abs 2 :: Int+  , abs _ :: Int+  , abs x :: Int+  , abs x' :: Int+  , abs y :: Int+  , abs z :: Int+  , abs (ord ' ') :: Int+  , abs (ord 'a') :: Int+  , abs (ord _) :: Int+  , abs (ord c) :: Int+  , abs (ord d) :: Int+  , abs (f 0) :: Int+  , abs (f _) :: Int+  , abs (f x) :: Int+  , abs (f (id _)) :: Int+  , abs (g _) :: Int+  , abs (abs 0) :: Int+  , abs (abs 1) :: Int+  , abs (abs _) :: Int+  , abs (abs x) :: Int+  , abs (abs y) :: Int+  , abs (abs (ord _)) :: Int+  , abs (abs (abs _)) :: Int+  , abs (abs (id 0)) :: Int+  , abs (abs (id _)) :: Int+  , abs (abs (id x)) :: Int+  , abs (abs (id (id _))) :: Int+  , abs (abs (negate _)) :: Int+  , abs (abs (head _)) :: Int+  , abs (abs (_ + _)) :: Int+  , abs (id (-1)) :: Int+  , abs (id 0) :: Int+  , abs (id 1) :: Int+  , abs (id _) :: Int+  , abs (id x) :: Int+  , abs (id y) :: Int+  , abs (id z) :: Int+  , abs (id (ord 'a')) :: Int+  , abs (id (ord _)) :: Int+  , abs (id (ord c)) :: Int+  , abs (id (f _)) :: Int+  , abs (id (abs 0)) :: Int+  , abs (id (abs _)) :: Int+  , abs (id (abs x)) :: Int+  , abs (id (abs (id _))) :: Int+  , abs (id (id 0)) :: Int+  , abs (id (id 1)) :: Int+  , abs (id (id _)) :: Int+  , abs (id (id x)) :: Int+  , abs (id (id y)) :: Int+  , abs (id (id (ord _))) :: Int+  , abs (id (id (abs _))) :: Int+  , abs (id (id (id 0))) :: Int+  , abs (id (id (id _))) :: Int+  , abs (id (id (id x))) :: Int+  , abs (id (id (id (id _)))) :: Int+  , abs (id (id (negate _))) :: Int+  , abs (id (id (head _))) :: Int+  , abs (id (id (_ + _))) :: Int+  , abs (id (negate 0)) :: Int+  , abs (id (negate _)) :: Int+  , abs (id (negate x)) :: Int+  , abs (id (negate (id _))) :: Int+  , abs (id (head [])) :: Int+  , abs (id (head _)) :: Int+  , abs (id (head xs)) :: Int+  , abs (id (head (_:_))) :: Int+  , abs (id (_ * _)) :: Int+  , abs (id (0 + _)) :: Int+  , abs (id (_ + 0)) :: Int+  , abs (id (_ + _)) :: Int+  , abs (id (_ + x)) :: Int+  , abs (id (_ + id _)) :: Int+  , abs (id (x + _)) :: Int+  , abs (id (id _ + _)) :: Int+  , abs (negate 0) :: Int+  , abs (negate 1) :: Int+  , abs (negate _) :: Int+  , abs (negate x) :: Int+  , abs (negate y) :: Int+  , abs (negate (ord _)) :: Int+  , abs (negate (abs _)) :: Int+  , abs (negate (id 0)) :: Int+  , abs (negate (id _)) :: Int+  , abs (negate (id x)) :: Int+  , abs (negate (id (id _))) :: Int+  , abs (negate (negate _)) :: Int+  , abs (negate (head _)) :: Int+  , abs (negate (_ + _)) :: Int+  , abs (head [0]) :: Int+  , abs (head []) :: Int+  , abs (head _) :: Int+  , abs (head xs) :: Int+  , abs (head ys) :: Int+  , abs (head (tail _)) :: Int+  , abs (head (0:_)) :: Int+  , abs (head [_]) :: Int+  , abs (head (_:_)) :: Int+  , abs (head (_:xs)) :: Int+  , abs (head (_:_:_)) :: Int+  , abs (head (x:_)) :: Int+  , abs (head (id _:_)) :: Int+  , abs (head (_ ++ _)) :: Int+  , abs (0 * _) :: Int+  , abs (_ * 0) :: Int+  , abs (_ * _) :: Int+  , abs (_ * x) :: Int+  , abs (_ * id _) :: Int+  , abs (x * _) :: Int+  , abs (id _ * _) :: Int+  , abs (0 + 0) :: Int+  , abs (0 + _) :: Int+  , abs (0 + x) :: Int+  , abs (0 + id _) :: Int+  , abs (1 + _) :: Int+  , abs (_ + 0) :: Int+  , abs (_ + 1) :: Int+  , abs (_ + _) :: Int+  , abs (_ + x) :: Int+  , abs (_ + y) :: Int+  , abs (_ + ord _) :: Int+  , abs (_ + abs _) :: Int+  , abs (_ + id 0) :: Int+  , abs (_ + id _) :: Int+  , abs (_ + id x) :: Int+  , abs (_ + id (id _)) :: Int+  , abs (_ + negate _) :: Int+  , abs (_ + head _) :: Int+  , abs (_ + (_ + _)) :: Int+  , abs (x + 0) :: Int+  , abs (x + _) :: Int+  , abs (x + x) :: Int+  , abs (x + id _) :: Int+  , abs (y + _) :: Int+  , abs (ord _ + _) :: Int+  , abs (abs _ + _) :: Int+  , abs (id 0 + _) :: Int+  , abs (id _ + 0) :: Int+  , abs (id _ + _) :: Int+  , abs (id _ + x) :: Int+  , abs (id _ + id _) :: Int+  , abs (id x + _) :: Int+  , abs (id (id _) + _) :: Int+  , abs (negate _ + _) :: Int+  , abs (head _ + _) :: Int+  , abs ((_ + _) + _) :: Int+  , id (-1) :: Int+  , id (-2) :: Int+  , id 0 :: Int+  , id 1 :: Int+  , id 2 :: Int+  , id 3 :: Int+  , id _ :: Int+  , id x :: Int+  , id x' :: Int+  , id y :: Int+  , id y' :: Int+  , id z :: Int+  , id z' :: Int+  , id (ord ' ') :: Int+  , id (ord 'a') :: Int+  , id (ord 'b') :: Int+  , id (ord _) :: Int+  , id (ord c) :: Int+  , id (ord d) :: Int+  , id (ord e) :: Int+  , id (f (-1)) :: Int+  , id (f 0) :: Int+  , id (f 1) :: Int+  , id (f _) :: Int+  , id (f x) :: Int+  , id (f y) :: Int+  , id (f z) :: Int+  , id (f (ord 'a')) :: Int+  , id (f (ord _)) :: Int+  , id (f (ord c)) :: Int+  , id (f (f _)) :: Int+  , id (f (abs 0)) :: Int+  , id (f (abs _)) :: Int+  , id (f (abs x)) :: Int+  , id (f (abs (id _))) :: Int+  , id (f (id 0)) :: Int+  , id (f (id 1)) :: Int+  , id (f (id _)) :: Int+  , id (f (id x)) :: Int+  , id (f (id y)) :: Int+  , id (f (id (ord _))) :: Int+  , id (f (id (abs _))) :: Int+  , id (f (id (id 0))) :: Int+  , id (f (id (id _))) :: Int+  , id (f (id (id x))) :: Int+  , id (f (id (id (id _)))) :: Int+  , id (f (id (negate _))) :: Int+  , id (f (id (head _))) :: Int+  , id (f (id (_ + _))) :: Int+  , id (f (negate 0)) :: Int+  , id (f (negate _)) :: Int+  , id (f (negate x)) :: Int+  , id (f (negate (id _))) :: Int+  , id (f (head [])) :: Int+  , id (f (head _)) :: Int+  , id (f (head xs)) :: Int+  , id (f (head (_:_))) :: Int+  , id (f (_ * _)) :: Int+  , id (f (0 + _)) :: Int+  , id (f (_ + 0)) :: Int+  , id (f (_ + _)) :: Int+  , id (f (_ + x)) :: Int+  , id (f (_ + id _)) :: Int+  , id (f (x + _)) :: Int+  , id (f (id _ + _)) :: Int+  , id (f' _) :: Int+  , id (g 0) :: Int+  , id (g 1) :: Int+  , id (g _) :: Int+  , id (g x) :: Int+  , id (g y) :: Int+  , id (g (ord _)) :: Int+  , id (g (abs _)) :: Int+  , id (g (id 0)) :: Int+  , id (g (id _)) :: Int+  , id (g (id x)) :: Int+  , id (g (id (id _))) :: Int+  , id (g (negate _)) :: Int+  , id (g (head _)) :: Int+  , id (g (_ + _)) :: Int+  , id (h 0) :: Int+  , id (h _) :: Int+  , id (h x) :: Int+  , id (h (id _)) :: Int+  , id (abs (-1)) :: Int+  , id (abs 0) :: Int+  , id (abs 1) :: Int+  , id (abs 2) :: Int+  , id (abs _) :: Int+  , id (abs x) :: Int+  , id (abs x') :: Int+  , id (abs y) :: Int+  , id (abs z) :: Int+  , id (abs (ord ' ')) :: Int+  , id (abs (ord 'a')) :: Int+  , id (abs (ord _)) :: Int+  , id (abs (ord c)) :: Int+  , id (abs (ord d)) :: Int+  , id (abs (f 0)) :: Int+  , id (abs (f _)) :: Int+  , id (abs (f x)) :: Int+  , id (abs (f (id _))) :: Int+  , id (abs (g _)) :: Int+  , id (abs (abs 0)) :: Int+  , id (abs (abs 1)) :: Int+  , id (abs (abs _)) :: Int+  , id (abs (abs x)) :: Int+  , id (abs (abs y)) :: Int+  , id (abs (abs (ord _))) :: Int+  , id (abs (abs (abs _))) :: Int+  , id (abs (abs (id 0))) :: Int+  , id (abs (abs (id _))) :: Int+  , id (abs (abs (id x))) :: Int+  , id (abs (abs (id (id _)))) :: Int+  , id (abs (abs (negate _))) :: Int+  , id (abs (abs (head _))) :: Int+  , id (abs (abs (_ + _))) :: Int+  , id (abs (id (-1))) :: Int+  , id (abs (id 0)) :: Int+  , id (abs (id 1)) :: Int+  , id (abs (id _)) :: Int+  , id (abs (id x)) :: Int+  , id (abs (id y)) :: Int+  , id (abs (id z)) :: Int+  , id (abs (id (ord 'a'))) :: Int+  , id (abs (id (ord _))) :: Int+  , id (abs (id (ord c))) :: Int+  , id (abs (id (f _))) :: Int+  , id (abs (id (abs 0))) :: Int+  , id (abs (id (abs _))) :: Int+  , id (abs (id (abs x))) :: Int+  , id (abs (id (abs (id _)))) :: Int+  , id (abs (id (id 0))) :: Int+  , id (abs (id (id 1))) :: Int+  , id (abs (id (id _))) :: Int+  , id (abs (id (id x))) :: Int+  , id (abs (id (id y))) :: Int+  , id (abs (id (id (ord _)))) :: Int+  , id (abs (id (id (abs _)))) :: Int+  , id (abs (id (id (id 0)))) :: Int+  , id (abs (id (id (id _)))) :: Int+  , id (abs (id (id (id x)))) :: Int+  , id (abs (id (id (id (id _))))) :: Int+  , id (abs (id (id (negate _)))) :: Int+  , id (abs (id (id (head _)))) :: Int+  , id (abs (id (id (_ + _)))) :: Int+  , id (abs (id (negate 0))) :: Int+  , id (abs (id (negate _))) :: Int+  , id (abs (id (negate x))) :: Int+  , id (abs (id (negate (id _)))) :: Int+  , id (abs (id (head []))) :: Int+  , id (abs (id (head _))) :: Int+  , id (abs (id (head xs))) :: Int+  , id (abs (id (head (_:_)))) :: Int+  , id (abs (id (_ * _))) :: Int+  , id (abs (id (0 + _))) :: Int+  , id (abs (id (_ + 0))) :: Int+  , id (abs (id (_ + _))) :: Int+  , id (abs (id (_ + x))) :: Int+  , id (abs (id (_ + id _))) :: Int+  , id (abs (id (x + _))) :: Int+  , id (abs (id (id _ + _))) :: Int+  , id (abs (negate 0)) :: Int+  , id (abs (negate 1)) :: Int+  , id (abs (negate _)) :: Int+  , id (abs (negate x)) :: Int+  , id (abs (negate y)) :: Int+  , id (abs (negate (ord _))) :: Int+  , id (abs (negate (abs _))) :: Int+  , id (abs (negate (id 0))) :: Int+  , id (abs (negate (id _))) :: Int+  , id (abs (negate (id x))) :: Int+  , id (abs (negate (id (id _)))) :: Int+  , id (abs (negate (negate _))) :: Int+  , id (abs (negate (head _))) :: Int+  , id (abs (negate (_ + _))) :: Int+  , id (abs (head [0])) :: Int+  , id (abs (head [])) :: Int+  , id (abs (head _)) :: Int+  , id (abs (head xs)) :: Int+  , id (abs (head ys)) :: Int+  , id (abs (head (tail _))) :: Int+  , id (abs (head (0:_))) :: Int+  , id (abs (head [_])) :: Int+  , id (abs (head (_:_))) :: Int+  , id (abs (head (_:xs))) :: Int+  , id (abs (head (_:_:_))) :: Int+  , id (abs (head (x:_))) :: Int+  , id (abs (head (id _:_))) :: Int+  , id (abs (head (_ ++ _))) :: Int+  , id (abs (0 * _)) :: Int+  , id (abs (_ * 0)) :: Int+  , id (abs (_ * _)) :: Int+  , id (abs (_ * x)) :: Int+  , id (abs (_ * id _)) :: Int+  , id (abs (x * _)) :: Int+  , id (abs (id _ * _)) :: Int+  , id (abs (0 + 0)) :: Int+  , id (abs (0 + _)) :: Int+  , id (abs (0 + x)) :: Int+  , id (abs (0 + id _)) :: Int+  , id (abs (1 + _)) :: Int+  , id (abs (_ + 0)) :: Int+  , id (abs (_ + 1)) :: Int+  , id (abs (_ + _)) :: Int+  , id (abs (_ + x)) :: Int+  , id (abs (_ + y)) :: Int+  , id (abs (_ + ord _)) :: Int+  , id (abs (_ + abs _)) :: Int+  , id (abs (_ + id 0)) :: Int+  , id (abs (_ + id _)) :: Int+  , id (abs (_ + id x)) :: Int+  , id (abs (_ + id (id _))) :: Int+  , id (abs (_ + negate _)) :: Int+  , id (abs (_ + head _)) :: Int+  , id (abs (_ + (_ + _))) :: Int+  , id (abs (x + 0)) :: Int+  , id (abs (x + _)) :: Int+  , id (abs (x + x)) :: Int+  , id (abs (x + id _)) :: Int+  , id (abs (y + _)) :: Int+  , id (abs (ord _ + _)) :: Int+  , id (abs (abs _ + _)) :: Int+  , id (abs (id 0 + _)) :: Int+  , id (abs (id _ + 0)) :: Int+  , id (abs (id _ + _)) :: Int+  , id (abs (id _ + x)) :: Int+  , id (abs (id _ + id _)) :: Int+  , id (abs (id x + _)) :: Int+  , id (abs (id (id _) + _)) :: Int+  , id (abs (negate _ + _)) :: Int+  , id (abs (head _ + _)) :: Int+  , id (abs ((_ + _) + _)) :: Int+  , id (id (-1)) :: Int+  , id (id (-2)) :: Int+  , id (id 0) :: Int+  , id (id 1) :: Int+  , id (id 2) :: Int+  , id (id _) :: Int+  , id (id x) :: Int+  , id (id x') :: Int+  , id (id y) :: Int+  , id (id y') :: Int+  , id (id z) :: Int+  , id (id (ord ' ')) :: Int+  , id (id (ord 'a')) :: Int+  , id (id (ord 'b')) :: Int+  , id (id (ord _)) :: Int+  , id (id (ord c)) :: Int+  , id (id (ord d)) :: Int+  , id (id (ord e)) :: Int+  , id (id (f 0)) :: Int+  , id (id (f 1)) :: Int+  , id (id (f _)) :: Int+  , id (id (f x)) :: Int+  , id (id (f y)) :: Int+  , id (id (f (ord _))) :: Int+  , id (id (f (abs _))) :: Int+  , id (id (f (id 0))) :: Int+  , id (id (f (id _))) :: Int+  , id (id (f (id x))) :: Int+  , id (id (f (id (id _)))) :: Int+  , id (id (f (negate _))) :: Int+  , id (id (f (head _))) :: Int+  , id (id (f (_ + _))) :: Int+  , id (id (g 0)) :: Int+  , id (id (g _)) :: Int+  , id (id (g x)) :: Int+  , id (id (g (id _))) :: Int+  , id (id (h _)) :: Int+  , id (id (abs (-1))) :: Int+  , id (id (abs 0)) :: Int+  , id (id (abs 1)) :: Int+  , id (id (abs _)) :: Int+  , id (id (abs x)) :: Int+  , id (id (abs y)) :: Int+  , id (id (abs z)) :: Int+  , id (id (abs (ord 'a'))) :: Int+  , id (id (abs (ord _))) :: Int+  , id (id (abs (ord c))) :: Int+  , id (id (abs (f _))) :: Int+  , id (id (abs (abs 0))) :: Int+  , id (id (abs (abs _))) :: Int+  , id (id (abs (abs x))) :: Int+  , id (id (abs (abs (id _)))) :: Int+  , id (id (abs (id 0))) :: Int+  , id (id (abs (id 1))) :: Int+  , id (id (abs (id _))) :: Int+  , id (id (abs (id x))) :: Int+  , id (id (abs (id y))) :: Int+  , id (id (abs (id (ord _)))) :: Int+  , id (id (abs (id (abs _)))) :: Int+  , id (id (abs (id (id 0)))) :: Int+  , id (id (abs (id (id _)))) :: Int+  , id (id (abs (id (id x)))) :: Int+  , id (id (abs (id (id (id _))))) :: Int+  , id (id (abs (id (negate _)))) :: Int+  , id (id (abs (id (head _)))) :: Int+  , id (id (abs (id (_ + _)))) :: Int+  , id (id (abs (negate 0))) :: Int+  , id (id (abs (negate _))) :: Int+  , id (id (abs (negate x))) :: Int+  , id (id (abs (negate (id _)))) :: Int+  , id (id (abs (head []))) :: Int+  , id (id (abs (head _))) :: Int+  , id (id (abs (head xs))) :: Int+  , id (id (abs (head (_:_)))) :: Int+  , id (id (abs (_ * _))) :: Int+  , id (id (abs (0 + _))) :: Int+  , id (id (abs (_ + 0))) :: Int+  , id (id (abs (_ + _))) :: Int+  , id (id (abs (_ + x))) :: Int+  , id (id (abs (_ + id _))) :: Int+  , id (id (abs (x + _))) :: Int+  , id (id (abs (id _ + _))) :: Int+  , id (id (id (-1))) :: Int+  , id (id (id 0)) :: Int+  , id (id (id 1)) :: Int+  , id (id (id 2)) :: Int+  , id (id (id _)) :: Int+  , id (id (id x)) :: Int+  , id (id (id x')) :: Int+  , id (id (id y)) :: Int+  , id (id (id z)) :: Int+  , id (id (id (ord ' '))) :: Int+  , id (id (id (ord 'a'))) :: Int+  , id (id (id (ord _))) :: Int+  , id (id (id (ord c))) :: Int+  , id (id (id (ord d))) :: Int+  , id (id (id (f 0))) :: Int+  , id (id (id (f _))) :: Int+  , id (id (id (f x))) :: Int+  , id (id (id (f (id _)))) :: Int+  , id (id (id (g _))) :: Int+  , id (id (id (abs 0))) :: Int+  , id (id (id (abs 1))) :: Int+  , id (id (id (abs _))) :: Int+  , id (id (id (abs x))) :: Int+  , id (id (id (abs y))) :: Int+  , id (id (id (abs (ord _)))) :: Int+  , id (id (id (abs (abs _)))) :: Int+  , id (id (id (abs (id 0)))) :: Int+  , id (id (id (abs (id _)))) :: Int+  , id (id (id (abs (id x)))) :: Int+  , id (id (id (abs (id (id _))))) :: Int+  , id (id (id (abs (negate _)))) :: Int+  , id (id (id (abs (head _)))) :: Int+  , id (id (id (abs (_ + _)))) :: Int+  , id (id (id (id (-1)))) :: Int+  , id (id (id (id 0))) :: Int+  , id (id (id (id 1))) :: Int+  , id (id (id (id _))) :: Int+  , id (id (id (id x))) :: Int+  , id (id (id (id y))) :: Int+  , id (id (id (id z))) :: Int+  , id (id (id (id (ord 'a')))) :: Int+  , id (id (id (id (ord _)))) :: Int+  , id (id (id (id (ord c)))) :: Int+  , id (id (id (id (f _)))) :: Int+  , id (id (id (id (abs 0)))) :: Int+  , id (id (id (id (abs _)))) :: Int+  , id (id (id (id (abs x)))) :: Int+  , id (id (id (id (abs (id _))))) :: Int+  , id (id (id (id (id 0)))) :: Int+  , id (id (id (id (id 1)))) :: Int+  , id (id (id (id (id _)))) :: Int+  , id (id (id (id (id x)))) :: Int+  , id (id (id (id (id y)))) :: Int+  , id (id (id (id (id (ord _))))) :: Int+  , id (id (id (id (id (abs _))))) :: Int+  , id (id (id (id (id (id 0))))) :: Int+  , id (id (id (id (id (id _))))) :: Int+  , id (id (id (id (id (id x))))) :: Int+  , id (id (id (id (id (id (id _)))))) :: Int+  , id (id (id (id (id (negate _))))) :: Int+  , id (id (id (id (id (head _))))) :: Int+  , id (id (id (id (id (_ + _))))) :: Int+  , id (id (id (id (negate 0)))) :: Int+  , id (id (id (id (negate _)))) :: Int+  , id (id (id (id (negate x)))) :: Int+  , id (id (id (id (negate (id _))))) :: Int+  , id (id (id (id (head [])))) :: Int+  , id (id (id (id (head _)))) :: Int+  , id (id (id (id (head xs)))) :: Int+  , id (id (id (id (head (_:_))))) :: Int+  , id (id (id (id (_ * _)))) :: Int+  , id (id (id (id (0 + _)))) :: Int+  , id (id (id (id (_ + 0)))) :: Int+  , id (id (id (id (_ + _)))) :: Int+  , id (id (id (id (_ + x)))) :: Int+  , id (id (id (id (_ + id _)))) :: Int+  , id (id (id (id (x + _)))) :: Int+  , id (id (id (id (id _ + _)))) :: Int+  , id (id (id (negate 0))) :: Int+  , id (id (id (negate 1))) :: Int+  , id (id (id (negate _))) :: Int+  , id (id (id (negate x))) :: Int+  , id (id (id (negate y))) :: Int+  , id (id (id (negate (ord _)))) :: Int+  , id (id (id (negate (abs _)))) :: Int+  , id (id (id (negate (id 0)))) :: Int+  , id (id (id (negate (id _)))) :: Int+  , id (id (id (negate (id x)))) :: Int+  , id (id (id (negate (id (id _))))) :: Int+  , id (id (id (negate (negate _)))) :: Int+  , id (id (id (negate (head _)))) :: Int+  , id (id (id (negate (_ + _)))) :: Int+  , id (id (id (head [0]))) :: Int+  , id (id (id (head []))) :: Int+  , id (id (id (head _))) :: Int+  , id (id (id (head xs))) :: Int+  , id (id (id (head ys))) :: Int+  , id (id (id (head (tail _)))) :: Int+  , id (id (id (head (0:_)))) :: Int+  , id (id (id (head [_]))) :: Int+  , id (id (id (head (_:_)))) :: Int+  , id (id (id (head (_:xs)))) :: Int+  , id (id (id (head (_:_:_)))) :: Int+  , id (id (id (head (x:_)))) :: Int+  , id (id (id (head (id _:_)))) :: Int+  , id (id (id (head (_ ++ _)))) :: Int+  , id (id (id (0 * _))) :: Int+  , id (id (id (_ * 0))) :: Int+  , id (id (id (_ * _))) :: Int+  , id (id (id (_ * x))) :: Int+  , id (id (id (_ * id _))) :: Int+  , id (id (id (x * _))) :: Int+  , id (id (id (id _ * _))) :: Int+  , id (id (id (0 + 0))) :: Int+  , id (id (id (0 + _))) :: Int+  , id (id (id (0 + x))) :: Int+  , id (id (id (0 + id _))) :: Int+  , id (id (id (1 + _))) :: Int+  , id (id (id (_ + 0))) :: Int+  , id (id (id (_ + 1))) :: Int+  , id (id (id (_ + _))) :: Int+  , id (id (id (_ + x))) :: Int+  , id (id (id (_ + y))) :: Int+  , id (id (id (_ + ord _))) :: Int+  , id (id (id (_ + abs _))) :: Int+  , id (id (id (_ + id 0))) :: Int+  , id (id (id (_ + id _))) :: Int+  , id (id (id (_ + id x))) :: Int+  , id (id (id (_ + id (id _)))) :: Int+  , id (id (id (_ + negate _))) :: Int+  , id (id (id (_ + head _))) :: Int+  , id (id (id (_ + (_ + _)))) :: Int+  , id (id (id (x + 0))) :: Int+  , id (id (id (x + _))) :: Int+  , id (id (id (x + x))) :: Int+  , id (id (id (x + id _))) :: Int+  , id (id (id (y + _))) :: Int+  , id (id (id (ord _ + _))) :: Int+  , id (id (id (abs _ + _))) :: Int+  , id (id (id (id 0 + _))) :: Int+  , id (id (id (id _ + 0))) :: Int+  , id (id (id (id _ + _))) :: Int+  , id (id (id (id _ + x))) :: Int+  , id (id (id (id _ + id _))) :: Int+  , id (id (id (id x + _))) :: Int+  , id (id (id (id (id _) + _))) :: Int+  , id (id (id (negate _ + _))) :: Int+  , id (id (id (head _ + _))) :: Int+  , id (id (id ((_ + _) + _))) :: Int+  , id (id (negate (-1))) :: Int+  , id (id (negate 0)) :: Int+  , id (id (negate 1)) :: Int+  , id (id (negate _)) :: Int+  , id (id (negate x)) :: Int+  , id (id (negate y)) :: Int+  , id (id (negate z)) :: Int+  , id (id (negate (ord 'a'))) :: Int+  , id (id (negate (ord _))) :: Int+  , id (id (negate (ord c))) :: Int+  , id (id (negate (f _))) :: Int+  , id (id (negate (abs 0))) :: Int+  , id (id (negate (abs _))) :: Int+  , id (id (negate (abs x))) :: Int+  , id (id (negate (abs (id _)))) :: Int+  , id (id (negate (id 0))) :: Int+  , id (id (negate (id 1))) :: Int+  , id (id (negate (id _))) :: Int+  , id (id (negate (id x))) :: Int+  , id (id (negate (id y))) :: Int+  , id (id (negate (id (ord _)))) :: Int+  , id (id (negate (id (abs _)))) :: Int+  , id (id (negate (id (id 0)))) :: Int+  , id (id (negate (id (id _)))) :: Int+  , id (id (negate (id (id x)))) :: Int+  , id (id (negate (id (id (id _))))) :: Int+  , id (id (negate (id (negate _)))) :: Int+  , id (id (negate (id (head _)))) :: Int+  , id (id (negate (id (_ + _)))) :: Int+  , id (id (negate (negate 0))) :: Int+  , id (id (negate (negate _))) :: Int+  , id (id (negate (negate x))) :: Int+  , id (id (negate (negate (id _)))) :: Int+  , id (id (negate (head []))) :: Int+  , id (id (negate (head _))) :: Int+  , id (id (negate (head xs))) :: Int+  , id (id (negate (head (_:_)))) :: Int+  , id (id (negate (_ * _))) :: Int+  , id (id (negate (0 + _))) :: Int+  , id (id (negate (_ + 0))) :: Int+  , id (id (negate (_ + _))) :: Int+  , id (id (negate (_ + x))) :: Int+  , id (id (negate (_ + id _))) :: Int+  , id (id (negate (x + _))) :: Int+  , id (id (negate (id _ + _))) :: Int+  , id (id (head [0,0])) :: Int+  , id (id (head [0])) :: Int+  , id (id (head [1])) :: Int+  , id (id (head [])) :: Int+  , id (id (head _)) :: Int+  , id (id (head xs)) :: Int+  , id (id (head ys)) :: Int+  , id (id (head zs)) :: Int+  , id (id (head (sort _))) :: Int+  , id (id (head (tail []))) :: Int+  , id (id (head (tail _))) :: Int+  , id (id (head (tail xs))) :: Int+  , id (id (head (tail (_:_)))) :: Int+  , id (id (head [0])) :: Int+  , id (id (head (0:_))) :: Int+  , id (id (head (0:xs))) :: Int+  , id (id (head (0:_:_))) :: Int+  , id (id (head (1:_))) :: Int+  , id (id (head (_:[0]))) :: Int+  , id (id (head [_])) :: Int+  , id (id (head (_:_))) :: Int+  , id (id (head (_:xs))) :: Int+  , id (id (head (_:ys))) :: Int+  , id (id (head (_:tail _))) :: Int+  , id (id (head (_:0:_))) :: Int+  , id (id (head [_,_])) :: Int+  , id (id (head (_:_:_))) :: Int+  , id (id (head (_:_:xs))) :: Int+  , id (id (head (_:_:_:_))) :: Int+  , id (id (head (_:x:_))) :: Int+  , id (id (head (_:id _:_))) :: Int+  , id (id (head (_:(_ ++ _)))) :: Int+  , id (id (head [x])) :: Int+  , id (id (head (x:_))) :: Int+  , id (id (head (x:xs))) :: Int+  , id (id (head (x:_:_))) :: Int+  , id (id (head (y:_))) :: Int+  , id (id (head (ord _:_))) :: Int+  , id (id (head (abs _:_))) :: Int+  , id (id (head (id 0:_))) :: Int+  , id (id (head [id _])) :: Int+  , id (id (head (id _:_))) :: Int+  , id (id (head (id _:xs))) :: Int+  , id (id (head (id _:_:_))) :: Int+  , id (id (head (id x:_))) :: Int+  , id (id (head (id (id _):_))) :: Int+  , id (id (head (negate _:_))) :: Int+  , id (id (head (head _:_))) :: Int+  , id (id (head (_ + _:_))) :: Int+  , id (id (head (insert _ _))) :: Int+  , id (id (head ([] ++ _))) :: Int+  , id (id (head (_ ++ []))) :: Int+  , id (id (head (_ ++ _))) :: Int+  , id (id (head (_ ++ xs))) :: Int+  , id (id (head (_ ++ (_:_)))) :: Int+  , id (id (head (xs ++ _))) :: Int+  , id (id (head ((_:_) ++ _))) :: Int+  , id (id (0 * 0)) :: Int+  , id (id (0 * _)) :: Int+  , id (id (0 * x)) :: Int+  , id (id (0 * id _)) :: Int+  , id (id (1 * _)) :: Int+  , id (id (_ * 0)) :: Int+  , id (id (_ * 1)) :: Int+  , id (id (_ * _)) :: Int+  , id (id (_ * x)) :: Int+  , id (id (_ * y)) :: Int+  , id (id (_ * ord _)) :: Int+  , id (id (_ * abs _)) :: Int+  , id (id (_ * id 0)) :: Int+  , id (id (_ * id _)) :: Int+  , id (id (_ * id x)) :: Int+  , id (id (_ * id (id _))) :: Int+  , id (id (_ * negate _)) :: Int+  , id (id (_ * head _)) :: Int+  , id (id (_ * (_ + _))) :: Int+  , id (id (x * 0)) :: Int+  , id (id (x * _)) :: Int+  , id (id (x * x)) :: Int+  , id (id (x * id _)) :: Int+  , id (id (y * _)) :: Int+  , id (id (ord _ * _)) :: Int+  , id (id (abs _ * _)) :: Int+  , id (id (id 0 * _)) :: Int+  , id (id (id _ * 0)) :: Int+  , id (id (id _ * _)) :: Int+  , id (id (id _ * x)) :: Int+  , id (id (id _ * id _)) :: Int+  , id (id (id x * _)) :: Int+  , id (id (id (id _) * _)) :: Int+  , id (id (negate _ * _)) :: Int+  , id (id (head _ * _)) :: Int+  , id (id ((_ + _) * _)) :: Int+  , id (id ((-1) + _)) :: Int+  , id (id (0 + 0)) :: Int+  , id (id (0 + 1)) :: Int+  , id (id (0 + _)) :: Int+  , id (id (0 + x)) :: Int+  , id (id (0 + y)) :: Int+  , id (id (0 + ord _)) :: Int+  , id (id (0 + abs _)) :: Int+  , id (id (0 + id 0)) :: Int+  , id (id (0 + id _)) :: Int+  , id (id (0 + id x)) :: Int+  , id (id (0 + id (id _))) :: Int+  , id (id (0 + negate _)) :: Int+  , id (id (0 + head _)) :: Int+  , id (id (0 + (_ + _))) :: Int+  , id (id (1 + 0)) :: Int+  , id (id (1 + _)) :: Int+  , id (id (1 + x)) :: Int+  , id (id (1 + id _)) :: Int+  , id (id (_ + (-1))) :: Int+  , id (id (_ + 0)) :: Int+  , id (id (_ + 1)) :: Int+  , id (id (_ + _)) :: Int+  , id (id (_ + x)) :: Int+  , id (id (_ + y)) :: Int+  , id (id (_ + z)) :: Int+  , id (id (_ + ord 'a')) :: Int+  , id (id (_ + ord _)) :: Int+  , id (id (_ + ord c)) :: Int+  , id (id (_ + f _)) :: Int+  , id (id (_ + abs 0)) :: Int+  , id (id (_ + abs _)) :: Int+  , id (id (_ + abs x)) :: Int+  , id (id (_ + abs (id _))) :: Int+  , id (id (_ + id 0)) :: Int+  , id (id (_ + id 1)) :: Int+  , id (id (_ + id _)) :: Int+  , id (id (_ + id x)) :: Int+  , id (id (_ + id y)) :: Int+  , id (id (_ + id (ord _))) :: Int+  , id (id (_ + id (abs _))) :: Int+  , id (id (_ + id (id 0))) :: Int+  , id (id (_ + id (id _))) :: Int+  , id (id (_ + id (id x))) :: Int+  , id (id (_ + id (id (id _)))) :: Int+  , id (id (_ + id (negate _))) :: Int+  , id (id (_ + id (head _))) :: Int+  , id (id (_ + id (_ + _))) :: Int+  , id (id (_ + negate 0)) :: Int+  , id (id (_ + negate _)) :: Int+  , id (id (_ + negate x)) :: Int+  , id (id (_ + negate (id _))) :: Int+  , id (id (_ + head [])) :: Int+  , id (id (_ + head _)) :: Int+  , id (id (_ + head xs)) :: Int+  , id (id (_ + head (_:_))) :: Int+  , id (id (_ + _ * _)) :: Int+  , id (id (_ + (0 + _))) :: Int+  , id (id (_ + (_ + 0))) :: Int+  , id (id (_ + (_ + _))) :: Int+  , id (id (_ + (_ + x))) :: Int+  , id (id (_ + (_ + id _))) :: Int+  , id (id (_ + (x + _))) :: Int+  , id (id (_ + (id _ + _))) :: Int+  , id (id (x + 0)) :: Int+  , id (id (x + 1)) :: Int+  , id (id (x + _)) :: Int+  , id (id (x + x)) :: Int+  , id (id (x + y)) :: Int+  , id (id (x + ord _)) :: Int+  , id (id (x + abs _)) :: Int+  , id (id (x + id 0)) :: Int+  , id (id (x + id _)) :: Int+  , id (id (x + id x)) :: Int+  , id (id (x + id (id _))) :: Int+  , id (id (x + negate _)) :: Int+  , id (id (x + head _)) :: Int+  , id (id (x + (_ + _))) :: Int+  , id (id (y + 0)) :: Int+  , id (id (y + _)) :: Int+  , id (id (y + x)) :: Int+  , id (id (y + id _)) :: Int+  , id (id (z + _)) :: Int+  , id (id (ord 'a' + _)) :: Int+  , id (id (ord _ + 0)) :: Int+  , id (id (ord _ + _)) :: Int+  , id (id (ord _ + x)) :: Int+  , id (id (ord _ + id _)) :: Int+  , id (id (ord c + _)) :: Int+  , id (id (f _ + _)) :: Int+  , id (id (abs 0 + _)) :: Int+  , id (id (abs _ + 0)) :: Int+  , id (id (abs _ + _)) :: Int+  , id (id (abs _ + x)) :: Int+  , id (id (abs _ + id _)) :: Int+  , id (id (abs x + _)) :: Int+  , id (id (abs (id _) + _)) :: Int+  , id (id (id 0 + 0)) :: Int+  , id (id (id 0 + _)) :: Int+  , id (id (id 0 + x)) :: Int+  , id (id (id 0 + id _)) :: Int+  , id (id (id 1 + _)) :: Int+  , id (id (id _ + 0)) :: Int+  , id (id (id _ + 1)) :: Int+  , id (id (id _ + _)) :: Int+  , id (id (id _ + x)) :: Int+  , id (id (id _ + y)) :: Int+  , id (id (id _ + ord _)) :: Int+  , id (id (id _ + abs _)) :: Int+  , id (id (id _ + id 0)) :: Int+  , id (id (id _ + id _)) :: Int+  , id (id (id _ + id x)) :: Int+  , id (id (id _ + id (id _))) :: Int+  , id (id (id _ + negate _)) :: Int+  , id (id (id _ + head _)) :: Int+  , id (id (id _ + (_ + _))) :: Int+  , id (id (id x + 0)) :: Int+  , id (id (id x + _)) :: Int+  , id (id (id x + x)) :: Int+  , id (id (id x + id _)) :: Int+  , id (id (id y + _)) :: Int+  , id (id (id (ord _) + _)) :: Int+  , id (id (id (abs _) + _)) :: Int+  , id (id (id (id 0) + _)) :: Int+  , id (id (id (id _) + 0)) :: Int+  , id (id (id (id _) + _)) :: Int+  , id (id (id (id _) + x)) :: Int+  , id (id (id (id _) + id _)) :: Int+  , id (id (id (id x) + _)) :: Int+  , id (id (id (id (id _)) + _)) :: Int+  , id (id (id (negate _) + _)) :: Int+  , id (id (id (head _) + _)) :: Int+  , id (id (id (_ + _) + _)) :: Int+  , id (id (negate 0 + _)) :: Int+  , id (id (negate _ + 0)) :: Int+  , id (id (negate _ + _)) :: Int+  , id (id (negate _ + x)) :: Int+  , id (id (negate _ + id _)) :: Int+  , id (id (negate x + _)) :: Int+  , id (id (negate (id _) + _)) :: Int+  , id (id (head [] + _)) :: Int+  , id (id (head _ + 0)) :: Int+  , id (id (head _ + _)) :: Int+  , id (id (head _ + x)) :: Int+  , id (id (head _ + id _)) :: Int+  , id (id (head xs + _)) :: Int+  , id (id (head (_:_) + _)) :: Int+  , id (id (_ * _ + _)) :: Int+  , id (id ((0 + _) + _)) :: Int+  , id (id ((_ + 0) + _)) :: Int+  , id (id ((_ + _) + 0)) :: Int+  , id (id ((_ + _) + _)) :: Int+  , id (id ((_ + _) + x)) :: Int+  , id (id ((_ + _) + id _)) :: Int+  , id (id ((_ + x) + _)) :: Int+  , id (id ((_ + id _) + _)) :: Int+  , id (id ((x + _) + _)) :: Int+  , id (id ((id _ + _) + _)) :: Int+  , id (negate (-1)) :: Int+  , id (negate 0) :: Int+  , id (negate 1) :: Int+  , id (negate 2) :: Int+  , id (negate _) :: Int+  , id (negate x) :: Int+  , id (negate x') :: Int+  , id (negate y) :: Int+  , id (negate z) :: Int+  , id (negate (ord ' ')) :: Int+  , id (negate (ord 'a')) :: Int+  , id (negate (ord _)) :: Int+  , id (negate (ord c)) :: Int+  , id (negate (ord d)) :: Int+  , id (negate (f 0)) :: Int+  , id (negate (f _)) :: Int+  , id (negate (f x)) :: Int+  , id (negate (f (id _))) :: Int+  , id (negate (g _)) :: Int+  , id (negate (abs 0)) :: Int+  , id (negate (abs 1)) :: Int+  , id (negate (abs _)) :: Int+  , id (negate (abs x)) :: Int+  , id (negate (abs y)) :: Int+  , id (negate (abs (ord _))) :: Int+  , id (negate (abs (abs _))) :: Int+  , id (negate (abs (id 0))) :: Int+  , id (negate (abs (id _))) :: Int+  , id (negate (abs (id x))) :: Int+  , id (negate (abs (id (id _)))) :: Int+  , id (negate (abs (negate _))) :: Int+  , id (negate (abs (head _))) :: Int+  , id (negate (abs (_ + _))) :: Int+  , id (negate (id (-1))) :: Int+  , id (negate (id 0)) :: Int+  , id (negate (id 1)) :: Int+  , id (negate (id _)) :: Int+  , id (negate (id x)) :: Int+  , id (negate (id y)) :: Int+  , id (negate (id z)) :: Int+  , id (negate (id (ord 'a'))) :: Int+  , id (negate (id (ord _))) :: Int+  , id (negate (id (ord c))) :: Int+  , id (negate (id (f _))) :: Int+  , id (negate (id (abs 0))) :: Int+  , id (negate (id (abs _))) :: Int+  , id (negate (id (abs x))) :: Int+  , id (negate (id (abs (id _)))) :: Int+  , id (negate (id (id 0))) :: Int+  , id (negate (id (id 1))) :: Int+  , id (negate (id (id _))) :: Int+  , id (negate (id (id x))) :: Int+  , id (negate (id (id y))) :: Int+  , id (negate (id (id (ord _)))) :: Int+  , id (negate (id (id (abs _)))) :: Int+  , id (negate (id (id (id 0)))) :: Int+  , id (negate (id (id (id _)))) :: Int+  , id (negate (id (id (id x)))) :: Int+  , id (negate (id (id (id (id _))))) :: Int+  , id (negate (id (id (negate _)))) :: Int+  , id (negate (id (id (head _)))) :: Int+  , id (negate (id (id (_ + _)))) :: Int+  , id (negate (id (negate 0))) :: Int+  , id (negate (id (negate _))) :: Int+  , id (negate (id (negate x))) :: Int+  , id (negate (id (negate (id _)))) :: Int+  , id (negate (id (head []))) :: Int+  , id (negate (id (head _))) :: Int+  , id (negate (id (head xs))) :: Int+  , id (negate (id (head (_:_)))) :: Int+  , id (negate (id (_ * _))) :: Int+  , id (negate (id (0 + _))) :: Int+  , id (negate (id (_ + 0))) :: Int+  , id (negate (id (_ + _))) :: Int+  , id (negate (id (_ + x))) :: Int+  , id (negate (id (_ + id _))) :: Int+  , id (negate (id (x + _))) :: Int+  , id (negate (id (id _ + _))) :: Int+  , id (negate (negate 0)) :: Int+  , id (negate (negate 1)) :: Int+  , id (negate (negate _)) :: Int+  , id (negate (negate x)) :: Int+  , id (negate (negate y)) :: Int+  , id (negate (negate (ord _))) :: Int+  , id (negate (negate (abs _))) :: Int+  , id (negate (negate (id 0))) :: Int+  , id (negate (negate (id _))) :: Int+  , id (negate (negate (id x))) :: Int+  , id (negate (negate (id (id _)))) :: Int+  , id (negate (negate (negate _))) :: Int+  , id (negate (negate (head _))) :: Int+  , id (negate (negate (_ + _))) :: Int+  , id (negate (head [0])) :: Int+  , id (negate (head [])) :: Int+  , id (negate (head _)) :: Int+  , id (negate (head xs)) :: Int+  , id (negate (head ys)) :: Int+  , id (negate (head (tail _))) :: Int+  , id (negate (head (0:_))) :: Int+  , id (negate (head [_])) :: Int+  , id (negate (head (_:_))) :: Int+  , id (negate (head (_:xs))) :: Int+  , id (negate (head (_:_:_))) :: Int+  , id (negate (head (x:_))) :: Int+  , id (negate (head (id _:_))) :: Int+  , id (negate (head (_ ++ _))) :: Int+  , id (negate (0 * _)) :: Int+  , id (negate (_ * 0)) :: Int+  , id (negate (_ * _)) :: Int+  , id (negate (_ * x)) :: Int+  , id (negate (_ * id _)) :: Int+  , id (negate (x * _)) :: Int+  , id (negate (id _ * _)) :: Int+  , id (negate (0 + 0)) :: Int+  , id (negate (0 + _)) :: Int+  , id (negate (0 + x)) :: Int+  , id (negate (0 + id _)) :: Int+  , id (negate (1 + _)) :: Int+  , id (negate (_ + 0)) :: Int+  , id (negate (_ + 1)) :: Int+  , id (negate (_ + _)) :: Int+  , id (negate (_ + x)) :: Int+  , id (negate (_ + y)) :: Int+  , id (negate (_ + ord _)) :: Int+  , id (negate (_ + abs _)) :: Int+  , id (negate (_ + id 0)) :: Int+  , id (negate (_ + id _)) :: Int+  , id (negate (_ + id x)) :: Int+  , id (negate (_ + id (id _))) :: Int+  , id (negate (_ + negate _)) :: Int+  , id (negate (_ + head _)) :: Int+  , id (negate (_ + (_ + _))) :: Int+  , id (negate (x + 0)) :: Int+  , id (negate (x + _)) :: Int+  , id (negate (x + x)) :: Int+  , id (negate (x + id _)) :: Int+  , id (negate (y + _)) :: Int+  , id (negate (ord _ + _)) :: Int+  , id (negate (abs _ + _)) :: Int+  , id (negate (id 0 + _)) :: Int+  , id (negate (id _ + 0)) :: Int+  , id (negate (id _ + _)) :: Int+  , id (negate (id _ + x)) :: Int+  , id (negate (id _ + id _)) :: Int+  , id (negate (id x + _)) :: Int+  , id (negate (id (id _) + _)) :: Int+  , id (negate (negate _ + _)) :: Int+  , id (negate (head _ + _)) :: Int+  , id (negate ((_ + _) + _)) :: Int+  , id (head [-1]) :: Int+  , id (head [0,0,0]) :: Int+  , id (head [0,0]) :: Int+  , id (head [0,1]) :: Int+  , id (head [0]) :: Int+  , id (head [1,0]) :: Int+  , id (head [1]) :: Int+  , id (head []) :: Int+  , id (head _) :: Int+  , id (head xs) :: Int+  , id (head xs') :: Int+  , id (head ys) :: Int+  , id (head zs) :: Int+  , id (head (sort _)) :: Int+  , id (head (tail [0])) :: Int+  , id (head (tail [])) :: Int+  , id (head (tail _)) :: Int+  , id (head (tail xs)) :: Int+  , id (head (tail ys)) :: Int+  , id (head (tail (tail _))) :: Int+  , id (head (tail (0:_))) :: Int+  , id (head (tail [_])) :: Int+  , id (head (tail (_:_))) :: Int+  , id (head (tail (_:xs))) :: Int+  , id (head (tail (_:_:_))) :: Int+  , id (head (tail (x:_))) :: Int+  , id (head (tail (id _:_))) :: Int+  , id (head (tail (_ ++ _))) :: Int+  , id (head ((-1):_)) :: Int+  , id (head (0:[0])) :: Int+  , id (head [0]) :: Int+  , id (head (0:_)) :: Int+  , id (head (0:xs)) :: Int+  , id (head (0:ys)) :: Int+  , id (head (0:tail _)) :: Int+  , id (head (0:0:_)) :: Int+  , id (head [0,_]) :: Int+  , id (head (0:_:_)) :: Int+  , id (head (0:_:xs)) :: Int+  , id (head (0:_:_:_)) :: Int+  , id (head (0:x:_)) :: Int+  , id (head (0:id _:_)) :: Int+  , id (head (0:(_ ++ _))) :: Int+  , id (head [1]) :: Int+  , id (head (1:_)) :: Int+  , id (head (1:xs)) :: Int+  , id (head (1:_:_)) :: Int+  , id (head (_:[0,0])) :: Int+  , id (head (_:[0])) :: Int+  , id (head (_:[1])) :: Int+  , id (head [_]) :: Int+  , id (head (_:_)) :: Int+  , id (head (_:xs)) :: Int+  , id (head (_:ys)) :: Int+  , id (head (_:zs)) :: Int+  , id (head (_:sort _)) :: Int+  , id (head (_:tail [])) :: Int+  , id (head (_:tail _)) :: Int+  , id (head (_:tail xs)) :: Int+  , id (head (_:tail (_:_))) :: Int+  , id (head [_,0]) :: Int+  , id (head (_:0:_)) :: Int+  , id (head (_:0:xs)) :: Int+  , id (head (_:0:_:_)) :: Int+  , id (head (_:1:_)) :: Int+  , id (head (_:_:[0])) :: Int+  , id (head [_,_]) :: Int+  , id (head (_:_:_)) :: Int+  , id (head (_:_:xs)) :: Int+  , id (head (_:_:ys)) :: Int+  , id (head (_:_:tail _)) :: Int+  , id (head (_:_:0:_)) :: Int+  , id (head [_,_,_]) :: Int+  , id (head (_:_:_:_)) :: Int+  , id (head (_:_:_:xs)) :: Int+  , id (head (_:_:_:_:_)) :: Int+  , id (head (_:_:x:_)) :: Int+  , id (head (_:_:id _:_)) :: Int+  , id (head (_:_:(_ ++ _))) :: Int+  , id (head [_,x]) :: Int+  , id (head (_:x:_)) :: Int+  , id (head (_:x:xs)) :: Int+  , id (head (_:x:_:_)) :: Int+  , id (head (_:y:_)) :: Int+  , id (head (_:ord _:_)) :: Int+  , id (head (_:abs _:_)) :: Int+  , id (head (_:id 0:_)) :: Int+  , id (head [_,id _]) :: Int+  , id (head (_:id _:_)) :: Int+  , id (head (_:id _:xs)) :: Int+  , id (head (_:id _:_:_)) :: Int+  , id (head (_:id x:_)) :: Int+  , id (head (_:id (id _):_)) :: Int+  , id (head (_:negate _:_)) :: Int+  , id (head (_:head _:_)) :: Int+  , id (head (_:_ + _:_)) :: Int+  , id (head (_:insert _ _)) :: Int+  , id (head (_:([] ++ _))) :: Int+  , id (head (_:(_ ++ []))) :: Int+  , id (head (_:(_ ++ _))) :: Int+  , id (head (_:(_ ++ xs))) :: Int+  , id (head (_:(_ ++ (_:_)))) :: Int+  , id (head (_:(xs ++ _))) :: Int+  , id (head (_:((_:_) ++ _))) :: Int+  , id (head (x:[0])) :: Int+  , id (head [x]) :: Int+  , id (head (x:_)) :: Int+  , id (head (x:xs)) :: Int+  , id (head (x:ys)) :: Int+  , id (head (x:tail _)) :: Int+  , id (head (x:0:_)) :: Int+  , id (head [x,_]) :: Int+  , id (head (x:_:_)) :: Int+  , id (head (x:_:xs)) :: Int+  , id (head (x:_:_:_)) :: Int+  , id (head (x:x:_)) :: Int+  , id (head (x:id _:_)) :: Int+  , id (head (x:(_ ++ _))) :: Int+  , id (head [y]) :: Int+  , id (head (y:_)) :: Int+  , id (head (y:xs)) :: Int+  , id (head (y:_:_)) :: Int+  , id (head (z:_)) :: Int+  , id (head (ord 'a':_)) :: Int+  , id (head [ord _]) :: Int+  , id (head (ord _:_)) :: Int+  , id (head (ord _:xs)) :: Int+  , id (head (ord _:_:_)) :: Int+  , id (head (ord c:_)) :: Int+  , id (head (f _:_)) :: Int+  , id (head (abs 0:_)) :: Int+  , id (head [abs _]) :: Int+  , id (head (abs _:_)) :: Int+  , id (head (abs _:xs)) :: Int+  , id (head (abs _:_:_)) :: Int+  , id (head (abs x:_)) :: Int+  , id (head (abs (id _):_)) :: Int+  , id (head [id 0]) :: Int+  , id (head (id 0:_)) :: Int+  , id (head (id 0:xs)) :: Int+  , id (head (id 0:_:_)) :: Int+  , id (head (id 1:_)) :: Int+  , id (head (id _:[0])) :: Int+  , id (head [id _]) :: Int+  , id (head (id _:_)) :: Int+  , id (head (id _:xs)) :: Int+  , id (head (id _:ys)) :: Int+  , id (head (id _:tail _)) :: Int+  , id (head (id _:0:_)) :: Int+  , id (head [id _,_]) :: Int+  , id (head (id _:_:_)) :: Int+  , id (head (id _:_:xs)) :: Int+  , id (head (id _:_:_:_)) :: Int+  , id (head (id _:x:_)) :: Int+  , id (head (id _:id _:_)) :: Int+  , id (head (id _:(_ ++ _))) :: Int+  , id (head [id x]) :: Int+  , id (head (id x:_)) :: Int+  , id (head (id x:xs)) :: Int+  , id (head (id x:_:_)) :: Int+  , id (head (id y:_)) :: Int+  , id (head (id (ord _):_)) :: Int+  , id (head (id (abs _):_)) :: Int+  , id (head (id (id 0):_)) :: Int+  , id (head [id (id _)]) :: Int+  , id (head (id (id _):_)) :: Int+  , id (head (id (id _):xs)) :: Int+  , id (head (id (id _):_:_)) :: Int+  , id (head (id (id x):_)) :: Int+  , id (head (id (id (id _)):_)) :: Int+  , id (head (id (negate _):_)) :: Int+  , id (head (id (head _):_)) :: Int+  , id (head (id (_ + _):_)) :: Int+  , id (head (negate 0:_)) :: Int+  , id (head [negate _]) :: Int+  , id (head (negate _:_)) :: Int+  , id (head (negate _:xs)) :: Int+  , id (head (negate _:_:_)) :: Int+  , id (head (negate x:_)) :: Int+  , id (head (negate (id _):_)) :: Int+  , id (head (head []:_)) :: Int+  , id (head [head _]) :: Int+  , id (head (head _:_)) :: Int+  , id (head (head _:xs)) :: Int+  , id (head (head _:_:_)) :: Int+  , id (head (head xs:_)) :: Int+  , id (head (head (_:_):_)) :: Int+  , id (head (_ * _:_)) :: Int+  , id (head (0 + _:_)) :: Int+  , id (head (_ + 0:_)) :: Int+  , id (head [_ + _]) :: Int+  , id (head (_ + _:_)) :: Int+  , id (head (_ + _:xs)) :: Int+  , id (head (_ + _:_:_)) :: Int+  , id (head (_ + x:_)) :: Int+  , id (head (_ + id _:_)) :: Int+  , id (head (x + _:_)) :: Int+  , id (head (id _ + _:_)) :: Int+  , id (head (insert _ _)) :: Int+  , id (head ([0] ++ _)) :: Int+  , id (head ([] ++ [])) :: Int+  , id (head ([] ++ _)) :: Int+  , id (head ([] ++ xs)) :: Int+  , id (head ([] ++ (_:_))) :: Int+  , id (head (_ ++ [0])) :: Int+  , id (head (_ ++ [])) :: Int+  , id (head (_ ++ _)) :: Int+  , id (head (_ ++ xs)) :: Int+  , id (head (_ ++ ys)) :: Int+  , id (head (_ ++ tail _)) :: Int+  , id (head (_ ++ (0:_))) :: Int+  , id (head (_ ++ [_])) :: Int+  , id (head (_ ++ (_:_))) :: Int+  , id (head (_ ++ (_:xs))) :: Int+  , id (head (_ ++ (_:_:_))) :: Int+  , id (head (_ ++ (x:_))) :: Int+  , id (head (_ ++ (id _:_))) :: Int+  , id (head (_ ++ (_ ++ _))) :: Int+  , id (head (xs ++ [])) :: Int+  , id (head (xs ++ _)) :: Int+  , id (head (xs ++ xs)) :: Int+  , id (head (xs ++ (_:_))) :: Int+  , id (head (ys ++ _)) :: Int+  , id (head ((0:_) ++ _)) :: Int+  , id (head ([_] ++ _)) :: Int+  , id (head ((_:_) ++ [])) :: Int+  , id (head ((_:_) ++ _)) :: Int+  , id (head ((_:_) ++ xs)) :: Int+  , id (head ((_:_) ++ (_:_))) :: Int+  , id (head ((_:xs) ++ _)) :: Int+  , id (head ((_:_:_) ++ _)) :: Int+  , id (head ((x:_) ++ _)) :: Int+  , id (head ((id _:_) ++ _)) :: Int+  , id ((-1) * _) :: Int+  , id (0 * 0) :: Int+  , id (0 * 1) :: Int+  , id (0 * _) :: Int+  , id (0 * x) :: Int+  , id (0 * y) :: Int+  , id (0 * ord _) :: Int+  , id (0 * abs _) :: Int+  , id (0 * id 0) :: Int+  , id (0 * id _) :: Int+  , id (0 * id x) :: Int+  , id (0 * id (id _)) :: Int+  , id (0 * negate _) :: Int+  , id (0 * head _) :: Int+  , id (0 * (_ + _)) :: Int+  , id (1 * 0) :: Int+  , id (1 * _) :: Int+  , id (1 * x) :: Int+  , id (1 * id _) :: Int+  , id (_ * (-1)) :: Int+  , id (_ * 0) :: Int+  , id (_ * 1) :: Int+  , id (_ * _) :: Int+  , id (_ * x) :: Int+  , id (_ * y) :: Int+  , id (_ * z) :: Int+  , id (_ * ord 'a') :: Int+  , id (_ * ord _) :: Int+  , id (_ * ord c) :: Int+  , id (_ * f _) :: Int+  , id (_ * abs 0) :: Int+  , id (_ * abs _) :: Int+  , id (_ * abs x) :: Int+  , id (_ * abs (id _)) :: Int+  , id (_ * id 0) :: Int+  , id (_ * id 1) :: Int+  , id (_ * id _) :: Int+  , id (_ * id x) :: Int+  , id (_ * id y) :: Int+  , id (_ * id (ord _)) :: Int+  , id (_ * id (abs _)) :: Int+  , id (_ * id (id 0)) :: Int+  , id (_ * id (id _)) :: Int+  , id (_ * id (id x)) :: Int+  , id (_ * id (id (id _))) :: Int+  , id (_ * id (negate _)) :: Int+  , id (_ * id (head _)) :: Int+  , id (_ * id (_ + _)) :: Int+  , id (_ * negate 0) :: Int+  , id (_ * negate _) :: Int+  , id (_ * negate x) :: Int+  , id (_ * negate (id _)) :: Int+  , id (_ * head []) :: Int+  , id (_ * head _) :: Int+  , id (_ * head xs) :: Int+  , id (_ * head (_:_)) :: Int+  , id (_ * (_ * _)) :: Int+  , id (_ * (0 + _)) :: Int+  , id (_ * (_ + 0)) :: Int+  , id (_ * (_ + _)) :: Int+  , id (_ * (_ + x)) :: Int+  , id (_ * (_ + id _)) :: Int+  , id (_ * (x + _)) :: Int+  , id (_ * (id _ + _)) :: Int+  , id (x * 0) :: Int+  , id (x * 1) :: Int+  , id (x * _) :: Int+  , id (x * x) :: Int+  , id (x * y) :: Int+  , id (x * ord _) :: Int+  , id (x * abs _) :: Int+  , id (x * id 0) :: Int+  , id (x * id _) :: Int+  , id (x * id x) :: Int+  , id (x * id (id _)) :: Int+  , id (x * negate _) :: Int+  , id (x * head _) :: Int+  , id (x * (_ + _)) :: Int+  , id (y * 0) :: Int+  , id (y * _) :: Int+  , id (y * x) :: Int+  , id (y * id _) :: Int+  , id (z * _) :: Int+  , id (ord 'a' * _) :: Int+  , id (ord _ * 0) :: Int+  , id (ord _ * _) :: Int+  , id (ord _ * x) :: Int+  , id (ord _ * id _) :: Int+  , id (ord c * _) :: Int+  , id (f _ * _) :: Int+  , id (abs 0 * _) :: Int+  , id (abs _ * 0) :: Int+  , id (abs _ * _) :: Int+  , id (abs _ * x) :: Int+  , id (abs _ * id _) :: Int+  , id (abs x * _) :: Int+  , id (abs (id _) * _) :: Int+  , id (id 0 * 0) :: Int+  , id (id 0 * _) :: Int+  , id (id 0 * x) :: Int+  , id (id 0 * id _) :: Int+  , id (id 1 * _) :: Int+  , id (id _ * 0) :: Int+  , id (id _ * 1) :: Int+  , id (id _ * _) :: Int+  , id (id _ * x) :: Int+  , id (id _ * y) :: Int+  , id (id _ * ord _) :: Int+  , id (id _ * abs _) :: Int+  , id (id _ * id 0) :: Int+  , id (id _ * id _) :: Int+  , id (id _ * id x) :: Int+  , id (id _ * id (id _)) :: Int+  , id (id _ * negate _) :: Int+  , id (id _ * head _) :: Int+  , id (id _ * (_ + _)) :: Int+  , id (id x * 0) :: Int+  , id (id x * _) :: Int+  , id (id x * x) :: Int+  , id (id x * id _) :: Int+  , id (id y * _) :: Int+  , id (id (ord _) * _) :: Int+  , id (id (abs _) * _) :: Int+  , id (id (id 0) * _) :: Int+  , id (id (id _) * 0) :: Int+  , id (id (id _) * _) :: Int+  , id (id (id _) * x) :: Int+  , id (id (id _) * id _) :: Int+  , id (id (id x) * _) :: Int+  , id (id (id (id _)) * _) :: Int+  , id (id (negate _) * _) :: Int+  , id (id (head _) * _) :: Int+  , id (id (_ + _) * _) :: Int+  , id (negate 0 * _) :: Int+  , id (negate _ * 0) :: Int+  , id (negate _ * _) :: Int+  , id (negate _ * x) :: Int+  , id (negate _ * id _) :: Int+  , id (negate x * _) :: Int+  , id (negate (id _) * _) :: Int+  , id (head [] * _) :: Int+  , id (head _ * 0) :: Int+  , id (head _ * _) :: Int+  , id (head _ * x) :: Int+  , id (head _ * id _) :: Int+  , id (head xs * _) :: Int+  , id (head (_:_) * _) :: Int+  , id ((_ * _) * _) :: Int+  , id ((0 + _) * _) :: Int+  , id ((_ + 0) * _) :: Int+  , id ((_ + _) * 0) :: Int+  , id ((_ + _) * _) :: Int+  , id ((_ + _) * x) :: Int+  , id ((_ + _) * id _) :: Int+  , id ((_ + x) * _) :: Int+  , id ((_ + id _) * _) :: Int+  , id ((x + _) * _) :: Int+  , id ((id _ + _) * _) :: Int+  , id ((-1) + 0) :: Int+  , id ((-1) + _) :: Int+  , id ((-1) + x) :: Int+  , id ((-1) + id _) :: Int+  , id (0 + (-1)) :: Int+  , id (0 + 0) :: Int+  , id (0 + 1) :: Int+  , id (0 + _) :: Int+  , id (0 + x) :: Int+  , id (0 + y) :: Int+  , id (0 + z) :: Int+  , id (0 + ord 'a') :: Int+  , id (0 + ord _) :: Int+  , id (0 + ord c) :: Int+  , id (0 + f _) :: Int+  , id (0 + abs 0) :: Int+  , id (0 + abs _) :: Int+  , id (0 + abs x) :: Int+  , id (0 + abs (id _)) :: Int+  , id (0 + id 0) :: Int+  , id (0 + id 1) :: Int+  , id (0 + id _) :: Int+  , id (0 + id x) :: Int+  , id (0 + id y) :: Int+  , id (0 + id (ord _)) :: Int+  , id (0 + id (abs _)) :: Int+  , id (0 + id (id 0)) :: Int+  , id (0 + id (id _)) :: Int+  , id (0 + id (id x)) :: Int+  , id (0 + id (id (id _))) :: Int+  , id (0 + id (negate _)) :: Int+  , id (0 + id (head _)) :: Int+  , id (0 + id (_ + _)) :: Int+  , id (0 + negate 0) :: Int+  , id (0 + negate _) :: Int+  , id (0 + negate x) :: Int+  , id (0 + negate (id _)) :: Int+  , id (0 + head []) :: Int+  , id (0 + head _) :: Int+  , id (0 + head xs) :: Int+  , id (0 + head (_:_)) :: Int+  , id (0 + _ * _) :: Int+  , id (0 + (0 + _)) :: Int+  , id (0 + (_ + 0)) :: Int+  , id (0 + (_ + _)) :: Int+  , id (0 + (_ + x)) :: Int+  , id (0 + (_ + id _)) :: Int+  , id (0 + (x + _)) :: Int+  , id (0 + (id _ + _)) :: Int+  , id (1 + 0) :: Int+  , id (1 + 1) :: Int+  , id (1 + _) :: Int+  , id (1 + x) :: Int+  , id (1 + y) :: Int+  , id (1 + ord _) :: Int+  , id (1 + abs _) :: Int+  , id (1 + id 0) :: Int+  , id (1 + id _) :: Int+  , id (1 + id x) :: Int+  , id (1 + id (id _)) :: Int+  , id (1 + negate _) :: Int+  , id (1 + head _) :: Int+  , id (1 + (_ + _)) :: Int+  , id (2 + _) :: Int+  , id (_ + (-1)) :: Int+  , id (_ + 0) :: Int+  , id (_ + 1) :: Int+  , id (_ + 2) :: Int+  , id (_ + _) :: Int+  , id (_ + x) :: Int+  , id (_ + x') :: Int+  , id (_ + y) :: Int+  , id (_ + z) :: Int+  , id (_ + ord ' ') :: Int+  , id (_ + ord 'a') :: Int+  , id (_ + ord _) :: Int+  , id (_ + ord c) :: Int+  , id (_ + ord d) :: Int+  , id (_ + f 0) :: Int+  , id (_ + f _) :: Int+  , id (_ + f x) :: Int+  , id (_ + f (id _)) :: Int+  , id (_ + g _) :: Int+  , id (_ + abs 0) :: Int+  , id (_ + abs 1) :: Int+  , id (_ + abs _) :: Int+  , id (_ + abs x) :: Int+  , id (_ + abs y) :: Int+  , id (_ + abs (ord _)) :: Int+  , id (_ + abs (abs _)) :: Int+  , id (_ + abs (id 0)) :: Int+  , id (_ + abs (id _)) :: Int+  , id (_ + abs (id x)) :: Int+  , id (_ + abs (id (id _))) :: Int+  , id (_ + abs (negate _)) :: Int+  , id (_ + abs (head _)) :: Int+  , id (_ + abs (_ + _)) :: Int+  , id (_ + id (-1)) :: Int+  , id (_ + id 0) :: Int+  , id (_ + id 1) :: Int+  , id (_ + id _) :: Int+  , id (_ + id x) :: Int+  , id (_ + id y) :: Int+  , id (_ + id z) :: Int+  , id (_ + id (ord 'a')) :: Int+  , id (_ + id (ord _)) :: Int+  , id (_ + id (ord c)) :: Int+  , id (_ + id (f _)) :: Int+  , id (_ + id (abs 0)) :: Int+  , id (_ + id (abs _)) :: Int+  , id (_ + id (abs x)) :: Int+  , id (_ + id (abs (id _))) :: Int+  , id (_ + id (id 0)) :: Int+  , id (_ + id (id 1)) :: Int+  , id (_ + id (id _)) :: Int+  , id (_ + id (id x)) :: Int+  , id (_ + id (id y)) :: Int+  , id (_ + id (id (ord _))) :: Int+  , id (_ + id (id (abs _))) :: Int+  , id (_ + id (id (id 0))) :: Int+  , id (_ + id (id (id _))) :: Int+  , id (_ + id (id (id x))) :: Int+  , id (_ + id (id (id (id _)))) :: Int+  , id (_ + id (id (negate _))) :: Int+  , id (_ + id (id (head _))) :: Int+  , id (_ + id (id (_ + _))) :: Int+  , id (_ + id (negate 0)) :: Int+  , id (_ + id (negate _)) :: Int+  , id (_ + id (negate x)) :: Int+  , id (_ + id (negate (id _))) :: Int+  , id (_ + id (head [])) :: Int+  , id (_ + id (head _)) :: Int+  , id (_ + id (head xs)) :: Int+  , id (_ + id (head (_:_))) :: Int+  , id (_ + id (_ * _)) :: Int+  , id (_ + id (0 + _)) :: Int+  , id (_ + id (_ + 0)) :: Int+  , id (_ + id (_ + _)) :: Int+  , id (_ + id (_ + x)) :: Int+  , id (_ + id (_ + id _)) :: Int+  , id (_ + id (x + _)) :: Int+  , id (_ + id (id _ + _)) :: Int+  , id (_ + negate 0) :: Int+  , id (_ + negate 1) :: Int+  , id (_ + negate _) :: Int+  , id (_ + negate x) :: Int+  , id (_ + negate y) :: Int+  , id (_ + negate (ord _)) :: Int+  , id (_ + negate (abs _)) :: Int+  , id (_ + negate (id 0)) :: Int+  , id (_ + negate (id _)) :: Int+  , id (_ + negate (id x)) :: Int+  , id (_ + negate (id (id _))) :: Int+  , id (_ + negate (negate _)) :: Int+  , id (_ + negate (head _)) :: Int+  , id (_ + negate (_ + _)) :: Int+  , id (_ + head [0]) :: Int+  , id (_ + head []) :: Int+  , id (_ + head _) :: Int+  , id (_ + head xs) :: Int+  , id (_ + head ys) :: Int+  , id (_ + head (tail _)) :: Int+  , id (_ + head (0:_)) :: Int+  , id (_ + head [_]) :: Int+  , id (_ + head (_:_)) :: Int+  , id (_ + head (_:xs)) :: Int+  , id (_ + head (_:_:_)) :: Int+  , id (_ + head (x:_)) :: Int+  , id (_ + head (id _:_)) :: Int+  , id (_ + head (_ ++ _)) :: Int+  , id (_ + 0 * _) :: Int+  , id (_ + _ * 0) :: Int+  , id (_ + _ * _) :: Int+  , id (_ + _ * x) :: Int+  , id (_ + _ * id _) :: Int+  , id (_ + x * _) :: Int+  , id (_ + id _ * _) :: Int+  , id (_ + (0 + 0)) :: Int+  , id (_ + (0 + _)) :: Int+  , id (_ + (0 + x)) :: Int+  , id (_ + (0 + id _)) :: Int+  , id (_ + (1 + _)) :: Int+  , id (_ + (_ + 0)) :: Int+  , id (_ + (_ + 1)) :: Int+  , id (_ + (_ + _)) :: Int+  , id (_ + (_ + x)) :: Int+  , id (_ + (_ + y)) :: Int+  , id (_ + (_ + ord _)) :: Int+  , id (_ + (_ + abs _)) :: Int+  , id (_ + (_ + id 0)) :: Int+  , id (_ + (_ + id _)) :: Int+  , id (_ + (_ + id x)) :: Int+  , id (_ + (_ + id (id _))) :: Int+  , id (_ + (_ + negate _)) :: Int+  , id (_ + (_ + head _)) :: Int+  , id (_ + (_ + (_ + _))) :: Int+  , id (_ + (x + 0)) :: Int+  , id (_ + (x + _)) :: Int+  , id (_ + (x + x)) :: Int+  , id (_ + (x + id _)) :: Int+  , id (_ + (y + _)) :: Int+  , id (_ + (ord _ + _)) :: Int+  , id (_ + (abs _ + _)) :: Int+  , id (_ + (id 0 + _)) :: Int+  , id (_ + (id _ + 0)) :: Int+  , id (_ + (id _ + _)) :: Int+  , id (_ + (id _ + x)) :: Int+  , id (_ + (id _ + id _)) :: Int+  , id (_ + (id x + _)) :: Int+  , id (_ + (id (id _) + _)) :: Int+  , id (_ + (negate _ + _)) :: Int+  , id (_ + (head _ + _)) :: Int+  , id (_ + ((_ + _) + _)) :: Int+  , id (x + (-1)) :: Int+  , id (x + 0) :: Int+  , id (x + 1) :: Int+  , id (x + _) :: Int+  , id (x + x) :: Int+  , id (x + y) :: Int+  , id (x + z) :: Int+  , id (x + ord 'a') :: Int+  , id (x + ord _) :: Int+  , id (x + ord c) :: Int+  , id (x + f _) :: Int+  , id (x + abs 0) :: Int+  , id (x + abs _) :: Int+  , id (x + abs x) :: Int+  , id (x + abs (id _)) :: Int+  , id (x + id 0) :: Int+  , id (x + id 1) :: Int+  , id (x + id _) :: Int+  , id (x + id x) :: Int+  , id (x + id y) :: Int+  , id (x + id (ord _)) :: Int+  , id (x + id (abs _)) :: Int+  , id (x + id (id 0)) :: Int+  , id (x + id (id _)) :: Int+  , id (x + id (id x)) :: Int+  , id (x + id (id (id _))) :: Int+  , id (x + id (negate _)) :: Int+  , id (x + id (head _)) :: Int+  , id (x + id (_ + _)) :: Int+  , id (x + negate 0) :: Int+  , id (x + negate _) :: Int+  , id (x + negate x) :: Int+  , id (x + negate (id _)) :: Int+  , id (x + head []) :: Int+  , id (x + head _) :: Int+  , id (x + head xs) :: Int+  , id (x + head (_:_)) :: Int+  , id (x + _ * _) :: Int+  , id (x + (0 + _)) :: Int+  , id (x + (_ + 0)) :: Int+  , id (x + (_ + _)) :: Int+  , id (x + (_ + x)) :: Int+  , id (x + (_ + id _)) :: Int+  , id (x + (x + _)) :: Int+  , id (x + (id _ + _)) :: Int+  , id (x' + _) :: Int+  , id (y + 0) :: Int+  , id (y + 1) :: Int+  , id (y + _) :: Int+  , id (y + x) :: Int+  , id (y + y) :: Int+  , id (y + ord _) :: Int+  , id (y + abs _) :: Int+  , id (y + id 0) :: Int+  , id (y + id _) :: Int+  , id (y + id x) :: Int+  , id (y + id (id _)) :: Int+  , id (y + negate _) :: Int+  , id (y + head _) :: Int+  , id (y + (_ + _)) :: Int+  , id (z + 0) :: Int+  , id (z + _) :: Int+  , id (z + x) :: Int+  , id (z + id _) :: Int+  , id (ord ' ' + _) :: Int+  , id (ord 'a' + 0) :: Int+  , id (ord 'a' + _) :: Int+  , id (ord 'a' + x) :: Int+  , id (ord 'a' + id _) :: Int+  , id (ord _ + 0) :: Int+  , id (ord _ + 1) :: Int+  , id (ord _ + _) :: Int+  , id (ord _ + x) :: Int+  , id (ord _ + y) :: Int+  , id (ord _ + ord _) :: Int+  , id (ord _ + abs _) :: Int+  , id (ord _ + id 0) :: Int+  , id (ord _ + id _) :: Int+  , id (ord _ + id x) :: Int+  , id (ord _ + id (id _)) :: Int+  , id (ord _ + negate _) :: Int+  , id (ord _ + head _) :: Int+  , id (ord _ + (_ + _)) :: Int+  , id (ord c + 0) :: Int+  , id (ord c + _) :: Int+  , id (ord c + x) :: Int+  , id (ord c + id _) :: Int+  , id (ord d + _) :: Int+  , id (f 0 + _) :: Int+  , id (f _ + 0) :: Int+  , id (f _ + _) :: Int+  , id (f _ + x) :: Int+  , id (f _ + id _) :: Int+  , id (f x + _) :: Int+  , id (f (id _) + _) :: Int+  , id (g _ + _) :: Int+  , id (abs 0 + 0) :: Int+  , id (abs 0 + _) :: Int+  , id (abs 0 + x) :: Int+  , id (abs 0 + id _) :: Int+  , id (abs 1 + _) :: Int+  , id (abs _ + 0) :: Int+  , id (abs _ + 1) :: Int+  , id (abs _ + _) :: Int+  , id (abs _ + x) :: Int+  , id (abs _ + y) :: Int+  , id (abs _ + ord _) :: Int+  , id (abs _ + abs _) :: Int+  , id (abs _ + id 0) :: Int+  , id (abs _ + id _) :: Int+  , id (abs _ + id x) :: Int+  , id (abs _ + id (id _)) :: Int+  , id (abs _ + negate _) :: Int+  , id (abs _ + head _) :: Int+  , id (abs _ + (_ + _)) :: Int+  , id (abs x + 0) :: Int+  , id (abs x + _) :: Int+  , id (abs x + x) :: Int+  , id (abs x + id _) :: Int+  , id (abs y + _) :: Int+  , id (abs (ord _) + _) :: Int+  , id (abs (abs _) + _) :: Int+  , id (abs (id 0) + _) :: Int+  , id (abs (id _) + 0) :: Int+  , id (abs (id _) + _) :: Int+  , id (abs (id _) + x) :: Int+  , id (abs (id _) + id _) :: Int+  , id (abs (id x) + _) :: Int+  , id (abs (id (id _)) + _) :: Int+  , id (abs (negate _) + _) :: Int+  , id (abs (head _) + _) :: Int+  , id (abs (_ + _) + _) :: Int+  , id (id (-1) + _) :: Int+  , id (id 0 + 0) :: Int+  , id (id 0 + 1) :: Int+  , id (id 0 + _) :: Int+  , id (id 0 + x) :: Int+  , id (id 0 + y) :: Int+  , id (id 0 + ord _) :: Int+  , id (id 0 + abs _) :: Int+  , id (id 0 + id 0) :: Int+  , id (id 0 + id _) :: Int+  , id (id 0 + id x) :: Int+  , id (id 0 + id (id _)) :: Int+  , id (id 0 + negate _) :: Int+  , id (id 0 + head _) :: Int+  , id (id 0 + (_ + _)) :: Int+  , id (id 1 + 0) :: Int+  , id (id 1 + _) :: Int+  , id (id 1 + x) :: Int+  , id (id 1 + id _) :: Int+  , id (id _ + (-1)) :: Int+  , id (id _ + 0) :: Int+  , id (id _ + 1) :: Int+  , id (id _ + _) :: Int+  , id (id _ + x) :: Int+  , id (id _ + y) :: Int+  , id (id _ + z) :: Int+  , id (id _ + ord 'a') :: Int+  , id (id _ + ord _) :: Int+  , id (id _ + ord c) :: Int+  , id (id _ + f _) :: Int+  , id (id _ + abs 0) :: Int+  , id (id _ + abs _) :: Int+  , id (id _ + abs x) :: Int+  , id (id _ + abs (id _)) :: Int+  , id (id _ + id 0) :: Int+  , id (id _ + id 1) :: Int+  , id (id _ + id _) :: Int+  , id (id _ + id x) :: Int+  , id (id _ + id y) :: Int+  , id (id _ + id (ord _)) :: Int+  , id (id _ + id (abs _)) :: Int+  , id (id _ + id (id 0)) :: Int+  , id (id _ + id (id _)) :: Int+  , id (id _ + id (id x)) :: Int+  , id (id _ + id (id (id _))) :: Int+  , id (id _ + id (negate _)) :: Int+  , id (id _ + id (head _)) :: Int+  , id (id _ + id (_ + _)) :: Int+  , id (id _ + negate 0) :: Int+  , id (id _ + negate _) :: Int+  , id (id _ + negate x) :: Int+  , id (id _ + negate (id _)) :: Int+  , id (id _ + head []) :: Int+  , id (id _ + head _) :: Int+  , id (id _ + head xs) :: Int+  , id (id _ + head (_:_)) :: Int+  , id (id _ + _ * _) :: Int+  , id (id _ + (0 + _)) :: Int+  , id (id _ + (_ + 0)) :: Int+  , id (id _ + (_ + _)) :: Int+  , id (id _ + (_ + x)) :: Int+  , id (id _ + (_ + id _)) :: Int+  , id (id _ + (x + _)) :: Int+  , id (id _ + (id _ + _)) :: Int+  , id (id x + 0) :: Int+  , id (id x + 1) :: Int+  , id (id x + _) :: Int+  , id (id x + x) :: Int+  , id (id x + y) :: Int+  , id (id x + ord _) :: Int+  , id (id x + abs _) :: Int+  , id (id x + id 0) :: Int+  , id (id x + id _) :: Int+  , id (id x + id x) :: Int+  , id (id x + id (id _)) :: Int+  , id (id x + negate _) :: Int+  , id (id x + head _) :: Int+  , id (id x + (_ + _)) :: Int+  , id (id y + 0) :: Int+  , id (id y + _) :: Int+  , id (id y + x) :: Int+  , id (id y + id _) :: Int+  , id (id z + _) :: Int+  , id (id (ord 'a') + _) :: Int+  , id (id (ord _) + 0) :: Int+  , id (id (ord _) + _) :: Int+  , id (id (ord _) + x) :: Int+  , id (id (ord _) + id _) :: Int+  , id (id (ord c) + _) :: Int+  , id (id (f _) + _) :: Int+  , id (id (abs 0) + _) :: Int+  , id (id (abs _) + 0) :: Int+  , id (id (abs _) + _) :: Int+  , id (id (abs _) + x) :: Int+  , id (id (abs _) + id _) :: Int+  , id (id (abs x) + _) :: Int+  , id (id (abs (id _)) + _) :: Int+  , id (id (id 0) + 0) :: Int+  , id (id (id 0) + _) :: Int+  , id (id (id 0) + x) :: Int+  , id (id (id 0) + id _) :: Int+  , id (id (id 1) + _) :: Int+  , id (id (id _) + 0) :: Int+  , id (id (id _) + 1) :: Int+  , id (id (id _) + _) :: Int+  , id (id (id _) + x) :: Int+  , id (id (id _) + y) :: Int+  , id (id (id _) + ord _) :: Int+  , id (id (id _) + abs _) :: Int+  , id (id (id _) + id 0) :: Int+  , id (id (id _) + id _) :: Int+  , id (id (id _) + id x) :: Int+  , id (id (id _) + id (id _)) :: Int+  , id (id (id _) + negate _) :: Int+  , id (id (id _) + head _) :: Int+  , id (id (id _) + (_ + _)) :: Int+  , id (id (id x) + 0) :: Int+  , id (id (id x) + _) :: Int+  , id (id (id x) + x) :: Int+  , id (id (id x) + id _) :: Int+  , id (id (id y) + _) :: Int+  , id (id (id (ord _)) + _) :: Int+  , id (id (id (abs _)) + _) :: Int+  , id (id (id (id 0)) + _) :: Int+  , id (id (id (id _)) + 0) :: Int+  , id (id (id (id _)) + _) :: Int+  , id (id (id (id _)) + x) :: Int+  , id (id (id (id _)) + id _) :: Int+  , id (id (id (id x)) + _) :: Int+  , id (id (id (id (id _))) + _) :: Int+  , id (id (id (negate _)) + _) :: Int+  , id (id (id (head _)) + _) :: Int+  , id (id (id (_ + _)) + _) :: Int+  , id (id (negate 0) + _) :: Int+  , id (id (negate _) + 0) :: Int+  , id (id (negate _) + _) :: Int+  , id (id (negate _) + x) :: Int+  , id (id (negate _) + id _) :: Int+  , id (id (negate x) + _) :: Int+  , id (id (negate (id _)) + _) :: Int+  , id (id (head []) + _) :: Int+  , id (id (head _) + 0) :: Int+  , id (id (head _) + _) :: Int+  , id (id (head _) + x) :: Int+  , id (id (head _) + id _) :: Int+  , id (id (head xs) + _) :: Int+  , id (id (head (_:_)) + _) :: Int+  , id (id (_ * _) + _) :: Int+  , id (id (0 + _) + _) :: Int+  , id (id (_ + 0) + _) :: Int+  , id (id (_ + _) + 0) :: Int+  , id (id (_ + _) + _) :: Int+  , id (id (_ + _) + x) :: Int+  , id (id (_ + _) + id _) :: Int+  , id (id (_ + x) + _) :: Int+  , id (id (_ + id _) + _) :: Int+  , id (id (x + _) + _) :: Int+  , id (id (id _ + _) + _) :: Int+  , id (negate 0 + 0) :: Int+  , id (negate 0 + _) :: Int+  , id (negate 0 + x) :: Int+  , id (negate 0 + id _) :: Int+  , id (negate 1 + _) :: Int+  , id (negate _ + 0) :: Int+  , id (negate _ + 1) :: Int+  , id (negate _ + _) :: Int+  , id (negate _ + x) :: Int+  , id (negate _ + y) :: Int+  , id (negate _ + ord _) :: Int+  , id (negate _ + abs _) :: Int+  , id (negate _ + id 0) :: Int+  , id (negate _ + id _) :: Int+  , id (negate _ + id x) :: Int+  , id (negate _ + id (id _)) :: Int+  , id (negate _ + negate _) :: Int+  , id (negate _ + head _) :: Int+  , id (negate _ + (_ + _)) :: Int+  , id (negate x + 0) :: Int+  , id (negate x + _) :: Int+  , id (negate x + x) :: Int+  , id (negate x + id _) :: Int+  , id (negate y + _) :: Int+  , id (negate (ord _) + _) :: Int+  , id (negate (abs _) + _) :: Int+  , id (negate (id 0) + _) :: Int+  , id (negate (id _) + 0) :: Int+  , id (negate (id _) + _) :: Int+  , id (negate (id _) + x) :: Int+  , id (negate (id _) + id _) :: Int+  , id (negate (id x) + _) :: Int+  , id (negate (id (id _)) + _) :: Int+  , id (negate (negate _) + _) :: Int+  , id (negate (head _) + _) :: Int+  , id (negate (_ + _) + _) :: Int+  , id (head [0] + _) :: Int+  , id (head [] + 0) :: Int+  , id (head [] + _) :: Int+  , id (head [] + x) :: Int+  , id (head [] + id _) :: Int+  , id (head _ + 0) :: Int+  , id (head _ + 1) :: Int+  , id (head _ + _) :: Int+  , id (head _ + x) :: Int+  , id (head _ + y) :: Int+  , id (head _ + ord _) :: Int+  , id (head _ + abs _) :: Int+  , id (head _ + id 0) :: Int+  , id (head _ + id _) :: Int+  , id (head _ + id x) :: Int+  , id (head _ + id (id _)) :: Int+  , id (head _ + negate _) :: Int+  , id (head _ + head _) :: Int+  , id (head _ + (_ + _)) :: Int+  , id (head xs + 0) :: Int+  , id (head xs + _) :: Int+  , id (head xs + x) :: Int+  , id (head xs + id _) :: Int+  , id (head ys + _) :: Int+  , id (head (tail _) + _) :: Int+  , id (head (0:_) + _) :: Int+  , id (head [_] + _) :: Int+  , id (head (_:_) + 0) :: Int+  , id (head (_:_) + _) :: Int+  , id (head (_:_) + x) :: Int+  , id (head (_:_) + id _) :: Int+  , id (head (_:xs) + _) :: Int+  , id (head (_:_:_) + _) :: Int+  , id (head (x:_) + _) :: Int+  , id (head (id _:_) + _) :: Int+  , id (head (_ ++ _) + _) :: Int+  , id (0 * _ + _) :: Int+  , id (_ * 0 + _) :: Int+  , id (_ * _ + 0) :: Int+  , id (_ * _ + _) :: Int+  , id (_ * _ + x) :: Int+  , id (_ * _ + id _) :: Int+  , id (_ * x + _) :: Int+  , id (_ * id _ + _) :: Int+  , id (x * _ + _) :: Int+  , id (id _ * _ + _) :: Int+  , id ((0 + 0) + _) :: Int+  , id ((0 + _) + 0) :: Int+  , id ((0 + _) + _) :: Int+  , id ((0 + _) + x) :: Int+  , id ((0 + _) + id _) :: Int+  , id ((0 + x) + _) :: Int+  , id ((0 + id _) + _) :: Int+  , id ((1 + _) + _) :: Int+  , id ((_ + 0) + 0) :: Int+  , id ((_ + 0) + _) :: Int+  , id ((_ + 0) + x) :: Int+  , id ((_ + 0) + id _) :: Int+  , id ((_ + 1) + _) :: Int+  , id ((_ + _) + 0) :: Int+  , id ((_ + _) + 1) :: Int+  , id ((_ + _) + _) :: Int+  , id ((_ + _) + x) :: Int+  , id ((_ + _) + y) :: Int+  , id ((_ + _) + ord _) :: Int+  , id ((_ + _) + abs _) :: Int+  , id ((_ + _) + id 0) :: Int+  , id ((_ + _) + id _) :: Int+  , id ((_ + _) + id x) :: Int+  , id ((_ + _) + id (id _)) :: Int+  , id ((_ + _) + negate _) :: Int+  , id ((_ + _) + head _) :: Int+  , id ((_ + _) + (_ + _)) :: Int+  , id ((_ + x) + 0) :: Int+  , id ((_ + x) + _) :: Int+  , id ((_ + x) + x) :: Int+  , id ((_ + x) + id _) :: Int+  , id ((_ + y) + _) :: Int+  , id ((_ + ord _) + _) :: Int+  , id ((_ + abs _) + _) :: Int+  , id ((_ + id 0) + _) :: Int+  , id ((_ + id _) + 0) :: Int+  , id ((_ + id _) + _) :: Int+  , id ((_ + id _) + x) :: Int+  , id ((_ + id _) + id _) :: Int+  , id ((_ + id x) + _) :: Int+  , id ((_ + id (id _)) + _) :: Int+  , id ((_ + negate _) + _) :: Int+  , id ((_ + head _) + _) :: Int+  , id ((_ + (_ + _)) + _) :: Int+  , id ((x + 0) + _) :: Int+  , id ((x + _) + 0) :: Int+  , id ((x + _) + _) :: Int+  , id ((x + _) + x) :: Int+  , id ((x + _) + id _) :: Int+  , id ((x + x) + _) :: Int+  , id ((x + id _) + _) :: Int+  , id ((y + _) + _) :: Int+  , id ((ord _ + _) + _) :: Int+  , id ((abs _ + _) + _) :: Int+  , id ((id 0 + _) + _) :: Int+  , id ((id _ + 0) + _) :: Int+  , id ((id _ + _) + 0) :: Int+  , id ((id _ + _) + _) :: Int+  , id ((id _ + _) + x) :: Int+  , id ((id _ + _) + id _) :: Int+  , id ((id _ + x) + _) :: Int+  , id ((id _ + id _) + _) :: Int+  , id ((id x + _) + _) :: Int+  , id ((id (id _) + _) + _) :: Int+  , id ((negate _ + _) + _) :: Int+  , id ((head _ + _) + _) :: Int+  , id (((_ + _) + _) + _) :: Int+  , negate (-1) :: Int+  , negate 0 :: Int+  , negate 1 :: Int+  , negate 2 :: Int+  , negate _ :: Int+  , negate x :: Int+  , negate x' :: Int+  , negate y :: Int+  , negate z :: Int+  , negate (ord ' ') :: Int+  , negate (ord 'a') :: Int+  , negate (ord _) :: Int+  , negate (ord c) :: Int+  , negate (ord d) :: Int+  , negate (f 0) :: Int+  , negate (f _) :: Int+  , negate (f x) :: Int+  , negate (f (id _)) :: Int+  , negate (g _) :: Int+  , negate (abs 0) :: Int+  , negate (abs 1) :: Int+  , negate (abs _) :: Int+  , negate (abs x) :: Int+  , negate (abs y) :: Int+  , negate (abs (ord _)) :: Int+  , negate (abs (abs _)) :: Int+  , negate (abs (id 0)) :: Int+  , negate (abs (id _)) :: Int+  , negate (abs (id x)) :: Int+  , negate (abs (id (id _))) :: Int+  , negate (abs (negate _)) :: Int+  , negate (abs (head _)) :: Int+  , negate (abs (_ + _)) :: Int+  , negate (id (-1)) :: Int+  , negate (id 0) :: Int+  , negate (id 1) :: Int+  , negate (id _) :: Int+  , negate (id x) :: Int+  , negate (id y) :: Int+  , negate (id z) :: Int+  , negate (id (ord 'a')) :: Int+  , negate (id (ord _)) :: Int+  , negate (id (ord c)) :: Int+  , negate (id (f _)) :: Int+  , negate (id (abs 0)) :: Int+  , negate (id (abs _)) :: Int+  , negate (id (abs x)) :: Int+  , negate (id (abs (id _))) :: Int+  , negate (id (id 0)) :: Int+  , negate (id (id 1)) :: Int+  , negate (id (id _)) :: Int+  , negate (id (id x)) :: Int+  , negate (id (id y)) :: Int+  , negate (id (id (ord _))) :: Int+  , negate (id (id (abs _))) :: Int+  , negate (id (id (id 0))) :: Int+  , negate (id (id (id _))) :: Int+  , negate (id (id (id x))) :: Int+  , negate (id (id (id (id _)))) :: Int+  , negate (id (id (negate _))) :: Int+  , negate (id (id (head _))) :: Int+  , negate (id (id (_ + _))) :: Int+  , negate (id (negate 0)) :: Int+  , negate (id (negate _)) :: Int+  , negate (id (negate x)) :: Int+  , negate (id (negate (id _))) :: Int+  , negate (id (head [])) :: Int+  , negate (id (head _)) :: Int+  , negate (id (head xs)) :: Int+  , negate (id (head (_:_))) :: Int+  , negate (id (_ * _)) :: Int+  , negate (id (0 + _)) :: Int+  , negate (id (_ + 0)) :: Int+  , negate (id (_ + _)) :: Int+  , negate (id (_ + x)) :: Int+  , negate (id (_ + id _)) :: Int+  , negate (id (x + _)) :: Int+  , negate (id (id _ + _)) :: Int+  , negate (negate 0) :: Int+  , negate (negate 1) :: Int+  , negate (negate _) :: Int+  , negate (negate x) :: Int+  , negate (negate y) :: Int+  , negate (negate (ord _)) :: Int+  , negate (negate (abs _)) :: Int+  , negate (negate (id 0)) :: Int+  , negate (negate (id _)) :: Int+  , negate (negate (id x)) :: Int+  , negate (negate (id (id _))) :: Int+  , negate (negate (negate _)) :: Int+  , negate (negate (head _)) :: Int+  , negate (negate (_ + _)) :: Int+  , negate (head [0]) :: Int+  , negate (head []) :: Int+  , negate (head _) :: Int+  , negate (head xs) :: Int+  , negate (head ys) :: Int+  , negate (head (tail _)) :: Int+  , negate (head (0:_)) :: Int+  , negate (head [_]) :: Int+  , negate (head (_:_)) :: Int+  , negate (head (_:xs)) :: Int+  , negate (head (_:_:_)) :: Int+  , negate (head (x:_)) :: Int+  , negate (head (id _:_)) :: Int+  , negate (head (_ ++ _)) :: Int+  , negate (0 * _) :: Int+  , negate (_ * 0) :: Int+  , negate (_ * _) :: Int+  , negate (_ * x) :: Int+  , negate (_ * id _) :: Int+  , negate (x * _) :: Int+  , negate (id _ * _) :: Int+  , negate (0 + 0) :: Int+  , negate (0 + _) :: Int+  , negate (0 + x) :: Int+  , negate (0 + id _) :: Int+  , negate (1 + _) :: Int+  , negate (_ + 0) :: Int+  , negate (_ + 1) :: Int+  , negate (_ + _) :: Int+  , negate (_ + x) :: Int+  , negate (_ + y) :: Int+  , negate (_ + ord _) :: Int+  , negate (_ + abs _) :: Int+  , negate (_ + id 0) :: Int+  , negate (_ + id _) :: Int+  , negate (_ + id x) :: Int+  , negate (_ + id (id _)) :: Int+  , negate (_ + negate _) :: Int+  , negate (_ + head _) :: Int+  , negate (_ + (_ + _)) :: Int+  , negate (x + 0) :: Int+  , negate (x + _) :: Int+  , negate (x + x) :: Int+  , negate (x + id _) :: Int+  , negate (y + _) :: Int+  , negate (ord _ + _) :: Int+  , negate (abs _ + _) :: Int+  , negate (id 0 + _) :: Int+  , negate (id _ + 0) :: Int+  , negate (id _ + _) :: Int+  , negate (id _ + x) :: Int+  , negate (id _ + id _) :: Int+  , negate (id x + _) :: Int+  , negate (id (id _) + _) :: Int+  , negate (negate _ + _) :: Int+  , negate (head _ + _) :: Int+  , negate ((_ + _) + _) :: Int+  , head [-1] :: Int+  , head [0,0,0] :: Int+  , head [0,0] :: Int+  , head [0,1] :: Int+  , head [0] :: Int+  , head [1,0] :: Int+  , head [1] :: Int+  , head [] :: Int+  , head _ :: Int+  , head xs :: Int+  , head xs' :: Int+  , head ys :: Int+  , head zs :: Int+  , head (sort []) :: Int+  , head (sort _) :: Int+  , head (sort xs) :: Int+  , head (sort (_:_)) :: Int+  , head (tail [0]) :: Int+  , head (tail []) :: Int+  , head (tail _) :: Int+  , head (tail xs) :: Int+  , head (tail ys) :: Int+  , head (tail (tail _)) :: Int+  , head (tail (0:_)) :: Int+  , head (tail [_]) :: Int+  , head (tail (_:_)) :: Int+  , head (tail (_:xs)) :: Int+  , head (tail (_:_:_)) :: Int+  , head (tail (x:_)) :: Int+  , head (tail (id _:_)) :: Int+  , head (tail (_ ++ _)) :: Int+  , head ((-1):_) :: Int+  , head (0:[0]) :: Int+  , head [0] :: Int+  , head (0:_) :: Int+  , head (0:xs) :: Int+  , head (0:ys) :: Int+  , head (0:tail _) :: Int+  , head (0:0:_) :: Int+  , head [0,_] :: Int+  , head (0:_:_) :: Int+  , head (0:_:xs) :: Int+  , head (0:_:_:_) :: Int+  , head (0:x:_) :: Int+  , head (0:id _:_) :: Int+  , head (0:(_ ++ _)) :: Int+  , head [1] :: Int+  , head (1:_) :: Int+  , head (1:xs) :: Int+  , head (1:_:_) :: Int+  , head (_:[0,0]) :: Int+  , head (_:[0]) :: Int+  , head (_:[1]) :: Int+  , head [_] :: Int+  , head (_:_) :: Int+  , head (_:xs) :: Int+  , head (_:ys) :: Int+  , head (_:zs) :: Int+  , head (_:sort _) :: Int+  , head (_:tail []) :: Int+  , head (_:tail _) :: Int+  , head (_:tail xs) :: Int+  , head (_:tail (_:_)) :: Int+  , head [_,0] :: Int+  , head (_:0:_) :: Int+  , head (_:0:xs) :: Int+  , head (_:0:_:_) :: Int+  , head (_:1:_) :: Int+  , head (_:_:[0]) :: Int+  , head [_,_] :: Int+  , head (_:_:_) :: Int+  , head (_:_:xs) :: Int+  , head (_:_:ys) :: Int+  , head (_:_:tail _) :: Int+  , head (_:_:0:_) :: Int+  , head [_,_,_] :: Int+  , head (_:_:_:_) :: Int+  , head (_:_:_:xs) :: Int+  , head (_:_:_:_:_) :: Int+  , head (_:_:x:_) :: Int+  , head (_:_:id _:_) :: Int+  , head (_:_:(_ ++ _)) :: Int+  , head [_,x] :: Int+  , head (_:x:_) :: Int+  , head (_:x:xs) :: Int+  , head (_:x:_:_) :: Int+  , head (_:y:_) :: Int+  , head (_:ord _:_) :: Int+  , head (_:abs _:_) :: Int+  , head (_:id 0:_) :: Int+  , head [_,id _] :: Int+  , head (_:id _:_) :: Int+  , head (_:id _:xs) :: Int+  , head (_:id _:_:_) :: Int+  , head (_:id x:_) :: Int+  , head (_:id (id _):_) :: Int+  , head (_:negate _:_) :: Int+  , head (_:head _:_) :: Int+  , head (_:_ + _:_) :: Int+  , head (_:insert _ _) :: Int+  , head (_:([] ++ _)) :: Int+  , head (_:(_ ++ [])) :: Int+  , head (_:(_ ++ _)) :: Int+  , head (_:(_ ++ xs)) :: Int+  , head (_:(_ ++ (_:_))) :: Int+  , head (_:(xs ++ _)) :: Int+  , head (_:((_:_) ++ _)) :: Int+  , head (x:[0]) :: Int+  , head [x] :: Int+  , head (x:_) :: Int+  , head (x:xs) :: Int+  , head (x:ys) :: Int+  , head (x:tail _) :: Int+  , head (x:0:_) :: Int+  , head [x,_] :: Int+  , head (x:_:_) :: Int+  , head (x:_:xs) :: Int+  , head (x:_:_:_) :: Int+  , head (x:x:_) :: Int+  , head (x:id _:_) :: Int+  , head (x:(_ ++ _)) :: Int+  , head [y] :: Int+  , head (y:_) :: Int+  , head (y:xs) :: Int+  , head (y:_:_) :: Int+  , head (z:_) :: Int+  , head (ord 'a':_) :: Int+  , head [ord _] :: Int+  , head (ord _:_) :: Int+  , head (ord _:xs) :: Int+  , head (ord _:_:_) :: Int+  , head (ord c:_) :: Int+  , head (f _:_) :: Int+  , head (abs 0:_) :: Int+  , head [abs _] :: Int+  , head (abs _:_) :: Int+  , head (abs _:xs) :: Int+  , head (abs _:_:_) :: Int+  , head (abs x:_) :: Int+  , head (abs (id _):_) :: Int+  , head [id 0] :: Int+  , head (id 0:_) :: Int+  , head (id 0:xs) :: Int+  , head (id 0:_:_) :: Int+  , head (id 1:_) :: Int+  , head (id _:[0]) :: Int+  , head [id _] :: Int+  , head (id _:_) :: Int+  , head (id _:xs) :: Int+  , head (id _:ys) :: Int+  , head (id _:tail _) :: Int+  , head (id _:0:_) :: Int+  , head [id _,_] :: Int+  , head (id _:_:_) :: Int+  , head (id _:_:xs) :: Int+  , head (id _:_:_:_) :: Int+  , head (id _:x:_) :: Int+  , head (id _:id _:_) :: Int+  , head (id _:(_ ++ _)) :: Int+  , head [id x] :: Int+  , head (id x:_) :: Int+  , head (id x:xs) :: Int+  , head (id x:_:_) :: Int+  , head (id y:_) :: Int+  , head (id (ord _):_) :: Int+  , head (id (abs _):_) :: Int+  , head (id (id 0):_) :: Int+  , head [id (id _)] :: Int+  , head (id (id _):_) :: Int+  , head (id (id _):xs) :: Int+  , head (id (id _):_:_) :: Int+  , head (id (id x):_) :: Int+  , head (id (id (id _)):_) :: Int+  , head (id (negate _):_) :: Int+  , head (id (head _):_) :: Int+  , head (id (_ + _):_) :: Int+  , head (negate 0:_) :: Int+  , head [negate _] :: Int+  , head (negate _:_) :: Int+  , head (negate _:xs) :: Int+  , head (negate _:_:_) :: Int+  , head (negate x:_) :: Int+  , head (negate (id _):_) :: Int+  , head (head []:_) :: Int+  , head [head _] :: Int+  , head (head _:_) :: Int+  , head (head _:xs) :: Int+  , head (head _:_:_) :: Int+  , head (head xs:_) :: Int+  , head (head (_:_):_) :: Int+  , head (_ * _:_) :: Int+  , head (0 + _:_) :: Int+  , head (_ + 0:_) :: Int+  , head [_ + _] :: Int+  , head (_ + _:_) :: Int+  , head (_ + _:xs) :: Int+  , head (_ + _:_:_) :: Int+  , head (_ + x:_) :: Int+  , head (_ + id _:_) :: Int+  , head (x + _:_) :: Int+  , head (id _ + _:_) :: Int+  , head (insert 0 _) :: Int+  , head (insert _ []) :: Int+  , head (insert _ _) :: Int+  , head (insert _ xs) :: Int+  , head (insert _ (_:_)) :: Int+  , head (insert x _) :: Int+  , head (insert (id _) _) :: Int+  , head ([0] ++ _) :: Int+  , head ([] ++ []) :: Int+  , head ([] ++ _) :: Int+  , head ([] ++ xs) :: Int+  , head ([] ++ (_:_)) :: Int+  , head (_ ++ [0]) :: Int+  , head (_ ++ []) :: Int+  , head (_ ++ _) :: Int+  , head (_ ++ xs) :: Int+  , head (_ ++ ys) :: Int+  , head (_ ++ tail _) :: Int+  , head (_ ++ (0:_)) :: Int+  , head (_ ++ [_]) :: Int+  , head (_ ++ (_:_)) :: Int+  , head (_ ++ (_:xs)) :: Int+  , head (_ ++ (_:_:_)) :: Int+  , head (_ ++ (x:_)) :: Int+  , head (_ ++ (id _:_)) :: Int+  , head (_ ++ (_ ++ _)) :: Int+  , head (xs ++ []) :: Int+  , head (xs ++ _) :: Int+  , head (xs ++ xs) :: Int+  , head (xs ++ (_:_)) :: Int+  , head (ys ++ _) :: Int+  , head (tail _ ++ _) :: Int+  , head ((0:_) ++ _) :: Int+  , head ([_] ++ _) :: Int+  , head ((_:_) ++ []) :: Int+  , head ((_:_) ++ _) :: Int+  , head ((_:_) ++ xs) :: Int+  , head ((_:_) ++ (_:_)) :: Int+  , head ((_:xs) ++ _) :: Int+  , head ((_:_:_) ++ _) :: Int+  , head ((x:_) ++ _) :: Int+  , head ((id _:_) ++ _) :: Int+  , head ((_ ++ _) ++ _) :: Int+  , sort [0] :: [Int]+  , sort [] :: [Int]+  , sort _ :: [Int]+  , sort xs :: [Int]+  , sort ys :: [Int]+  , sort (tail _) :: [Int]+  , sort (0:_) :: [Int]+  , sort [_] :: [Int]+  , sort (_:_) :: [Int]+  , sort (_:xs) :: [Int]+  , sort (_:_:_) :: [Int]+  , sort (x:_) :: [Int]+  , sort (id _:_) :: [Int]+  , sort (_ ++ _) :: [Int]+  , tail [0,0] :: [Int]+  , tail [0] :: [Int]+  , tail [1] :: [Int]+  , tail [] :: [Int]+  , tail _ :: [Int]+  , tail xs :: [Int]+  , tail ys :: [Int]+  , tail zs :: [Int]+  , tail (sort _) :: [Int]+  , tail (tail []) :: [Int]+  , tail (tail _) :: [Int]+  , tail (tail xs) :: [Int]+  , tail (tail (_:_)) :: [Int]+  , tail [0] :: [Int]+  , tail (0:_) :: [Int]+  , tail (0:xs) :: [Int]+  , tail (0:_:_) :: [Int]+  , tail (1:_) :: [Int]+  , tail (_:[0]) :: [Int]+  , tail [_] :: [Int]+  , tail (_:_) :: [Int]+  , tail (_:xs) :: [Int]+  , tail (_:ys) :: [Int]+  , tail (_:tail _) :: [Int]+  , tail (_:0:_) :: [Int]+  , tail [_,_] :: [Int]+  , tail (_:_:_) :: [Int]+  , tail (_:_:xs) :: [Int]+  , tail (_:_:_:_) :: [Int]+  , tail (_:x:_) :: [Int]+  , tail (_:id _:_) :: [Int]+  , tail (_:(_ ++ _)) :: [Int]+  , tail [x] :: [Int]+  , tail (x:_) :: [Int]+  , tail (x:xs) :: [Int]+  , tail (x:_:_) :: [Int]+  , tail (y:_) :: [Int]+  , tail (ord _:_) :: [Int]+  , tail (abs _:_) :: [Int]+  , tail (id 0:_) :: [Int]+  , tail [id _] :: [Int]+  , tail (id _:_) :: [Int]+  , tail (id _:xs) :: [Int]+  , tail (id _:_:_) :: [Int]+  , tail (id x:_) :: [Int]+  , tail (id (id _):_) :: [Int]+  , tail (negate _:_) :: [Int]+  , tail (head _:_) :: [Int]+  , tail (_ + _:_) :: [Int]+  , tail (insert _ _) :: [Int]+  , tail ([] ++ _) :: [Int]+  , tail (_ ++ []) :: [Int]+  , tail (_ ++ _) :: [Int]+  , tail (_ ++ xs) :: [Int]+  , tail (_ ++ (_:_)) :: [Int]+  , tail (xs ++ _) :: [Int]+  , tail ((_:_) ++ _) :: [Int]+  , (False &&) :: Bool -> Bool+  , (True &&) :: Bool -> Bool+  , (_ &&) :: Bool -> Bool+  , (p &&) :: Bool -> Bool+  , (not _ &&) :: Bool -> Bool+  , (_ ==>) :: Bool -> Bool+  , (False ||) :: Bool -> Bool+  , (True ||) :: Bool -> Bool+  , (_ ||) :: Bool -> Bool+  , (p ||) :: Bool -> Bool+  , (q ||) :: Bool -> Bool+  , (not False ||) :: Bool -> Bool+  , (not True ||) :: Bool -> Bool+  , (not _ ||) :: Bool -> Bool+  , (not p ||) :: Bool -> Bool+  , (not (not _) ||) :: Bool -> Bool+  , ((_ || _) ||) :: Bool -> Bool+  , (0 *) :: Int -> Int+  , (1 *) :: Int -> Int+  , (_ *) :: Int -> Int+  , (x *) :: Int -> Int+  , (y *) :: Int -> Int+  , (ord _ *) :: Int -> Int+  , (abs _ *) :: Int -> Int+  , (id 0 *) :: Int -> Int+  , (id _ *) :: Int -> Int+  , (id x *) :: Int -> Int+  , (id (id _) *) :: Int -> Int+  , (negate _ *) :: Int -> Int+  , (head _ *) :: Int -> Int+  , ((_ + _) *) :: Int -> Int+  , ((-1) +) :: Int -> Int+  , (0 +) :: Int -> Int+  , (1 +) :: Int -> Int+  , (_ +) :: Int -> Int+  , (x +) :: Int -> Int+  , (y +) :: Int -> Int+  , (z +) :: Int -> Int+  , (ord 'a' +) :: Int -> Int+  , (ord _ +) :: Int -> Int+  , (ord c +) :: Int -> Int+  , (f _ +) :: Int -> Int+  , (abs 0 +) :: Int -> Int+  , (abs _ +) :: Int -> Int+  , (abs x +) :: Int -> Int+  , (abs (id _) +) :: Int -> Int+  , (id 0 +) :: Int -> Int+  , (id 1 +) :: Int -> Int+  , (id _ +) :: Int -> Int+  , (id x +) :: Int -> Int+  , (id y +) :: Int -> Int+  , (id (ord _) +) :: Int -> Int+  , (id (abs _) +) :: Int -> Int+  , (id (id 0) +) :: Int -> Int+  , (id (id _) +) :: Int -> Int+  , (id (id x) +) :: Int -> Int+  , (id (id (id _)) +) :: Int -> Int+  , (id (negate _) +) :: Int -> Int+  , (id (head _) +) :: Int -> Int+  , (id (_ + _) +) :: Int -> Int+  , (negate 0 +) :: Int -> Int+  , (negate _ +) :: Int -> Int+  , (negate x +) :: Int -> Int+  , (negate (id _) +) :: Int -> Int+  , (head [] +) :: Int -> Int+  , (head _ +) :: Int -> Int+  , (head xs +) :: Int -> Int+  , (head (_:_) +) :: Int -> Int+  , (_ * _ +) :: Int -> Int+  , ((0 + _) +) :: Int -> Int+  , ((_ + 0) +) :: Int -> Int+  , ((_ + _) +) :: Int -> Int+  , ((_ + x) +) :: Int -> Int+  , ((_ + id _) +) :: Int -> Int+  , ((x + _) +) :: Int -> Int+  , ((id _ + _) +) :: Int -> Int+  , False && False :: Bool+  , False && True :: Bool+  , False && _ :: Bool+  , False && p :: Bool+  , False && not _ :: Bool+  , True && False :: Bool+  , True && True :: Bool+  , True && _ :: Bool+  , True && p :: Bool+  , True && not _ :: Bool+  , _ && False :: Bool+  , _ && True :: Bool+  , _ && _ :: Bool+  , _ && p :: Bool+  , _ && q :: Bool+  , _ && not False :: Bool+  , _ && not True :: Bool+  , _ && not _ :: Bool+  , _ && not p :: Bool+  , _ && not (not _) :: Bool+  , _ && (_ || _) :: Bool+  , p && False :: Bool+  , p && True :: Bool+  , p && _ :: Bool+  , p && p :: Bool+  , p && not _ :: Bool+  , q && _ :: Bool+  , not False && _ :: Bool+  , not True && _ :: Bool+  , not _ && False :: Bool+  , not _ && True :: Bool+  , not _ && _ :: Bool+  , not _ && p :: Bool+  , not _ && not _ :: Bool+  , not p && _ :: Bool+  , not (not _) && _ :: Bool+  , (_ || _) && _ :: Bool+  , _ < _ :: Bool+  , False <= _ :: Bool+  , True <= _ :: Bool+  , _ <= False :: Bool+  , _ <= True :: Bool+  , _ <= _ :: Bool+  , _ <= p :: Bool+  , _ <= not _ :: Bool+  , p <= _ :: Bool+  , not _ <= _ :: Bool+  , False == False :: Bool+  , False == True :: Bool+  , False == _ :: Bool+  , False == p :: Bool+  , False == not _ :: Bool+  , True == False :: Bool+  , True == True :: Bool+  , True == _ :: Bool+  , True == p :: Bool+  , True == not _ :: Bool+  , _ == False :: Bool+  , _ == True :: Bool+  , _ == _ :: Bool+  , _ == p :: Bool+  , _ == q :: Bool+  , _ == not False :: Bool+  , _ == not True :: Bool+  , _ == not _ :: Bool+  , _ == not p :: Bool+  , _ == not (not _) :: Bool+  , _ == (_ || _) :: Bool+  , p == False :: Bool+  , p == True :: Bool+  , p == _ :: Bool+  , p == p :: Bool+  , p == not _ :: Bool+  , q == _ :: Bool+  , not False == _ :: Bool+  , not True == _ :: Bool+  , not _ == False :: Bool+  , not _ == True :: Bool+  , not _ == _ :: Bool+  , not _ == p :: Bool+  , not _ == not _ :: Bool+  , not p == _ :: Bool+  , not (not _) == _ :: Bool+  , (_ || _) == _ :: Bool+  , False ==> _ :: Bool+  , True ==> _ :: Bool+  , _ ==> False :: Bool+  , _ ==> True :: Bool+  , _ ==> _ :: Bool+  , _ ==> p :: Bool+  , _ ==> not _ :: Bool+  , p ==> _ :: Bool+  , not _ ==> _ :: Bool+  , False || False :: Bool+  , False || True :: Bool+  , False || _ :: Bool+  , False || p :: Bool+  , False || q :: Bool+  , False || not False :: Bool+  , False || not True :: Bool+  , False || not _ :: Bool+  , False || not p :: Bool+  , False || not (not _) :: Bool+  , False || (_ || _) :: Bool+  , True || False :: Bool+  , True || True :: Bool+  , True || _ :: Bool+  , True || p :: Bool+  , True || q :: Bool+  , True || not False :: Bool+  , True || not True :: Bool+  , True || not _ :: Bool+  , True || not p :: Bool+  , True || not (not _) :: Bool+  , True || (_ || _) :: Bool+  , _ || False :: Bool+  , _ || True :: Bool+  , _ || _ :: Bool+  , _ || p :: Bool+  , _ || q :: Bool+  , _ || r :: Bool+  , _ || not False :: Bool+  , _ || not True :: Bool+  , _ || not _ :: Bool+  , _ || not p :: Bool+  , _ || not q :: Bool+  , _ || not (not False) :: Bool+  , _ || not (not True) :: Bool+  , _ || not (not _) :: Bool+  , _ || not (not p) :: Bool+  , _ || not (not (not _)) :: Bool+  , _ || not (_ || _) :: Bool+  , _ || even _ :: Bool+  , _ || odd _ :: Bool+  , _ || _ && _ :: Bool+  , _ || _ == _ :: Bool+  , _ || (False || _) :: Bool+  , _ || (True || _) :: Bool+  , _ || (_ || False) :: Bool+  , _ || (_ || True) :: Bool+  , _ || (_ || _) :: Bool+  , _ || (_ || p) :: Bool+  , _ || (_ || not _) :: Bool+  , _ || (p || _) :: Bool+  , _ || (not _ || _) :: Bool+  , _ || _ == _ :: Bool+  , _ || elem _ _ :: Bool+  , p || False :: Bool+  , p || True :: Bool+  , p || _ :: Bool+  , p || p :: Bool+  , p || q :: Bool+  , p || not False :: Bool+  , p || not True :: Bool+  , p || not _ :: Bool+  , p || not p :: Bool+  , p || not (not _) :: Bool+  , p || (_ || _) :: Bool+  , q || False :: Bool+  , q || True :: Bool+  , q || _ :: Bool+  , q || p :: Bool+  , q || not _ :: Bool+  , r || _ :: Bool+  , not False || False :: Bool+  , not False || True :: Bool+  , not False || _ :: Bool+  , not False || p :: Bool+  , not False || not _ :: Bool+  , not True || False :: Bool+  , not True || True :: Bool+  , not True || _ :: Bool+  , not True || p :: Bool+  , not True || not _ :: Bool+  , not _ || False :: Bool+  , not _ || True :: Bool+  , not _ || _ :: Bool+  , not _ || p :: Bool+  , not _ || q :: Bool+  , not _ || not False :: Bool+  , not _ || not True :: Bool+  , not _ || not _ :: Bool+  , not _ || not p :: Bool+  , not _ || not (not _) :: Bool+  , not _ || (_ || _) :: Bool+  , not p || False :: Bool+  , not p || True :: Bool+  , not p || _ :: Bool+  , not p || p :: Bool+  , not p || not _ :: Bool+  , not q || _ :: Bool+  , not (not False) || _ :: Bool+  , not (not True) || _ :: Bool+  , not (not _) || False :: Bool+  , not (not _) || True :: Bool+  , not (not _) || _ :: Bool+  , not (not _) || p :: Bool+  , not (not _) || not _ :: Bool+  , not (not p) || _ :: Bool+  , not (not (not _)) || _ :: Bool+  , not (_ || _) || _ :: Bool+  , even _ || _ :: Bool+  , odd _ || _ :: Bool+  , _ && _ || _ :: Bool+  , _ == _ || _ :: Bool+  , (False || _) || _ :: Bool+  , (True || _) || _ :: Bool+  , (_ || False) || _ :: Bool+  , (_ || True) || _ :: Bool+  , (_ || _) || False :: Bool+  , (_ || _) || True :: Bool+  , (_ || _) || _ :: Bool+  , (_ || _) || p :: Bool+  , (_ || _) || not _ :: Bool+  , (_ || p) || _ :: Bool+  , (_ || not _) || _ :: Bool+  , (p || _) || _ :: Bool+  , (not _ || _) || _ :: Bool+  , _ == _ || _ :: Bool+  , elem _ _ || _ :: Bool+  , _ < _ :: Bool+  , 0 <= _ :: Bool+  , _ <= 0 :: Bool+  , _ <= _ :: Bool+  , _ <= x :: Bool+  , _ <= id _ :: Bool+  , x <= _ :: Bool+  , id _ <= _ :: Bool+  , 0 == 0 :: Bool+  , 0 == _ :: Bool+  , 0 == x :: Bool+  , 0 == id _ :: Bool+  , 1 == _ :: Bool+  , _ == 0 :: Bool+  , _ == 1 :: Bool+  , _ == _ :: Bool+  , _ == x :: Bool+  , _ == y :: Bool+  , _ == ord _ :: Bool+  , _ == abs _ :: Bool+  , _ == id 0 :: Bool+  , _ == id _ :: Bool+  , _ == id x :: Bool+  , _ == id (id _) :: Bool+  , _ == negate _ :: Bool+  , _ == head _ :: Bool+  , _ == _ + _ :: Bool+  , x == 0 :: Bool+  , x == _ :: Bool+  , x == x :: Bool+  , x == id _ :: Bool+  , y == _ :: Bool+  , ord _ == _ :: Bool+  , abs _ == _ :: Bool+  , id 0 == _ :: Bool+  , id _ == 0 :: Bool+  , id _ == _ :: Bool+  , id _ == x :: Bool+  , id _ == id _ :: Bool+  , id x == _ :: Bool+  , id (id _) == _ :: Bool+  , negate _ == _ :: Bool+  , head _ == _ :: Bool+  , _ + _ == _ :: Bool+  , (-1) * _ :: Int+  , 0 * 0 :: Int+  , 0 * 1 :: Int+  , 0 * _ :: Int+  , 0 * x :: Int+  , 0 * y :: Int+  , 0 * ord _ :: Int+  , 0 * abs _ :: Int+  , 0 * id 0 :: Int+  , 0 * id _ :: Int+  , 0 * id x :: Int+  , 0 * id (id _) :: Int+  , 0 * negate _ :: Int+  , 0 * head _ :: Int+  , 0 * (_ + _) :: Int+  , 1 * 0 :: Int+  , 1 * _ :: Int+  , 1 * x :: Int+  , 1 * id _ :: Int+  , _ * (-1) :: Int+  , _ * 0 :: Int+  , _ * 1 :: Int+  , _ * _ :: Int+  , _ * x :: Int+  , _ * y :: Int+  , _ * z :: Int+  , _ * ord 'a' :: Int+  , _ * ord _ :: Int+  , _ * ord c :: Int+  , _ * f _ :: Int+  , _ * abs 0 :: Int+  , _ * abs _ :: Int+  , _ * abs x :: Int+  , _ * abs (id _) :: Int+  , _ * id 0 :: Int+  , _ * id 1 :: Int+  , _ * id _ :: Int+  , _ * id x :: Int+  , _ * id y :: Int+  , _ * id (ord _) :: Int+  , _ * id (abs _) :: Int+  , _ * id (id 0) :: Int+  , _ * id (id _) :: Int+  , _ * id (id x) :: Int+  , _ * id (id (id _)) :: Int+  , _ * id (negate _) :: Int+  , _ * id (head _) :: Int+  , _ * id (_ + _) :: Int+  , _ * negate 0 :: Int+  , _ * negate _ :: Int+  , _ * negate x :: Int+  , _ * negate (id _) :: Int+  , _ * head [] :: Int+  , _ * head _ :: Int+  , _ * head xs :: Int+  , _ * head (_:_) :: Int+  , _ * (_ * _) :: Int+  , _ * (0 + _) :: Int+  , _ * (_ + 0) :: Int+  , _ * (_ + _) :: Int+  , _ * (_ + x) :: Int+  , _ * (_ + id _) :: Int+  , _ * (x + _) :: Int+  , _ * (id _ + _) :: Int+  , x * 0 :: Int+  , x * 1 :: Int+  , x * _ :: Int+  , x * x :: Int+  , x * y :: Int+  , x * ord _ :: Int+  , x * abs _ :: Int+  , x * id 0 :: Int+  , x * id _ :: Int+  , x * id x :: Int+  , x * id (id _) :: Int+  , x * negate _ :: Int+  , x * head _ :: Int+  , x * (_ + _) :: Int+  , y * 0 :: Int+  , y * _ :: Int+  , y * x :: Int+  , y * id _ :: Int+  , z * _ :: Int+  , ord 'a' * _ :: Int+  , ord _ * 0 :: Int+  , ord _ * _ :: Int+  , ord _ * x :: Int+  , ord _ * id _ :: Int+  , ord c * _ :: Int+  , f _ * _ :: Int+  , abs 0 * _ :: Int+  , abs _ * 0 :: Int+  , abs _ * _ :: Int+  , abs _ * x :: Int+  , abs _ * id _ :: Int+  , abs x * _ :: Int+  , abs (id _) * _ :: Int+  , id 0 * 0 :: Int+  , id 0 * _ :: Int+  , id 0 * x :: Int+  , id 0 * id _ :: Int+  , id 1 * _ :: Int+  , id _ * 0 :: Int+  , id _ * 1 :: Int+  , id _ * _ :: Int+  , id _ * x :: Int+  , id _ * y :: Int+  , id _ * ord _ :: Int+  , id _ * abs _ :: Int+  , id _ * id 0 :: Int+  , id _ * id _ :: Int+  , id _ * id x :: Int+  , id _ * id (id _) :: Int+  , id _ * negate _ :: Int+  , id _ * head _ :: Int+  , id _ * (_ + _) :: Int+  , id x * 0 :: Int+  , id x * _ :: Int+  , id x * x :: Int+  , id x * id _ :: Int+  , id y * _ :: Int+  , id (ord _) * _ :: Int+  , id (abs _) * _ :: Int+  , id (id 0) * _ :: Int+  , id (id _) * 0 :: Int+  , id (id _) * _ :: Int+  , id (id _) * x :: Int+  , id (id _) * id _ :: Int+  , id (id x) * _ :: Int+  , id (id (id _)) * _ :: Int+  , id (negate _) * _ :: Int+  , id (head _) * _ :: Int+  , id (_ + _) * _ :: Int+  , negate 0 * _ :: Int+  , negate _ * 0 :: Int+  , negate _ * _ :: Int+  , negate _ * x :: Int+  , negate _ * id _ :: Int+  , negate x * _ :: Int+  , negate (id _) * _ :: Int+  , head [] * _ :: Int+  , head _ * 0 :: Int+  , head _ * _ :: Int+  , head _ * x :: Int+  , head _ * id _ :: Int+  , head xs * _ :: Int+  , head (_:_) * _ :: Int+  , (_ * _) * _ :: Int+  , (0 + _) * _ :: Int+  , (_ + 0) * _ :: Int+  , (_ + _) * 0 :: Int+  , (_ + _) * _ :: Int+  , (_ + _) * x :: Int+  , (_ + _) * id _ :: Int+  , (_ + x) * _ :: Int+  , (_ + id _) * _ :: Int+  , (x + _) * _ :: Int+  , (id _ + _) * _ :: Int+  , (-1) + 0 :: Int+  , (-1) + _ :: Int+  , (-1) + x :: Int+  , (-1) + id _ :: Int+  , 0 + (-1) :: Int+  , 0 + 0 :: Int+  , 0 + 1 :: Int+  , 0 + _ :: Int+  , 0 + x :: Int+  , 0 + y :: Int+  , 0 + z :: Int+  , 0 + ord 'a' :: Int+  , 0 + ord _ :: Int+  , 0 + ord c :: Int+  , 0 + f _ :: Int+  , 0 + abs 0 :: Int+  , 0 + abs _ :: Int+  , 0 + abs x :: Int+  , 0 + abs (id _) :: Int+  , 0 + id 0 :: Int+  , 0 + id 1 :: Int+  , 0 + id _ :: Int+  , 0 + id x :: Int+  , 0 + id y :: Int+  , 0 + id (ord _) :: Int+  , 0 + id (abs _) :: Int+  , 0 + id (id 0) :: Int+  , 0 + id (id _) :: Int+  , 0 + id (id x) :: Int+  , 0 + id (id (id _)) :: Int+  , 0 + id (negate _) :: Int+  , 0 + id (head _) :: Int+  , 0 + id (_ + _) :: Int+  , 0 + negate 0 :: Int+  , 0 + negate _ :: Int+  , 0 + negate x :: Int+  , 0 + negate (id _) :: Int+  , 0 + head [] :: Int+  , 0 + head _ :: Int+  , 0 + head xs :: Int+  , 0 + head (_:_) :: Int+  , 0 + _ * _ :: Int+  , 0 + (0 + _) :: Int+  , 0 + (_ + 0) :: Int+  , 0 + (_ + _) :: Int+  , 0 + (_ + x) :: Int+  , 0 + (_ + id _) :: Int+  , 0 + (x + _) :: Int+  , 0 + (id _ + _) :: Int+  , 1 + 0 :: Int+  , 1 + 1 :: Int+  , 1 + _ :: Int+  , 1 + x :: Int+  , 1 + y :: Int+  , 1 + ord _ :: Int+  , 1 + abs _ :: Int+  , 1 + id 0 :: Int+  , 1 + id _ :: Int+  , 1 + id x :: Int+  , 1 + id (id _) :: Int+  , 1 + negate _ :: Int+  , 1 + head _ :: Int+  , 1 + (_ + _) :: Int+  , 2 + _ :: Int+  , _ + (-1) :: Int+  , _ + 0 :: Int+  , _ + 1 :: Int+  , _ + 2 :: Int+  , _ + _ :: Int+  , _ + x :: Int+  , _ + x' :: Int+  , _ + y :: Int+  , _ + z :: Int+  , _ + ord ' ' :: Int+  , _ + ord 'a' :: Int+  , _ + ord _ :: Int+  , _ + ord c :: Int+  , _ + ord d :: Int+  , _ + f 0 :: Int+  , _ + f _ :: Int+  , _ + f x :: Int+  , _ + f (id _) :: Int+  , _ + g _ :: Int+  , _ + abs 0 :: Int+  , _ + abs 1 :: Int+  , _ + abs _ :: Int+  , _ + abs x :: Int+  , _ + abs y :: Int+  , _ + abs (ord _) :: Int+  , _ + abs (abs _) :: Int+  , _ + abs (id 0) :: Int+  , _ + abs (id _) :: Int+  , _ + abs (id x) :: Int+  , _ + abs (id (id _)) :: Int+  , _ + abs (negate _) :: Int+  , _ + abs (head _) :: Int+  , _ + abs (_ + _) :: Int+  , _ + id (-1) :: Int+  , _ + id 0 :: Int+  , _ + id 1 :: Int+  , _ + id _ :: Int+  , _ + id x :: Int+  , _ + id y :: Int+  , _ + id z :: Int+  , _ + id (ord 'a') :: Int+  , _ + id (ord _) :: Int+  , _ + id (ord c) :: Int+  , _ + id (f _) :: Int+  , _ + id (abs 0) :: Int+  , _ + id (abs _) :: Int+  , _ + id (abs x) :: Int+  , _ + id (abs (id _)) :: Int+  , _ + id (id 0) :: Int+  , _ + id (id 1) :: Int+  , _ + id (id _) :: Int+  , _ + id (id x) :: Int+  , _ + id (id y) :: Int+  , _ + id (id (ord _)) :: Int+  , _ + id (id (abs _)) :: Int+  , _ + id (id (id 0)) :: Int+  , _ + id (id (id _)) :: Int+  , _ + id (id (id x)) :: Int+  , _ + id (id (id (id _))) :: Int+  , _ + id (id (negate _)) :: Int+  , _ + id (id (head _)) :: Int+  , _ + id (id (_ + _)) :: Int+  , _ + id (negate 0) :: Int+  , _ + id (negate _) :: Int+  , _ + id (negate x) :: Int+  , _ + id (negate (id _)) :: Int+  , _ + id (head []) :: Int+  , _ + id (head _) :: Int+  , _ + id (head xs) :: Int+  , _ + id (head (_:_)) :: Int+  , _ + id (_ * _) :: Int+  , _ + id (0 + _) :: Int+  , _ + id (_ + 0) :: Int+  , _ + id (_ + _) :: Int+  , _ + id (_ + x) :: Int+  , _ + id (_ + id _) :: Int+  , _ + id (x + _) :: Int+  , _ + id (id _ + _) :: Int+  , _ + negate 0 :: Int+  , _ + negate 1 :: Int+  , _ + negate _ :: Int+  , _ + negate x :: Int+  , _ + negate y :: Int+  , _ + negate (ord _) :: Int+  , _ + negate (abs _) :: Int+  , _ + negate (id 0) :: Int+  , _ + negate (id _) :: Int+  , _ + negate (id x) :: Int+  , _ + negate (id (id _)) :: Int+  , _ + negate (negate _) :: Int+  , _ + negate (head _) :: Int+  , _ + negate (_ + _) :: Int+  , _ + head [0] :: Int+  , _ + head [] :: Int+  , _ + head _ :: Int+  , _ + head xs :: Int+  , _ + head ys :: Int+  , _ + head (tail _) :: Int+  , _ + head (0:_) :: Int+  , _ + head [_] :: Int+  , _ + head (_:_) :: Int+  , _ + head (_:xs) :: Int+  , _ + head (_:_:_) :: Int+  , _ + head (x:_) :: Int+  , _ + head (id _:_) :: Int+  , _ + head (_ ++ _) :: Int+  , _ + 0 * _ :: Int+  , _ + _ * 0 :: Int+  , _ + _ * _ :: Int+  , _ + _ * x :: Int+  , _ + _ * id _ :: Int+  , _ + x * _ :: Int+  , _ + id _ * _ :: Int+  , _ + (0 + 0) :: Int+  , _ + (0 + _) :: Int+  , _ + (0 + x) :: Int+  , _ + (0 + id _) :: Int+  , _ + (1 + _) :: Int+  , _ + (_ + 0) :: Int+  , _ + (_ + 1) :: Int+  , _ + (_ + _) :: Int+  , _ + (_ + x) :: Int+  , _ + (_ + y) :: Int+  , _ + (_ + ord _) :: Int+  , _ + (_ + abs _) :: Int+  , _ + (_ + id 0) :: Int+  , _ + (_ + id _) :: Int+  , _ + (_ + id x) :: Int+  , _ + (_ + id (id _)) :: Int+  , _ + (_ + negate _) :: Int+  , _ + (_ + head _) :: Int+  , _ + (_ + (_ + _)) :: Int+  , _ + (x + 0) :: Int+  , _ + (x + _) :: Int+  , _ + (x + x) :: Int+  , _ + (x + id _) :: Int+  , _ + (y + _) :: Int+  , _ + (ord _ + _) :: Int+  , _ + (abs _ + _) :: Int+  , _ + (id 0 + _) :: Int+  , _ + (id _ + 0) :: Int+  , _ + (id _ + _) :: Int+  , _ + (id _ + x) :: Int+  , _ + (id _ + id _) :: Int+  , _ + (id x + _) :: Int+  , _ + (id (id _) + _) :: Int+  , _ + (negate _ + _) :: Int+  , _ + (head _ + _) :: Int+  , _ + ((_ + _) + _) :: Int+  , x + (-1) :: Int+  , x + 0 :: Int+  , x + 1 :: Int+  , x + _ :: Int+  , x + x :: Int+  , x + y :: Int+  , x + z :: Int+  , x + ord 'a' :: Int+  , x + ord _ :: Int+  , x + ord c :: Int+  , x + f _ :: Int+  , x + abs 0 :: Int+  , x + abs _ :: Int+  , x + abs x :: Int+  , x + abs (id _) :: Int+  , x + id 0 :: Int+  , x + id 1 :: Int+  , x + id _ :: Int+  , x + id x :: Int+  , x + id y :: Int+  , x + id (ord _) :: Int+  , x + id (abs _) :: Int+  , x + id (id 0) :: Int+  , x + id (id _) :: Int+  , x + id (id x) :: Int+  , x + id (id (id _)) :: Int+  , x + id (negate _) :: Int+  , x + id (head _) :: Int+  , x + id (_ + _) :: Int+  , x + negate 0 :: Int+  , x + negate _ :: Int+  , x + negate x :: Int+  , x + negate (id _) :: Int+  , x + head [] :: Int+  , x + head _ :: Int+  , x + head xs :: Int+  , x + head (_:_) :: Int+  , x + _ * _ :: Int+  , x + (0 + _) :: Int+  , x + (_ + 0) :: Int+  , x + (_ + _) :: Int+  , x + (_ + x) :: Int+  , x + (_ + id _) :: Int+  , x + (x + _) :: Int+  , x + (id _ + _) :: Int+  , x' + _ :: Int+  , y + 0 :: Int+  , y + 1 :: Int+  , y + _ :: Int+  , y + x :: Int+  , y + y :: Int+  , y + ord _ :: Int+  , y + abs _ :: Int+  , y + id 0 :: Int+  , y + id _ :: Int+  , y + id x :: Int+  , y + id (id _) :: Int+  , y + negate _ :: Int+  , y + head _ :: Int+  , y + (_ + _) :: Int+  , z + 0 :: Int+  , z + _ :: Int+  , z + x :: Int+  , z + id _ :: Int+  , ord ' ' + _ :: Int+  , ord 'a' + 0 :: Int+  , ord 'a' + _ :: Int+  , ord 'a' + x :: Int+  , ord 'a' + id _ :: Int+  , ord _ + 0 :: Int+  , ord _ + 1 :: Int+  , ord _ + _ :: Int+  , ord _ + x :: Int+  , ord _ + y :: Int+  , ord _ + ord _ :: Int+  , ord _ + abs _ :: Int+  , ord _ + id 0 :: Int+  , ord _ + id _ :: Int+  , ord _ + id x :: Int+  , ord _ + id (id _) :: Int+  , ord _ + negate _ :: Int+  , ord _ + head _ :: Int+  , ord _ + (_ + _) :: Int+  , ord c + 0 :: Int+  , ord c + _ :: Int+  , ord c + x :: Int+  , ord c + id _ :: Int+  , ord d + _ :: Int+  , f 0 + _ :: Int+  , f _ + 0 :: Int+  , f _ + _ :: Int+  , f _ + x :: Int+  , f _ + id _ :: Int+  , f x + _ :: Int+  , f (id _) + _ :: Int+  , g _ + _ :: Int+  , abs 0 + 0 :: Int+  , abs 0 + _ :: Int+  , abs 0 + x :: Int+  , abs 0 + id _ :: Int+  , abs 1 + _ :: Int+  , abs _ + 0 :: Int+  , abs _ + 1 :: Int+  , abs _ + _ :: Int+  , abs _ + x :: Int+  , abs _ + y :: Int+  , abs _ + ord _ :: Int+  , abs _ + abs _ :: Int+  , abs _ + id 0 :: Int+  , abs _ + id _ :: Int+  , abs _ + id x :: Int+  , abs _ + id (id _) :: Int+  , abs _ + negate _ :: Int+  , abs _ + head _ :: Int+  , abs _ + (_ + _) :: Int+  , abs x + 0 :: Int+  , abs x + _ :: Int+  , abs x + x :: Int+  , abs x + id _ :: Int+  , abs y + _ :: Int+  , abs (ord _) + _ :: Int+  , abs (abs _) + _ :: Int+  , abs (id 0) + _ :: Int+  , abs (id _) + 0 :: Int+  , abs (id _) + _ :: Int+  , abs (id _) + x :: Int+  , abs (id _) + id _ :: Int+  , abs (id x) + _ :: Int+  , abs (id (id _)) + _ :: Int+  , abs (negate _) + _ :: Int+  , abs (head _) + _ :: Int+  , abs (_ + _) + _ :: Int+  , id (-1) + _ :: Int+  , id 0 + 0 :: Int+  , id 0 + 1 :: Int+  , id 0 + _ :: Int+  , id 0 + x :: Int+  , id 0 + y :: Int+  , id 0 + ord _ :: Int+  , id 0 + abs _ :: Int+  , id 0 + id 0 :: Int+  , id 0 + id _ :: Int+  , id 0 + id x :: Int+  , id 0 + id (id _) :: Int+  , id 0 + negate _ :: Int+  , id 0 + head _ :: Int+  , id 0 + (_ + _) :: Int+  , id 1 + 0 :: Int+  , id 1 + _ :: Int+  , id 1 + x :: Int+  , id 1 + id _ :: Int+  , id _ + (-1) :: Int+  , id _ + 0 :: Int+  , id _ + 1 :: Int+  , id _ + _ :: Int+  , id _ + x :: Int+  , id _ + y :: Int+  , id _ + z :: Int+  , id _ + ord 'a' :: Int+  , id _ + ord _ :: Int+  , id _ + ord c :: Int+  , id _ + f _ :: Int+  , id _ + abs 0 :: Int+  , id _ + abs _ :: Int+  , id _ + abs x :: Int+  , id _ + abs (id _) :: Int+  , id _ + id 0 :: Int+  , id _ + id 1 :: Int+  , id _ + id _ :: Int+  , id _ + id x :: Int+  , id _ + id y :: Int+  , id _ + id (ord _) :: Int+  , id _ + id (abs _) :: Int+  , id _ + id (id 0) :: Int+  , id _ + id (id _) :: Int+  , id _ + id (id x) :: Int+  , id _ + id (id (id _)) :: Int+  , id _ + id (negate _) :: Int+  , id _ + id (head _) :: Int+  , id _ + id (_ + _) :: Int+  , id _ + negate 0 :: Int+  , id _ + negate _ :: Int+  , id _ + negate x :: Int+  , id _ + negate (id _) :: Int+  , id _ + head [] :: Int+  , id _ + head _ :: Int+  , id _ + head xs :: Int+  , id _ + head (_:_) :: Int+  , id _ + _ * _ :: Int+  , id _ + (0 + _) :: Int+  , id _ + (_ + 0) :: Int+  , id _ + (_ + _) :: Int+  , id _ + (_ + x) :: Int+  , id _ + (_ + id _) :: Int+  , id _ + (x + _) :: Int+  , id _ + (id _ + _) :: Int+  , id x + 0 :: Int+  , id x + 1 :: Int+  , id x + _ :: Int+  , id x + x :: Int+  , id x + y :: Int+  , id x + ord _ :: Int+  , id x + abs _ :: Int+  , id x + id 0 :: Int+  , id x + id _ :: Int+  , id x + id x :: Int+  , id x + id (id _) :: Int+  , id x + negate _ :: Int+  , id x + head _ :: Int+  , id x + (_ + _) :: Int+  , id y + 0 :: Int+  , id y + _ :: Int+  , id y + x :: Int+  , id y + id _ :: Int+  , id z + _ :: Int+  , id (ord 'a') + _ :: Int+  , id (ord _) + 0 :: Int+  , id (ord _) + _ :: Int+  , id (ord _) + x :: Int+  , id (ord _) + id _ :: Int+  , id (ord c) + _ :: Int+  , id (f _) + _ :: Int+  , id (abs 0) + _ :: Int+  , id (abs _) + 0 :: Int+  , id (abs _) + _ :: Int+  , id (abs _) + x :: Int+  , id (abs _) + id _ :: Int+  , id (abs x) + _ :: Int+  , id (abs (id _)) + _ :: Int+  , id (id 0) + 0 :: Int+  , id (id 0) + _ :: Int+  , id (id 0) + x :: Int+  , id (id 0) + id _ :: Int+  , id (id 1) + _ :: Int+  , id (id _) + 0 :: Int+  , id (id _) + 1 :: Int+  , id (id _) + _ :: Int+  , id (id _) + x :: Int+  , id (id _) + y :: Int+  , id (id _) + ord _ :: Int+  , id (id _) + abs _ :: Int+  , id (id _) + id 0 :: Int+  , id (id _) + id _ :: Int+  , id (id _) + id x :: Int+  , id (id _) + id (id _) :: Int+  , id (id _) + negate _ :: Int+  , id (id _) + head _ :: Int+  , id (id _) + (_ + _) :: Int+  , id (id x) + 0 :: Int+  , id (id x) + _ :: Int+  , id (id x) + x :: Int+  , id (id x) + id _ :: Int+  , id (id y) + _ :: Int+  , id (id (ord _)) + _ :: Int+  , id (id (abs _)) + _ :: Int+  , id (id (id 0)) + _ :: Int+  , id (id (id _)) + 0 :: Int+  , id (id (id _)) + _ :: Int+  , id (id (id _)) + x :: Int+  , id (id (id _)) + id _ :: Int+  , id (id (id x)) + _ :: Int+  , id (id (id (id _))) + _ :: Int+  , id (id (negate _)) + _ :: Int+  , id (id (head _)) + _ :: Int+  , id (id (_ + _)) + _ :: Int+  , id (negate 0) + _ :: Int+  , id (negate _) + 0 :: Int+  , id (negate _) + _ :: Int+  , id (negate _) + x :: Int+  , id (negate _) + id _ :: Int+  , id (negate x) + _ :: Int+  , id (negate (id _)) + _ :: Int+  , id (head []) + _ :: Int+  , id (head _) + 0 :: Int+  , id (head _) + _ :: Int+  , id (head _) + x :: Int+  , id (head _) + id _ :: Int+  , id (head xs) + _ :: Int+  , id (head (_:_)) + _ :: Int+  , id (_ * _) + _ :: Int+  , id (0 + _) + _ :: Int+  , id (_ + 0) + _ :: Int+  , id (_ + _) + 0 :: Int+  , id (_ + _) + _ :: Int+  , id (_ + _) + x :: Int+  , id (_ + _) + id _ :: Int+  , id (_ + x) + _ :: Int+  , id (_ + id _) + _ :: Int+  , id (x + _) + _ :: Int+  , id (id _ + _) + _ :: Int+  , negate 0 + 0 :: Int+  , negate 0 + _ :: Int+  , negate 0 + x :: Int+  , negate 0 + id _ :: Int+  , negate 1 + _ :: Int+  , negate _ + 0 :: Int+  , negate _ + 1 :: Int+  , negate _ + _ :: Int+  , negate _ + x :: Int+  , negate _ + y :: Int+  , negate _ + ord _ :: Int+  , negate _ + abs _ :: Int+  , negate _ + id 0 :: Int+  , negate _ + id _ :: Int+  , negate _ + id x :: Int+  , negate _ + id (id _) :: Int+  , negate _ + negate _ :: Int+  , negate _ + head _ :: Int+  , negate _ + (_ + _) :: Int+  , negate x + 0 :: Int+  , negate x + _ :: Int+  , negate x + x :: Int+  , negate x + id _ :: Int+  , negate y + _ :: Int+  , negate (ord _) + _ :: Int+  , negate (abs _) + _ :: Int+  , negate (id 0) + _ :: Int+  , negate (id _) + 0 :: Int+  , negate (id _) + _ :: Int+  , negate (id _) + x :: Int+  , negate (id _) + id _ :: Int+  , negate (id x) + _ :: Int+  , negate (id (id _)) + _ :: Int+  , negate (negate _) + _ :: Int+  , negate (head _) + _ :: Int+  , negate (_ + _) + _ :: Int+  , head [0] + _ :: Int+  , head [] + 0 :: Int+  , head [] + _ :: Int+  , head [] + x :: Int+  , head [] + id _ :: Int+  , head _ + 0 :: Int+  , head _ + 1 :: Int+  , head _ + _ :: Int+  , head _ + x :: Int+  , head _ + y :: Int+  , head _ + ord _ :: Int+  , head _ + abs _ :: Int+  , head _ + id 0 :: Int+  , head _ + id _ :: Int+  , head _ + id x :: Int+  , head _ + id (id _) :: Int+  , head _ + negate _ :: Int+  , head _ + head _ :: Int+  , head _ + (_ + _) :: Int+  , head xs + 0 :: Int+  , head xs + _ :: Int+  , head xs + x :: Int+  , head xs + id _ :: Int+  , head ys + _ :: Int+  , head (tail _) + _ :: Int+  , head (0:_) + _ :: Int+  , head [_] + _ :: Int+  , head (_:_) + 0 :: Int+  , head (_:_) + _ :: Int+  , head (_:_) + x :: Int+  , head (_:_) + id _ :: Int+  , head (_:xs) + _ :: Int+  , head (_:_:_) + _ :: Int+  , head (x:_) + _ :: Int+  , head (id _:_) + _ :: Int+  , head (_ ++ _) + _ :: Int+  , 0 * _ + _ :: Int+  , _ * 0 + _ :: Int+  , _ * _ + 0 :: Int+  , _ * _ + _ :: Int+  , _ * _ + x :: Int+  , _ * _ + id _ :: Int+  , _ * x + _ :: Int+  , _ * id _ + _ :: Int+  , x * _ + _ :: Int+  , id _ * _ + _ :: Int+  , (0 + 0) + _ :: Int+  , (0 + _) + 0 :: Int+  , (0 + _) + _ :: Int+  , (0 + _) + x :: Int+  , (0 + _) + id _ :: Int+  , (0 + x) + _ :: Int+  , (0 + id _) + _ :: Int+  , (1 + _) + _ :: Int+  , (_ + 0) + 0 :: Int+  , (_ + 0) + _ :: Int+  , (_ + 0) + x :: Int+  , (_ + 0) + id _ :: Int+  , (_ + 1) + _ :: Int+  , (_ + _) + 0 :: Int+  , (_ + _) + 1 :: Int+  , (_ + _) + _ :: Int+  , (_ + _) + x :: Int+  , (_ + _) + y :: Int+  , (_ + _) + ord _ :: Int+  , (_ + _) + abs _ :: Int+  , (_ + _) + id 0 :: Int+  , (_ + _) + id _ :: Int+  , (_ + _) + id x :: Int+  , (_ + _) + id (id _) :: Int+  , (_ + _) + negate _ :: Int+  , (_ + _) + head _ :: Int+  , (_ + _) + (_ + _) :: Int+  , (_ + x) + 0 :: Int+  , (_ + x) + _ :: Int+  , (_ + x) + x :: Int+  , (_ + x) + id _ :: Int+  , (_ + y) + _ :: Int+  , (_ + ord _) + _ :: Int+  , (_ + abs _) + _ :: Int+  , (_ + id 0) + _ :: Int+  , (_ + id _) + 0 :: Int+  , (_ + id _) + _ :: Int+  , (_ + id _) + x :: Int+  , (_ + id _) + id _ :: Int+  , (_ + id x) + _ :: Int+  , (_ + id (id _)) + _ :: Int+  , (_ + negate _) + _ :: Int+  , (_ + head _) + _ :: Int+  , (_ + (_ + _)) + _ :: Int+  , (x + 0) + _ :: Int+  , (x + _) + 0 :: Int+  , (x + _) + _ :: Int+  , (x + _) + x :: Int+  , (x + _) + id _ :: Int+  , (x + x) + _ :: Int+  , (x + id _) + _ :: Int+  , (y + _) + _ :: Int+  , (ord _ + _) + _ :: Int+  , (abs _ + _) + _ :: Int+  , (id 0 + _) + _ :: Int+  , (id _ + 0) + _ :: Int+  , (id _ + _) + 0 :: Int+  , (id _ + _) + _ :: Int+  , (id _ + _) + x :: Int+  , (id _ + _) + id _ :: Int+  , (id _ + x) + _ :: Int+  , (id _ + id _) + _ :: Int+  , (id x + _) + _ :: Int+  , (id (id _) + _) + _ :: Int+  , (negate _ + _) + _ :: Int+  , (head _ + _) + _ :: Int+  , ((_ + _) + _) + _ :: Int+  , elem 0 [] :: Bool+  , elem 0 _ :: Bool+  , elem 0 xs :: Bool+  , elem 0 (_:_) :: Bool+  , elem 1 _ :: Bool+  , elem _ [0] :: Bool+  , elem _ [] :: Bool+  , elem _ _ :: Bool+  , elem _ xs :: Bool+  , elem _ ys :: Bool+  , elem _ (tail _) :: Bool+  , elem _ (0:_) :: Bool+  , elem _ [_] :: Bool+  , elem _ (_:_) :: Bool+  , elem _ (_:xs) :: Bool+  , elem _ (_:_:_) :: Bool+  , elem _ (x:_) :: Bool+  , elem _ (id _:_) :: Bool+  , elem _ (_ ++ _) :: Bool+  , elem x [] :: Bool+  , elem x _ :: Bool+  , elem x xs :: Bool+  , elem x (_:_) :: Bool+  , elem y _ :: Bool+  , elem (ord _) _ :: Bool+  , elem (abs _) _ :: Bool+  , elem (id 0) _ :: Bool+  , elem (id _) [] :: Bool+  , elem (id _) _ :: Bool+  , elem (id _) xs :: Bool+  , elem (id _) (_:_) :: Bool+  , elem (id x) _ :: Bool+  , elem (id (id _)) _ :: Bool+  , elem (negate _) _ :: Bool+  , elem (head _) _ :: Bool+  , elem (_ + _) _ :: Bool+  , [-1] :: [Int]+  , (-1):_ :: [Int]+  , (-1):xs :: [Int]+  , (-1):_:_ :: [Int]+  , 0:[0,0] :: [Int]+  , 0:[0] :: [Int]+  , 0:[1] :: [Int]+  , [0] :: [Int]+  , 0:_ :: [Int]+  , 0:xs :: [Int]+  , 0:ys :: [Int]+  , 0:zs :: [Int]+  , 0:sort _ :: [Int]+  , 0:tail [] :: [Int]+  , 0:tail _ :: [Int]+  , 0:tail xs :: [Int]+  , 0:tail (_:_) :: [Int]+  , [0,0] :: [Int]+  , 0:0:_ :: [Int]+  , 0:0:xs :: [Int]+  , 0:0:_:_ :: [Int]+  , 0:1:_ :: [Int]+  , 0:_:[0] :: [Int]+  , [0,_] :: [Int]+  , 0:_:_ :: [Int]+  , 0:_:xs :: [Int]+  , 0:_:ys :: [Int]+  , 0:_:tail _ :: [Int]+  , 0:_:0:_ :: [Int]+  , [0,_,_] :: [Int]+  , 0:_:_:_ :: [Int]+  , 0:_:_:xs :: [Int]+  , 0:_:_:_:_ :: [Int]+  , 0:_:x:_ :: [Int]+  , 0:_:id _:_ :: [Int]+  , 0:_:(_ ++ _) :: [Int]+  , [0,x] :: [Int]+  , 0:x:_ :: [Int]+  , 0:x:xs :: [Int]+  , 0:x:_:_ :: [Int]+  , 0:y:_ :: [Int]+  , 0:ord _:_ :: [Int]+  , 0:abs _:_ :: [Int]+  , 0:id 0:_ :: [Int]+  , [0,id _] :: [Int]+  , 0:id _:_ :: [Int]+  , 0:id _:xs :: [Int]+  , 0:id _:_:_ :: [Int]+  , 0:id x:_ :: [Int]+  , 0:id (id _):_ :: [Int]+  , 0:negate _:_ :: [Int]+  , 0:head _:_ :: [Int]+  , 0:_ + _:_ :: [Int]+  , 0:insert _ _ :: [Int]+  , 0:([] ++ _) :: [Int]+  , 0:(_ ++ []) :: [Int]+  , 0:(_ ++ _) :: [Int]+  , 0:(_ ++ xs) :: [Int]+  , 0:(_ ++ (_:_)) :: [Int]+  , 0:(xs ++ _) :: [Int]+  , 0:((_:_) ++ _) :: [Int]+  , 1:[0] :: [Int]+  , [1] :: [Int]+  , 1:_ :: [Int]+  , 1:xs :: [Int]+  , 1:ys :: [Int]+  , 1:tail _ :: [Int]+  , 1:0:_ :: [Int]+  , [1,_] :: [Int]+  , 1:_:_ :: [Int]+  , 1:_:xs :: [Int]+  , 1:_:_:_ :: [Int]+  , 1:x:_ :: [Int]+  , 1:id _:_ :: [Int]+  , 1:(_ ++ _) :: [Int]+  , 2:_ :: [Int]+  , _:[-1] :: [Int]+  , _:[0,0,0] :: [Int]+  , _:[0,0] :: [Int]+  , _:[0,1] :: [Int]+  , _:[0] :: [Int]+  , _:[1,0] :: [Int]+  , _:[1] :: [Int]+  , [_] :: [Int]+  , _:_ :: [Int]+  , _:xs :: [Int]+  , _:xs' :: [Int]+  , _:ys :: [Int]+  , _:zs :: [Int]+  , _:sort [] :: [Int]+  , _:sort _ :: [Int]+  , _:sort xs :: [Int]+  , _:sort (_:_) :: [Int]+  , _:tail [0] :: [Int]+  , _:tail [] :: [Int]+  , _:tail _ :: [Int]+  , _:tail xs :: [Int]+  , _:tail ys :: [Int]+  , _:tail (tail _) :: [Int]+  , _:tail (0:_) :: [Int]+  , _:tail [_] :: [Int]+  , _:tail (_:_) :: [Int]+  , _:tail (_:xs) :: [Int]+  , _:tail (_:_:_) :: [Int]+  , _:tail (x:_) :: [Int]+  , _:tail (id _:_) :: [Int]+  , _:tail (_ ++ _) :: [Int]+  , _:(-1):_ :: [Int]+  , _:0:[0] :: [Int]+  , [_,0] :: [Int]+  , _:0:_ :: [Int]+  , _:0:xs :: [Int]+  , _:0:ys :: [Int]+  , _:0:tail _ :: [Int]+  , _:0:0:_ :: [Int]+  , [_,0,_] :: [Int]+  , _:0:_:_ :: [Int]+  , _:0:_:xs :: [Int]+  , _:0:_:_:_ :: [Int]+  , _:0:x:_ :: [Int]+  , _:0:id _:_ :: [Int]+  , _:0:(_ ++ _) :: [Int]+  , [_,1] :: [Int]+  , _:1:_ :: [Int]+  , _:1:xs :: [Int]+  , _:1:_:_ :: [Int]+  , _:_:[0,0] :: [Int]+  , _:_:[0] :: [Int]+  , _:_:[1] :: [Int]+  , [_,_] :: [Int]+  , _:_:_ :: [Int]+  , _:_:xs :: [Int]+  , _:_:ys :: [Int]+  , _:_:zs :: [Int]+  , _:_:sort _ :: [Int]+  , _:_:tail [] :: [Int]+  , _:_:tail _ :: [Int]+  , _:_:tail xs :: [Int]+  , _:_:tail (_:_) :: [Int]+  , [_,_,0] :: [Int]+  , _:_:0:_ :: [Int]+  , _:_:0:xs :: [Int]+  , _:_:0:_:_ :: [Int]+  , _:_:1:_ :: [Int]+  , _:_:_:[0] :: [Int]+  , [_,_,_] :: [Int]+  , _:_:_:_ :: [Int]+  , _:_:_:xs :: [Int]+  , _:_:_:ys :: [Int]+  , _:_:_:tail _ :: [Int]+  , _:_:_:0:_ :: [Int]+  , [_,_,_,_] :: [Int]+  , _:_:_:_:_ :: [Int]+  , _:_:_:_:xs :: [Int]+  , _:_:_:_:_:_ :: [Int]+  , _:_:_:x:_ :: [Int]+  , _:_:_:id _:_ :: [Int]+  , _:_:_:(_ ++ _) :: [Int]+  , [_,_,x] :: [Int]+  , _:_:x:_ :: [Int]+  , _:_:x:xs :: [Int]+  , _:_:x:_:_ :: [Int]+  , _:_:y:_ :: [Int]+  , _:_:ord _:_ :: [Int]+  , _:_:abs _:_ :: [Int]+  , _:_:id 0:_ :: [Int]+  , [_,_,id _] :: [Int]+  , _:_:id _:_ :: [Int]+  , _:_:id _:xs :: [Int]+  , _:_:id _:_:_ :: [Int]+  , _:_:id x:_ :: [Int]+  , _:_:id (id _):_ :: [Int]+  , _:_:negate _:_ :: [Int]+  , _:_:head _:_ :: [Int]+  , _:_:_ + _:_ :: [Int]+  , _:_:insert _ _ :: [Int]+  , _:_:([] ++ _) :: [Int]+  , _:_:(_ ++ []) :: [Int]+  , _:_:(_ ++ _) :: [Int]+  , _:_:(_ ++ xs) :: [Int]+  , _:_:(_ ++ (_:_)) :: [Int]+  , _:_:(xs ++ _) :: [Int]+  , _:_:((_:_) ++ _) :: [Int]+  , _:x:[0] :: [Int]+  , [_,x] :: [Int]+  , _:x:_ :: [Int]+  , _:x:xs :: [Int]+  , _:x:ys :: [Int]+  , _:x:tail _ :: [Int]+  , _:x:0:_ :: [Int]+  , [_,x,_] :: [Int]+  , _:x:_:_ :: [Int]+  , _:x:_:xs :: [Int]+  , _:x:_:_:_ :: [Int]+  , _:x:x:_ :: [Int]+  , _:x:id _:_ :: [Int]+  , _:x:(_ ++ _) :: [Int]+  , [_,y] :: [Int]+  , _:y:_ :: [Int]+  , _:y:xs :: [Int]+  , _:y:_:_ :: [Int]+  , _:z:_ :: [Int]+  , _:ord 'a':_ :: [Int]+  , [_,ord _] :: [Int]+  , _:ord _:_ :: [Int]+  , _:ord _:xs :: [Int]+  , _:ord _:_:_ :: [Int]+  , _:ord c:_ :: [Int]+  , _:f _:_ :: [Int]+  , _:abs 0:_ :: [Int]+  , [_,abs _] :: [Int]+  , _:abs _:_ :: [Int]+  , _:abs _:xs :: [Int]+  , _:abs _:_:_ :: [Int]+  , _:abs x:_ :: [Int]+  , _:abs (id _):_ :: [Int]+  , [_,id 0] :: [Int]+  , _:id 0:_ :: [Int]+  , _:id 0:xs :: [Int]+  , _:id 0:_:_ :: [Int]+  , _:id 1:_ :: [Int]+  , _:id _:[0] :: [Int]+  , [_,id _] :: [Int]+  , _:id _:_ :: [Int]+  , _:id _:xs :: [Int]+  , _:id _:ys :: [Int]+  , _:id _:tail _ :: [Int]+  , _:id _:0:_ :: [Int]+  , [_,id _,_] :: [Int]+  , _:id _:_:_ :: [Int]+  , _:id _:_:xs :: [Int]+  , _:id _:_:_:_ :: [Int]+  , _:id _:x:_ :: [Int]+  , _:id _:id _:_ :: [Int]+  , _:id _:(_ ++ _) :: [Int]+  , [_,id x] :: [Int]+  , _:id x:_ :: [Int]+  , _:id x:xs :: [Int]+  , _:id x:_:_ :: [Int]+  , _:id y:_ :: [Int]+  , _:id (ord _):_ :: [Int]+  , _:id (abs _):_ :: [Int]+  , _:id (id 0):_ :: [Int]+  , [_,id (id _)] :: [Int]+  , _:id (id _):_ :: [Int]+  , _:id (id _):xs :: [Int]+  , _:id (id _):_:_ :: [Int]+  , _:id (id x):_ :: [Int]+  , _:id (id (id _)):_ :: [Int]+  , _:id (negate _):_ :: [Int]+  , _:id (head _):_ :: [Int]+  , _:id (_ + _):_ :: [Int]+  , _:negate 0:_ :: [Int]+  , [_,negate _] :: [Int]+  , _:negate _:_ :: [Int]+  , _:negate _:xs :: [Int]+  , _:negate _:_:_ :: [Int]+  , _:negate x:_ :: [Int]+  , _:negate (id _):_ :: [Int]+  , _:head []:_ :: [Int]+  , [_,head _] :: [Int]+  , _:head _:_ :: [Int]+  , _:head _:xs :: [Int]+  , _:head _:_:_ :: [Int]+  , _:head xs:_ :: [Int]+  , _:head (_:_):_ :: [Int]+  , _:_ * _:_ :: [Int]+  , _:0 + _:_ :: [Int]+  , _:_ + 0:_ :: [Int]+  , [_,_ + _] :: [Int]+  , _:_ + _:_ :: [Int]+  , _:_ + _:xs :: [Int]+  , _:_ + _:_:_ :: [Int]+  , _:_ + x:_ :: [Int]+  , _:_ + id _:_ :: [Int]+  , _:x + _:_ :: [Int]+  , _:id _ + _:_ :: [Int]+  , _:insert 0 _ :: [Int]+  , _:insert _ [] :: [Int]+  , _:insert _ _ :: [Int]+  , _:insert _ xs :: [Int]+  , _:insert _ (_:_) :: [Int]+  , _:insert x _ :: [Int]+  , _:insert (id _) _ :: [Int]+  , _:([0] ++ _) :: [Int]+  , _:([] ++ []) :: [Int]+  , _:([] ++ _) :: [Int]+  , _:([] ++ xs) :: [Int]+  , _:([] ++ (_:_)) :: [Int]+  , _:(_ ++ [0]) :: [Int]+  , _:(_ ++ []) :: [Int]+  , _:(_ ++ _) :: [Int]+  , _:(_ ++ xs) :: [Int]+  , _:(_ ++ ys) :: [Int]+  , _:(_ ++ tail _) :: [Int]+  , _:(_ ++ (0:_)) :: [Int]+  , _:(_ ++ [_]) :: [Int]+  , _:(_ ++ (_:_)) :: [Int]+  , _:(_ ++ (_:xs)) :: [Int]+  , _:(_ ++ (_:_:_)) :: [Int]+  , _:(_ ++ (x:_)) :: [Int]+  , _:(_ ++ (id _:_)) :: [Int]+  , _:(_ ++ (_ ++ _)) :: [Int]+  , _:(xs ++ []) :: [Int]+  , _:(xs ++ _) :: [Int]+  , _:(xs ++ xs) :: [Int]+  , _:(xs ++ (_:_)) :: [Int]+  , _:(ys ++ _) :: [Int]+  , _:(tail _ ++ _) :: [Int]+  , _:((0:_) ++ _) :: [Int]+  , _:([_] ++ _) :: [Int]+  , _:((_:_) ++ []) :: [Int]+  , _:((_:_) ++ _) :: [Int]+  , _:((_:_) ++ xs) :: [Int]+  , _:((_:_) ++ (_:_)) :: [Int]+  , _:((_:xs) ++ _) :: [Int]+  , _:((_:_:_) ++ _) :: [Int]+  , _:((x:_) ++ _) :: [Int]+  , _:((id _:_) ++ _) :: [Int]+  , _:((_ ++ _) ++ _) :: [Int]+  , x:[0,0] :: [Int]+  , x:[0] :: [Int]+  , x:[1] :: [Int]+  , [x] :: [Int]+  , x:_ :: [Int]+  , x:xs :: [Int]+  , x:ys :: [Int]+  , x:zs :: [Int]+  , x:sort _ :: [Int]+  , x:tail [] :: [Int]+  , x:tail _ :: [Int]+  , x:tail xs :: [Int]+  , x:tail (_:_) :: [Int]+  , [x,0] :: [Int]+  , x:0:_ :: [Int]+  , x:0:xs :: [Int]+  , x:0:_:_ :: [Int]+  , x:1:_ :: [Int]+  , x:_:[0] :: [Int]+  , [x,_] :: [Int]+  , x:_:_ :: [Int]+  , x:_:xs :: [Int]+  , x:_:ys :: [Int]+  , x:_:tail _ :: [Int]+  , x:_:0:_ :: [Int]+  , [x,_,_] :: [Int]+  , x:_:_:_ :: [Int]+  , x:_:_:xs :: [Int]+  , x:_:_:_:_ :: [Int]+  , x:_:x:_ :: [Int]+  , x:_:id _:_ :: [Int]+  , x:_:(_ ++ _) :: [Int]+  , [x,x] :: [Int]+  , x:x:_ :: [Int]+  , x:x:xs :: [Int]+  , x:x:_:_ :: [Int]+  , x:y:_ :: [Int]+  , x:ord _:_ :: [Int]+  , x:abs _:_ :: [Int]+  , x:id 0:_ :: [Int]+  , [x,id _] :: [Int]+  , x:id _:_ :: [Int]+  , x:id _:xs :: [Int]+  , x:id _:_:_ :: [Int]+  , x:id x:_ :: [Int]+  , x:id (id _):_ :: [Int]+  , x:negate _:_ :: [Int]+  , x:head _:_ :: [Int]+  , x:_ + _:_ :: [Int]+  , x:insert _ _ :: [Int]+  , x:([] ++ _) :: [Int]+  , x:(_ ++ []) :: [Int]+  , x:(_ ++ _) :: [Int]+  , x:(_ ++ xs) :: [Int]+  , x:(_ ++ (_:_)) :: [Int]+  , x:(xs ++ _) :: [Int]+  , x:((_:_) ++ _) :: [Int]+  , x':_ :: [Int]+  , y:[0] :: [Int]+  , [y] :: [Int]+  , y:_ :: [Int]+  , y:xs :: [Int]+  , y:ys :: [Int]+  , y:tail _ :: [Int]+  , y:0:_ :: [Int]+  , [y,_] :: [Int]+  , y:_:_ :: [Int]+  , y:_:xs :: [Int]+  , y:_:_:_ :: [Int]+  , y:x:_ :: [Int]+  , y:id _:_ :: [Int]+  , y:(_ ++ _) :: [Int]+  , [z] :: [Int]+  , z:_ :: [Int]+  , z:xs :: [Int]+  , z:_:_ :: [Int]+  , ord ' ':_ :: [Int]+  , [ord 'a'] :: [Int]+  , ord 'a':_ :: [Int]+  , ord 'a':xs :: [Int]+  , ord 'a':_:_ :: [Int]+  , ord _:[0] :: [Int]+  , [ord _] :: [Int]+  , ord _:_ :: [Int]+  , ord _:xs :: [Int]+  , ord _:ys :: [Int]+  , ord _:tail _ :: [Int]+  , ord _:0:_ :: [Int]+  , [ord _,_] :: [Int]+  , ord _:_:_ :: [Int]+  , ord _:_:xs :: [Int]+  , ord _:_:_:_ :: [Int]+  , ord _:x:_ :: [Int]+  , ord _:id _:_ :: [Int]+  , ord _:(_ ++ _) :: [Int]+  , [ord c] :: [Int]+  , ord c:_ :: [Int]+  , ord c:xs :: [Int]+  , ord c:_:_ :: [Int]+  , ord d:_ :: [Int]+  , f 0:_ :: [Int]+  , [f _] :: [Int]+  , f _:_ :: [Int]+  , f _:xs :: [Int]+  , f _:_:_ :: [Int]+  , f x:_ :: [Int]+  , f (id _):_ :: [Int]+  , g _:_ :: [Int]+  , [abs 0] :: [Int]+  , abs 0:_ :: [Int]+  , abs 0:xs :: [Int]+  , abs 0:_:_ :: [Int]+  , abs 1:_ :: [Int]+  , abs _:[0] :: [Int]+  , [abs _] :: [Int]+  , abs _:_ :: [Int]+  , abs _:xs :: [Int]+  , abs _:ys :: [Int]+  , abs _:tail _ :: [Int]+  , abs _:0:_ :: [Int]+  , [abs _,_] :: [Int]+  , abs _:_:_ :: [Int]+  , abs _:_:xs :: [Int]+  , abs _:_:_:_ :: [Int]+  , abs _:x:_ :: [Int]+  , abs _:id _:_ :: [Int]+  , abs _:(_ ++ _) :: [Int]+  , [abs x] :: [Int]+  , abs x:_ :: [Int]+  , abs x:xs :: [Int]+  , abs x:_:_ :: [Int]+  , abs y:_ :: [Int]+  , abs (ord _):_ :: [Int]+  , abs (abs _):_ :: [Int]+  , abs (id 0):_ :: [Int]+  , [abs (id _)] :: [Int]+  , abs (id _):_ :: [Int]+  , abs (id _):xs :: [Int]+  , abs (id _):_:_ :: [Int]+  , abs (id x):_ :: [Int]+  , abs (id (id _)):_ :: [Int]+  , abs (negate _):_ :: [Int]+  , abs (head _):_ :: [Int]+  , abs (_ + _):_ :: [Int]+  , id (-1):_ :: [Int]+  , id 0:[0] :: [Int]+  , [id 0] :: [Int]+  , id 0:_ :: [Int]+  , id 0:xs :: [Int]+  , id 0:ys :: [Int]+  , id 0:tail _ :: [Int]+  , id 0:0:_ :: [Int]+  , [id 0,_] :: [Int]+  , id 0:_:_ :: [Int]+  , id 0:_:xs :: [Int]+  , id 0:_:_:_ :: [Int]+  , id 0:x:_ :: [Int]+  , id 0:id _:_ :: [Int]+  , id 0:(_ ++ _) :: [Int]+  , [id 1] :: [Int]+  , id 1:_ :: [Int]+  , id 1:xs :: [Int]+  , id 1:_:_ :: [Int]+  , id _:[0,0] :: [Int]+  , id _:[0] :: [Int]+  , id _:[1] :: [Int]+  , [id _] :: [Int]+  , id _:_ :: [Int]+  , id _:xs :: [Int]+  , id _:ys :: [Int]+  , id _:zs :: [Int]+  , id _:sort _ :: [Int]+  , id _:tail [] :: [Int]+  , id _:tail _ :: [Int]+  , id _:tail xs :: [Int]+  , id _:tail (_:_) :: [Int]+  , [id _,0] :: [Int]+  , id _:0:_ :: [Int]+  , id _:0:xs :: [Int]+  , id _:0:_:_ :: [Int]+  , id _:1:_ :: [Int]+  , id _:_:[0] :: [Int]+  , [id _,_] :: [Int]+  , id _:_:_ :: [Int]+  , id _:_:xs :: [Int]+  , id _:_:ys :: [Int]+  , id _:_:tail _ :: [Int]+  , id _:_:0:_ :: [Int]+  , [id _,_,_] :: [Int]+  , id _:_:_:_ :: [Int]+  , id _:_:_:xs :: [Int]+  , id _:_:_:_:_ :: [Int]+  , id _:_:x:_ :: [Int]+  , id _:_:id _:_ :: [Int]+  , id _:_:(_ ++ _) :: [Int]+  , [id _,x] :: [Int]+  , id _:x:_ :: [Int]+  , id _:x:xs :: [Int]+  , id _:x:_:_ :: [Int]+  , id _:y:_ :: [Int]+  , id _:ord _:_ :: [Int]+  , id _:abs _:_ :: [Int]+  , id _:id 0:_ :: [Int]+  , [id _,id _] :: [Int]+  , id _:id _:_ :: [Int]+  , id _:id _:xs :: [Int]+  , id _:id _:_:_ :: [Int]+  , id _:id x:_ :: [Int]+  , id _:id (id _):_ :: [Int]+  , id _:negate _:_ :: [Int]+  , id _:head _:_ :: [Int]+  , id _:_ + _:_ :: [Int]+  , id _:insert _ _ :: [Int]+  , id _:([] ++ _) :: [Int]+  , id _:(_ ++ []) :: [Int]+  , id _:(_ ++ _) :: [Int]+  , id _:(_ ++ xs) :: [Int]+  , id _:(_ ++ (_:_)) :: [Int]+  , id _:(xs ++ _) :: [Int]+  , id _:((_:_) ++ _) :: [Int]+  , id x:[0] :: [Int]+  , [id x] :: [Int]+  , id x:_ :: [Int]+  , id x:xs :: [Int]+  , id x:ys :: [Int]+  , id x:tail _ :: [Int]+  , id x:0:_ :: [Int]+  , [id x,_] :: [Int]+  , id x:_:_ :: [Int]+  , id x:_:xs :: [Int]+  , id x:_:_:_ :: [Int]+  , id x:x:_ :: [Int]+  , id x:id _:_ :: [Int]+  , id x:(_ ++ _) :: [Int]+  , [id y] :: [Int]+  , id y:_ :: [Int]+  , id y:xs :: [Int]+  , id y:_:_ :: [Int]+  , id z:_ :: [Int]+  , id (ord 'a'):_ :: [Int]+  , [id (ord _)] :: [Int]+  , id (ord _):_ :: [Int]+  , id (ord _):xs :: [Int]+  , id (ord _):_:_ :: [Int]+  , id (ord c):_ :: [Int]+  , id (f _):_ :: [Int]+  , id (abs 0):_ :: [Int]+  , [id (abs _)] :: [Int]+  , id (abs _):_ :: [Int]+  , id (abs _):xs :: [Int]+  , id (abs _):_:_ :: [Int]+  , id (abs x):_ :: [Int]+  , id (abs (id _)):_ :: [Int]+  , [id (id 0)] :: [Int]+  , id (id 0):_ :: [Int]+  , id (id 0):xs :: [Int]+  , id (id 0):_:_ :: [Int]+  , id (id 1):_ :: [Int]+  , id (id _):[0] :: [Int]+  , [id (id _)] :: [Int]+  , id (id _):_ :: [Int]+  , id (id _):xs :: [Int]+  , id (id _):ys :: [Int]+  , id (id _):tail _ :: [Int]+  , id (id _):0:_ :: [Int]+  , [id (id _),_] :: [Int]+  , id (id _):_:_ :: [Int]+  , id (id _):_:xs :: [Int]+  , id (id _):_:_:_ :: [Int]+  , id (id _):x:_ :: [Int]+  , id (id _):id _:_ :: [Int]+  , id (id _):(_ ++ _) :: [Int]+  , [id (id x)] :: [Int]+  , id (id x):_ :: [Int]+  , id (id x):xs :: [Int]+  , id (id x):_:_ :: [Int]+  , id (id y):_ :: [Int]+  , id (id (ord _)):_ :: [Int]+  , id (id (abs _)):_ :: [Int]+  , id (id (id 0)):_ :: [Int]+  , [id (id (id _))] :: [Int]+  , id (id (id _)):_ :: [Int]+  , id (id (id _)):xs :: [Int]+  , id (id (id _)):_:_ :: [Int]+  , id (id (id x)):_ :: [Int]+  , id (id (id (id _))):_ :: [Int]+  , id (id (negate _)):_ :: [Int]+  , id (id (head _)):_ :: [Int]+  , id (id (_ + _)):_ :: [Int]+  , id (negate 0):_ :: [Int]+  , [id (negate _)] :: [Int]+  , id (negate _):_ :: [Int]+  , id (negate _):xs :: [Int]+  , id (negate _):_:_ :: [Int]+  , id (negate x):_ :: [Int]+  , id (negate (id _)):_ :: [Int]+  , id (head []):_ :: [Int]+  , [id (head _)] :: [Int]+  , id (head _):_ :: [Int]+  , id (head _):xs :: [Int]+  , id (head _):_:_ :: [Int]+  , id (head xs):_ :: [Int]+  , id (head (_:_)):_ :: [Int]+  , id (_ * _):_ :: [Int]+  , id (0 + _):_ :: [Int]+  , id (_ + 0):_ :: [Int]+  , [id (_ + _)] :: [Int]+  , id (_ + _):_ :: [Int]+  , id (_ + _):xs :: [Int]+  , id (_ + _):_:_ :: [Int]+  , id (_ + x):_ :: [Int]+  , id (_ + id _):_ :: [Int]+  , id (x + _):_ :: [Int]+  , id (id _ + _):_ :: [Int]+  , [negate 0] :: [Int]+  , negate 0:_ :: [Int]+  , negate 0:xs :: [Int]+  , negate 0:_:_ :: [Int]+  , negate 1:_ :: [Int]+  , negate _:[0] :: [Int]+  , [negate _] :: [Int]+  , negate _:_ :: [Int]+  , negate _:xs :: [Int]+  , negate _:ys :: [Int]+  , negate _:tail _ :: [Int]+  , negate _:0:_ :: [Int]+  , [negate _,_] :: [Int]+  , negate _:_:_ :: [Int]+  , negate _:_:xs :: [Int]+  , negate _:_:_:_ :: [Int]+  , negate _:x:_ :: [Int]+  , negate _:id _:_ :: [Int]+  , negate _:(_ ++ _) :: [Int]+  , [negate x] :: [Int]+  , negate x:_ :: [Int]+  , negate x:xs :: [Int]+  , negate x:_:_ :: [Int]+  , negate y:_ :: [Int]+  , negate (ord _):_ :: [Int]+  , negate (abs _):_ :: [Int]+  , negate (id 0):_ :: [Int]+  , [negate (id _)] :: [Int]+  , negate (id _):_ :: [Int]+  , negate (id _):xs :: [Int]+  , negate (id _):_:_ :: [Int]+  , negate (id x):_ :: [Int]+  , negate (id (id _)):_ :: [Int]+  , negate (negate _):_ :: [Int]+  , negate (head _):_ :: [Int]+  , negate (_ + _):_ :: [Int]+  , head [0]:_ :: [Int]+  , [head []] :: [Int]+  , head []:_ :: [Int]+  , head []:xs :: [Int]+  , head []:_:_ :: [Int]+  , head _:[0] :: [Int]+  , [head _] :: [Int]+  , head _:_ :: [Int]+  , head _:xs :: [Int]+  , head _:ys :: [Int]+  , head _:tail _ :: [Int]+  , head _:0:_ :: [Int]+  , [head _,_] :: [Int]+  , head _:_:_ :: [Int]+  , head _:_:xs :: [Int]+  , head _:_:_:_ :: [Int]+  , head _:x:_ :: [Int]+  , head _:id _:_ :: [Int]+  , head _:(_ ++ _) :: [Int]+  , [head xs] :: [Int]+  , head xs:_ :: [Int]+  , head xs:xs :: [Int]+  , head xs:_:_ :: [Int]+  , head ys:_ :: [Int]+  , head (tail _):_ :: [Int]+  , head (0:_):_ :: [Int]+  , head [_]:_ :: [Int]+  , [head (_:_)] :: [Int]+  , head (_:_):_ :: [Int]+  , head (_:_):xs :: [Int]+  , head (_:_):_:_ :: [Int]+  , head (_:xs):_ :: [Int]+  , head (_:_:_):_ :: [Int]+  , head (x:_):_ :: [Int]+  , head (id _:_):_ :: [Int]+  , head (_ ++ _):_ :: [Int]+  , 0 * _:_ :: [Int]+  , _ * 0:_ :: [Int]+  , [_ * _] :: [Int]+  , _ * _:_ :: [Int]+  , _ * _:xs :: [Int]+  , _ * _:_:_ :: [Int]+  , _ * x:_ :: [Int]+  , _ * id _:_ :: [Int]+  , x * _:_ :: [Int]+  , id _ * _:_ :: [Int]+  , 0 + 0:_ :: [Int]+  , [0 + _] :: [Int]+  , 0 + _:_ :: [Int]+  , 0 + _:xs :: [Int]+  , 0 + _:_:_ :: [Int]+  , 0 + x:_ :: [Int]+  , 0 + id _:_ :: [Int]+  , 1 + _:_ :: [Int]+  , [_ + 0] :: [Int]+  , _ + 0:_ :: [Int]+  , _ + 0:xs :: [Int]+  , _ + 0:_:_ :: [Int]+  , _ + 1:_ :: [Int]+  , _ + _:[0] :: [Int]+  , [_ + _] :: [Int]+  , _ + _:_ :: [Int]+  , _ + _:xs :: [Int]+  , _ + _:ys :: [Int]+  , _ + _:tail _ :: [Int]+  , _ + _:0:_ :: [Int]+  , [_ + _,_] :: [Int]+  , _ + _:_:_ :: [Int]+  , _ + _:_:xs :: [Int]+  , _ + _:_:_:_ :: [Int]+  , _ + _:x:_ :: [Int]+  , _ + _:id _:_ :: [Int]+  , _ + _:(_ ++ _) :: [Int]+  , [_ + x] :: [Int]+  , _ + x:_ :: [Int]+  , _ + x:xs :: [Int]+  , _ + x:_:_ :: [Int]+  , _ + y:_ :: [Int]+  , _ + ord _:_ :: [Int]+  , _ + abs _:_ :: [Int]+  , _ + id 0:_ :: [Int]+  , [_ + id _] :: [Int]+  , _ + id _:_ :: [Int]+  , _ + id _:xs :: [Int]+  , _ + id _:_:_ :: [Int]+  , _ + id x:_ :: [Int]+  , _ + id (id _):_ :: [Int]+  , _ + negate _:_ :: [Int]+  , _ + head _:_ :: [Int]+  , _ + (_ + _):_ :: [Int]+  , x + 0:_ :: [Int]+  , [x + _] :: [Int]+  , x + _:_ :: [Int]+  , x + _:xs :: [Int]+  , x + _:_:_ :: [Int]+  , x + x:_ :: [Int]+  , x + id _:_ :: [Int]+  , y + _:_ :: [Int]+  , ord _ + _:_ :: [Int]+  , abs _ + _:_ :: [Int]+  , id 0 + _:_ :: [Int]+  , id _ + 0:_ :: [Int]+  , [id _ + _] :: [Int]+  , id _ + _:_ :: [Int]+  , id _ + _:xs :: [Int]+  , id _ + _:_:_ :: [Int]+  , id _ + x:_ :: [Int]+  , id _ + id _:_ :: [Int]+  , id x + _:_ :: [Int]+  , id (id _) + _:_ :: [Int]+  , negate _ + _:_ :: [Int]+  , head _ + _:_ :: [Int]+  , (_ + _) + _:_ :: [Int]+  , insert 0 [] :: [Int]+  , insert 0 _ :: [Int]+  , insert 0 xs :: [Int]+  , insert 0 (_:_) :: [Int]+  , insert 1 _ :: [Int]+  , insert _ [0] :: [Int]+  , insert _ [] :: [Int]+  , insert _ _ :: [Int]+  , insert _ xs :: [Int]+  , insert _ ys :: [Int]+  , insert _ (tail _) :: [Int]+  , insert _ (0:_) :: [Int]+  , insert _ [_] :: [Int]+  , insert _ (_:_) :: [Int]+  , insert _ (_:xs) :: [Int]+  , insert _ (_:_:_) :: [Int]+  , insert _ (x:_) :: [Int]+  , insert _ (id _:_) :: [Int]+  , insert _ (_ ++ _) :: [Int]+  , insert x [] :: [Int]+  , insert x _ :: [Int]+  , insert x xs :: [Int]+  , insert x (_:_) :: [Int]+  , insert y _ :: [Int]+  , insert (ord _) _ :: [Int]+  , insert (abs _) _ :: [Int]+  , insert (id 0) _ :: [Int]+  , insert (id _) [] :: [Int]+  , insert (id _) _ :: [Int]+  , insert (id _) xs :: [Int]+  , insert (id _) (_:_) :: [Int]+  , insert (id x) _ :: [Int]+  , insert (id (id _)) _ :: [Int]+  , insert (negate _) _ :: [Int]+  , insert (head _) _ :: [Int]+  , insert (_ + _) _ :: [Int]+  , [0,0] ++ _ :: [Int]+  , [0] ++ [] :: [Int]+  , [0] ++ _ :: [Int]+  , [0] ++ xs :: [Int]+  , [0] ++ (_:_) :: [Int]+  , [1] ++ _ :: [Int]+  , [] ++ [0] :: [Int]+  , [] ++ [] :: [Int]+  , [] ++ _ :: [Int]+  , [] ++ xs :: [Int]+  , [] ++ ys :: [Int]+  , [] ++ tail _ :: [Int]+  , [] ++ (0:_) :: [Int]+  , [] ++ [_] :: [Int]+  , [] ++ (_:_) :: [Int]+  , [] ++ (_:xs) :: [Int]+  , [] ++ (_:_:_) :: [Int]+  , [] ++ (x:_) :: [Int]+  , [] ++ (id _:_) :: [Int]+  , [] ++ (_ ++ _) :: [Int]+  , _ ++ [0,0] :: [Int]+  , _ ++ [0] :: [Int]+  , _ ++ [1] :: [Int]+  , _ ++ [] :: [Int]+  , _ ++ _ :: [Int]+  , _ ++ xs :: [Int]+  , _ ++ ys :: [Int]+  , _ ++ zs :: [Int]+  , _ ++ sort _ :: [Int]+  , _ ++ tail [] :: [Int]+  , _ ++ tail _ :: [Int]+  , _ ++ tail xs :: [Int]+  , _ ++ tail (_:_) :: [Int]+  , _ ++ [0] :: [Int]+  , _ ++ (0:_) :: [Int]+  , _ ++ (0:xs) :: [Int]+  , _ ++ (0:_:_) :: [Int]+  , _ ++ (1:_) :: [Int]+  , _ ++ (_:[0]) :: [Int]+  , _ ++ [_] :: [Int]+  , _ ++ (_:_) :: [Int]+  , _ ++ (_:xs) :: [Int]+  , _ ++ (_:ys) :: [Int]+  , _ ++ (_:tail _) :: [Int]+  , _ ++ (_:0:_) :: [Int]+  , _ ++ [_,_] :: [Int]+  , _ ++ (_:_:_) :: [Int]+  , _ ++ (_:_:xs) :: [Int]+  , _ ++ (_:_:_:_) :: [Int]+  , _ ++ (_:x:_) :: [Int]+  , _ ++ (_:id _:_) :: [Int]+  , _ ++ (_:(_ ++ _)) :: [Int]+  , _ ++ [x] :: [Int]+  , _ ++ (x:_) :: [Int]+  , _ ++ (x:xs) :: [Int]+  , _ ++ (x:_:_) :: [Int]+  , _ ++ (y:_) :: [Int]+  , _ ++ (ord _:_) :: [Int]+  , _ ++ (abs _:_) :: [Int]+  , _ ++ (id 0:_) :: [Int]+  , _ ++ [id _] :: [Int]+  , _ ++ (id _:_) :: [Int]+  , _ ++ (id _:xs) :: [Int]+  , _ ++ (id _:_:_) :: [Int]+  , _ ++ (id x:_) :: [Int]+  , _ ++ (id (id _):_) :: [Int]+  , _ ++ (negate _:_) :: [Int]+  , _ ++ (head _:_) :: [Int]+  , _ ++ (_ + _:_) :: [Int]+  , _ ++ insert _ _ :: [Int]+  , _ ++ ([] ++ _) :: [Int]+  , _ ++ (_ ++ []) :: [Int]+  , _ ++ (_ ++ _) :: [Int]+  , _ ++ (_ ++ xs) :: [Int]+  , _ ++ (_ ++ (_:_)) :: [Int]+  , _ ++ (xs ++ _) :: [Int]+  , _ ++ ((_:_) ++ _) :: [Int]+  , xs ++ [0] :: [Int]+  , xs ++ [] :: [Int]+  , xs ++ _ :: [Int]+  , xs ++ xs :: [Int]+  , xs ++ ys :: [Int]+  , xs ++ tail _ :: [Int]+  , xs ++ (0:_) :: [Int]+  , xs ++ [_] :: [Int]+  , xs ++ (_:_) :: [Int]+  , xs ++ (_:xs) :: [Int]+  , xs ++ (_:_:_) :: [Int]+  , xs ++ (x:_) :: [Int]+  , xs ++ (id _:_) :: [Int]+  , xs ++ (_ ++ _) :: [Int]+  , ys ++ [] :: [Int]+  , ys ++ _ :: [Int]+  , ys ++ xs :: [Int]+  , ys ++ (_:_) :: [Int]+  , zs ++ _ :: [Int]+  , sort _ ++ _ :: [Int]+  , tail [] ++ _ :: [Int]+  , tail _ ++ [] :: [Int]+  , tail _ ++ _ :: [Int]+  , tail _ ++ xs :: [Int]+  , tail _ ++ (_:_) :: [Int]+  , tail xs ++ _ :: [Int]+  , tail (_:_) ++ _ :: [Int]+  , [0] ++ _ :: [Int]+  , (0:_) ++ [] :: [Int]+  , (0:_) ++ _ :: [Int]+  , (0:_) ++ xs :: [Int]+  , (0:_) ++ (_:_) :: [Int]+  , (0:xs) ++ _ :: [Int]+  , (0:_:_) ++ _ :: [Int]+  , (1:_) ++ _ :: [Int]+  , (_:[0]) ++ _ :: [Int]+  , [_] ++ [] :: [Int]+  , [_] ++ _ :: [Int]+  , [_] ++ xs :: [Int]+  , [_] ++ (_:_) :: [Int]+  , (_:_) ++ [0] :: [Int]+  , (_:_) ++ [] :: [Int]+  , (_:_) ++ _ :: [Int]+  , (_:_) ++ xs :: [Int]+  , (_:_) ++ ys :: [Int]+  , (_:_) ++ tail _ :: [Int]+  , (_:_) ++ (0:_) :: [Int]+  , (_:_) ++ [_] :: [Int]+  , (_:_) ++ (_:_) :: [Int]+  , (_:_) ++ (_:xs) :: [Int]+  , (_:_) ++ (_:_:_) :: [Int]+  , (_:_) ++ (x:_) :: [Int]+  , (_:_) ++ (id _:_) :: [Int]+  , (_:_) ++ (_ ++ _) :: [Int]+  , (_:xs) ++ [] :: [Int]+  , (_:xs) ++ _ :: [Int]+  , (_:xs) ++ xs :: [Int]+  , (_:xs) ++ (_:_) :: [Int]+  , (_:ys) ++ _ :: [Int]+  , (_:tail _) ++ _ :: [Int]+  , (_:0:_) ++ _ :: [Int]+  , [_,_] ++ _ :: [Int]+  , (_:_:_) ++ [] :: [Int]+  , (_:_:_) ++ _ :: [Int]+  , (_:_:_) ++ xs :: [Int]+  , (_:_:_) ++ (_:_) :: [Int]+  , (_:_:xs) ++ _ :: [Int]+  , (_:_:_:_) ++ _ :: [Int]+  , (_:x:_) ++ _ :: [Int]+  , (_:id _:_) ++ _ :: [Int]+  , (_:(_ ++ _)) ++ _ :: [Int]+  , [x] ++ _ :: [Int]+  , (x:_) ++ [] :: [Int]+  , (x:_) ++ _ :: [Int]+  , (x:_) ++ xs :: [Int]+  , (x:_) ++ (_:_) :: [Int]+  , (x:xs) ++ _ :: [Int]+  , (x:_:_) ++ _ :: [Int]+  , (y:_) ++ _ :: [Int]+  , (ord _:_) ++ _ :: [Int]+  , (abs _:_) ++ _ :: [Int]+  , (id 0:_) ++ _ :: [Int]+  , [id _] ++ _ :: [Int]+  , (id _:_) ++ [] :: [Int]+  , (id _:_) ++ _ :: [Int]+  , (id _:_) ++ xs :: [Int]+  , (id _:_) ++ (_:_) :: [Int]+  , (id _:xs) ++ _ :: [Int]+  , (id _:_:_) ++ _ :: [Int]+  , (id x:_) ++ _ :: [Int]+  , (id (id _):_) ++ _ :: [Int]+  , (negate _:_) ++ _ :: [Int]+  , (head _:_) ++ _ :: [Int]+  , (_ + _:_) ++ _ :: [Int]+  , insert _ _ ++ _ :: [Int]+  , ([] ++ _) ++ _ :: [Int]+  , (_ ++ []) ++ _ :: [Int]+  , (_ ++ _) ++ [] :: [Int]+  , (_ ++ _) ++ _ :: [Int]+  , (_ ++ _) ++ xs :: [Int]+  , (_ ++ _) ++ (_:_) :: [Int]+  , (_ ++ xs) ++ _ :: [Int]+  , (_ ++ (_:_)) ++ _ :: [Int]+  , (xs ++ _) ++ _ :: [Int]+  , ((_:_) ++ _) ++ _ :: [Int]+  ]+
+ bench/tiers-complete.hs view
@@ -0,0 +1,31 @@+-- tiers-complete.hs -- prints tiers of complete expressions+--+-- Copyright (c) 2019-2024 Rudy Matela.+-- Distributed under the 3-Clause BSD licence (see the file LICENSE).+--+-- Complete expressions are those without any holes _.+--+-- This is closely related to tiers.hs+import Test+import Data.List (intercalate, nub)+import Test.LeanCheck.Tiers (showTiers)+import Data.Express.Utils.List++showDotsLongerThan :: Show a => Int -> [a] -> String+showDotsLongerThan n xs  =  "["+                         ++ intercalate "," (dotsLongerThan n $ map show xs)+                         ++ "]"+  where+  dotsLongerThan n xs   =   take n xs ++ ["..." | not . null $ drop n xs]++printTiers :: Show a => Int -> [[a]] -> IO ()+printTiers n  =  putStrLn . init . unlines . map ("  " ++) . lines . showTiers n++main :: IO ()+main  =  do+  putStrLn $ "isNub (filter isComplete list :: [Expr])  =  "+          ++ show (isNub (take 5040 $ filter isComplete list))+  putStrLn $ "map length (filterT isComplete tiers :: [[ Expr ]])  =  "+          ++ showDotsLongerThan 11 (map length (filterT isComplete tiers :: [[Expr]]))+  putStrLn "filterT isComplete tiers :: [[ Expr ]]  ="+  printTiers 8 (filterT isComplete tiers :: [[Expr]])
+ bench/tiers-complete.txt view
@@ -0,0 +1,2336 @@+isNub (filter isComplete list :: [Expr])  =  True+map length (filterT isComplete tiers :: [[ Expr ]])  =  [0,2,13,27,54,158,498,1571,5085,17026,58338,...]+filterT isComplete tiers :: [[ Expr ]]  =+  [ []+  , [ x :: Int+    , 0 :: Int+    ]+  , [ y :: Int+    , 1 :: Int+    , id x :: Int+    , id 0 :: Int+    , p :: Bool+    , False :: Bool+    , True :: Bool+    , c :: Char+    , 'a' :: Char+    , xs :: [Int]+    , [] :: [Int]+    , id :: Int -> Int+    , (+) :: Int -> Int -> Int+    ]+  , [ z :: Int+    , -1 :: Int+    , id y :: Int+    , id 1 :: Int+    , id (id x) :: Int+    , id (id 0) :: Int+    , negate x :: Int+    , negate 0 :: Int+    , abs x :: Int+    , abs 0 :: Int+    , head xs :: Int+    , head [] :: Int+    , ord c :: Int+    , ord 'a' :: Int+    , q :: Bool+    , not p :: Bool+    , not False :: Bool+    , not True :: Bool+    , d :: Char+    , ' ' :: Char+    , ys :: [Int]+    , [0] :: [Int]+    , negate :: Int -> Int+    , abs :: Int -> Int+    , (*) :: Int -> Int -> Int+    , not :: Bool -> Bool+    , (||) :: Bool -> Bool -> Bool+    ]+  , [ x' :: Int+    , 2 :: Int+    , id z :: Int+    , id (-1) :: Int+    , id (id y) :: Int+    , id (id 1) :: Int+    , id (id (id x)) :: Int+    , id (id (id 0)) :: Int+    , id (negate x) :: Int+    , id (negate 0) :: Int+    , id (abs x) :: Int+    , id (abs 0) :: Int+    , id (head xs) :: Int+    , id (head []) :: Int+    , id (ord c) :: Int+    , id (ord 'a') :: Int+    , negate y :: Int+    , negate 1 :: Int+    , negate (id x) :: Int+    , negate (id 0) :: Int+    , abs y :: Int+    , abs 1 :: Int+    , abs (id x) :: Int+    , abs (id 0) :: Int+    , x + x :: Int+    , x + 0 :: Int+    , 0 + x :: Int+    , 0 + 0 :: Int+    , f x :: Int+    , f 0 :: Int+    , head ys :: Int+    , head [0] :: Int+    , ord d :: Int+    , ord ' ' :: Int+    , r :: Bool+    , not q :: Bool+    , not (not p) :: Bool+    , not (not False) :: Bool+    , not (not True) :: Bool+    , e :: Char+    , 'b' :: Char+    , zs :: [Int]+    , [0,0] :: [Int]+    , [1] :: [Int]+    , x:xs :: [Int]+    , [x] :: [Int]+    , 0:xs :: [Int]+    , [0] :: [Int]+    , tail xs :: [Int]+    , tail [] :: [Int]+    , (x +) :: Int -> Int+    , (0 +) :: Int -> Int+    , f :: Int -> Int+    , (&&) :: Bool -> Bool -> Bool+    ]+  , [ y' :: Int+    , -2 :: Int+    , id x' :: Int+    , id 2 :: Int+    , id (id z) :: Int+    , id (id (-1)) :: Int+    , id (id (id y)) :: Int+    , id (id (id 1)) :: Int+    , id (id (id (id x))) :: Int+    , id (id (id (id 0))) :: Int+    , id (id (negate x)) :: Int+    , id (id (negate 0)) :: Int+    , id (id (abs x)) :: Int+    , id (id (abs 0)) :: Int+    , id (id (head xs)) :: Int+    , id (id (head [])) :: Int+    , id (id (ord c)) :: Int+    , id (id (ord 'a')) :: Int+    , id (negate y) :: Int+    , id (negate 1) :: Int+    , id (negate (id x)) :: Int+    , id (negate (id 0)) :: Int+    , id (abs y) :: Int+    , id (abs 1) :: Int+    , id (abs (id x)) :: Int+    , id (abs (id 0)) :: Int+    , id (x + x) :: Int+    , id (x + 0) :: Int+    , id (0 + x) :: Int+    , id (0 + 0) :: Int+    , id (f x) :: Int+    , id (f 0) :: Int+    , id (head ys) :: Int+    , id (head [0]) :: Int+    , id (ord d) :: Int+    , id (ord ' ') :: Int+    , negate z :: Int+    , negate (-1) :: Int+    , negate (id y) :: Int+    , negate (id 1) :: Int+    , negate (id (id x)) :: Int+    , negate (id (id 0)) :: Int+    , negate (negate x) :: Int+    , negate (negate 0) :: Int+    , negate (abs x) :: Int+    , negate (abs 0) :: Int+    , negate (head xs) :: Int+    , negate (head []) :: Int+    , negate (ord c) :: Int+    , negate (ord 'a') :: Int+    , abs z :: Int+    , abs (-1) :: Int+    , abs (id y) :: Int+    , abs (id 1) :: Int+    , abs (id (id x)) :: Int+    , abs (id (id 0)) :: Int+    , abs (negate x) :: Int+    , abs (negate 0) :: Int+    , abs (abs x) :: Int+    , abs (abs 0) :: Int+    , abs (head xs) :: Int+    , abs (head []) :: Int+    , abs (ord c) :: Int+    , abs (ord 'a') :: Int+    , x + y :: Int+    , x + 1 :: Int+    , x + id x :: Int+    , x + id 0 :: Int+    , 0 + y :: Int+    , 0 + 1 :: Int+    , 0 + id x :: Int+    , 0 + id 0 :: Int+    , f y :: Int+    , f 1 :: Int+    , f (id x) :: Int+    , f (id 0) :: Int+    , y + x :: Int+    , y + 0 :: Int+    , 1 + x :: Int+    , 1 + 0 :: Int+    , id x + x :: Int+    , id x + 0 :: Int+    , id 0 + x :: Int+    , id 0 + 0 :: Int+    , x * x :: Int+    , x * 0 :: Int+    , 0 * x :: Int+    , 0 * 0 :: Int+    , g x :: Int+    , g 0 :: Int+    , head zs :: Int+    , head [0,0] :: Int+    , head [1] :: Int+    , head (x:xs) :: Int+    , head [x] :: Int+    , head (0:xs) :: Int+    , head [0] :: Int+    , head (tail xs) :: Int+    , head (tail []) :: Int+    , ord e :: Int+    , ord 'b' :: Int+    , p' :: Bool+    , not r :: Bool+    , not (not q) :: Bool+    , not (not (not p)) :: Bool+    , not (not (not False)) :: Bool+    , not (not (not True)) :: Bool+    , p || p :: Bool+    , p || False :: Bool+    , p || True :: Bool+    , False || p :: Bool+    , False || False :: Bool+    , False || True :: Bool+    , True || p :: Bool+    , True || False :: Bool+    , True || True :: Bool+    , odd x :: Bool+    , odd 0 :: Bool+    , even x :: Bool+    , even 0 :: Bool+    , c' :: Char+    , 'A' :: Char+    , xs' :: [Int]+    , [0,0,0] :: [Int]+    , [0,1] :: [Int]+    , [1,0] :: [Int]+    , [-1] :: [Int]+    , x:ys :: [Int]+    , x:[0] :: [Int]+    , 0:ys :: [Int]+    , 0:[0] :: [Int]+    , y:xs :: [Int]+    , [y] :: [Int]+    , 1:xs :: [Int]+    , [1] :: [Int]+    , id x:xs :: [Int]+    , [id x] :: [Int]+    , id 0:xs :: [Int]+    , [id 0] :: [Int]+    , tail ys :: [Int]+    , tail [0] :: [Int]+    , xs ++ xs :: [Int]+    , xs ++ [] :: [Int]+    , [] ++ xs :: [Int]+    , [] ++ [] :: [Int]+    , sort xs :: [Int]+    , sort [] :: [Int]+    , (y +) :: Int -> Int+    , (1 +) :: Int -> Int+    , (id x +) :: Int -> Int+    , (id 0 +) :: Int -> Int+    , (x *) :: Int -> Int+    , (0 *) :: Int -> Int+    , g :: Int -> Int+    , (p ||) :: Bool -> Bool+    , (False ||) :: Bool -> Bool+    , (True ||) :: Bool -> Bool+    , (==>) :: Bool -> Bool -> Bool+    ]+  , [ z' :: Int+    , 3 :: Int+    , id y' :: Int+    , id (-2) :: Int+    , id (id x') :: Int+    , id (id 2) :: Int+    , id (id (id z)) :: Int+    , id (id (id (-1))) :: Int+    , id (id (id (id y))) :: Int+    , id (id (id (id 1))) :: Int+    , id (id (id (id (id x)))) :: Int+    , id (id (id (id (id 0)))) :: Int+    , id (id (id (negate x))) :: Int+    , id (id (id (negate 0))) :: Int+    , id (id (id (abs x))) :: Int+    , id (id (id (abs 0))) :: Int+    , id (id (id (head xs))) :: Int+    , id (id (id (head []))) :: Int+    , id (id (id (ord c))) :: Int+    , id (id (id (ord 'a'))) :: Int+    , id (id (negate y)) :: Int+    , id (id (negate 1)) :: Int+    , id (id (negate (id x))) :: Int+    , id (id (negate (id 0))) :: Int+    , id (id (abs y)) :: Int+    , id (id (abs 1)) :: Int+    , id (id (abs (id x))) :: Int+    , id (id (abs (id 0))) :: Int+    , id (id (x + x)) :: Int+    , id (id (x + 0)) :: Int+    , id (id (0 + x)) :: Int+    , id (id (0 + 0)) :: Int+    , id (id (f x)) :: Int+    , id (id (f 0)) :: Int+    , id (id (head ys)) :: Int+    , id (id (head [0])) :: Int+    , id (id (ord d)) :: Int+    , id (id (ord ' ')) :: Int+    , id (negate z) :: Int+    , id (negate (-1)) :: Int+    , id (negate (id y)) :: Int+    , id (negate (id 1)) :: Int+    , id (negate (id (id x))) :: Int+    , id (negate (id (id 0))) :: Int+    , id (negate (negate x)) :: Int+    , id (negate (negate 0)) :: Int+    , id (negate (abs x)) :: Int+    , id (negate (abs 0)) :: Int+    , id (negate (head xs)) :: Int+    , id (negate (head [])) :: Int+    , id (negate (ord c)) :: Int+    , id (negate (ord 'a')) :: Int+    , id (abs z) :: Int+    , id (abs (-1)) :: Int+    , id (abs (id y)) :: Int+    , id (abs (id 1)) :: Int+    , id (abs (id (id x))) :: Int+    , id (abs (id (id 0))) :: Int+    , id (abs (negate x)) :: Int+    , id (abs (negate 0)) :: Int+    , id (abs (abs x)) :: Int+    , id (abs (abs 0)) :: Int+    , id (abs (head xs)) :: Int+    , id (abs (head [])) :: Int+    , id (abs (ord c)) :: Int+    , id (abs (ord 'a')) :: Int+    , id (x + y) :: Int+    , id (x + 1) :: Int+    , id (x + id x) :: Int+    , id (x + id 0) :: Int+    , id (0 + y) :: Int+    , id (0 + 1) :: Int+    , id (0 + id x) :: Int+    , id (0 + id 0) :: Int+    , id (f y) :: Int+    , id (f 1) :: Int+    , id (f (id x)) :: Int+    , id (f (id 0)) :: Int+    , id (y + x) :: Int+    , id (y + 0) :: Int+    , id (1 + x) :: Int+    , id (1 + 0) :: Int+    , id (id x + x) :: Int+    , id (id x + 0) :: Int+    , id (id 0 + x) :: Int+    , id (id 0 + 0) :: Int+    , id (x * x) :: Int+    , id (x * 0) :: Int+    , id (0 * x) :: Int+    , id (0 * 0) :: Int+    , id (g x) :: Int+    , id (g 0) :: Int+    , id (head zs) :: Int+    , id (head [0,0]) :: Int+    , id (head [1]) :: Int+    , id (head (x:xs)) :: Int+    , id (head [x]) :: Int+    , id (head (0:xs)) :: Int+    , id (head [0]) :: Int+    , id (head (tail xs)) :: Int+    , id (head (tail [])) :: Int+    , id (ord e) :: Int+    , id (ord 'b') :: Int+    , negate x' :: Int+    , negate 2 :: Int+    , negate (id z) :: Int+    , negate (id (-1)) :: Int+    , negate (id (id y)) :: Int+    , negate (id (id 1)) :: Int+    , negate (id (id (id x))) :: Int+    , negate (id (id (id 0))) :: Int+    , negate (id (negate x)) :: Int+    , negate (id (negate 0)) :: Int+    , negate (id (abs x)) :: Int+    , negate (id (abs 0)) :: Int+    , negate (id (head xs)) :: Int+    , negate (id (head [])) :: Int+    , negate (id (ord c)) :: Int+    , negate (id (ord 'a')) :: Int+    , negate (negate y) :: Int+    , negate (negate 1) :: Int+    , negate (negate (id x)) :: Int+    , negate (negate (id 0)) :: Int+    , negate (abs y) :: Int+    , negate (abs 1) :: Int+    , negate (abs (id x)) :: Int+    , negate (abs (id 0)) :: Int+    , negate (x + x) :: Int+    , negate (x + 0) :: Int+    , negate (0 + x) :: Int+    , negate (0 + 0) :: Int+    , negate (f x) :: Int+    , negate (f 0) :: Int+    , negate (head ys) :: Int+    , negate (head [0]) :: Int+    , negate (ord d) :: Int+    , negate (ord ' ') :: Int+    , abs x' :: Int+    , abs 2 :: Int+    , abs (id z) :: Int+    , abs (id (-1)) :: Int+    , abs (id (id y)) :: Int+    , abs (id (id 1)) :: Int+    , abs (id (id (id x))) :: Int+    , abs (id (id (id 0))) :: Int+    , abs (id (negate x)) :: Int+    , abs (id (negate 0)) :: Int+    , abs (id (abs x)) :: Int+    , abs (id (abs 0)) :: Int+    , abs (id (head xs)) :: Int+    , abs (id (head [])) :: Int+    , abs (id (ord c)) :: Int+    , abs (id (ord 'a')) :: Int+    , abs (negate y) :: Int+    , abs (negate 1) :: Int+    , abs (negate (id x)) :: Int+    , abs (negate (id 0)) :: Int+    , abs (abs y) :: Int+    , abs (abs 1) :: Int+    , abs (abs (id x)) :: Int+    , abs (abs (id 0)) :: Int+    , abs (x + x) :: Int+    , abs (x + 0) :: Int+    , abs (0 + x) :: Int+    , abs (0 + 0) :: Int+    , abs (f x) :: Int+    , abs (f 0) :: Int+    , abs (head ys) :: Int+    , abs (head [0]) :: Int+    , abs (ord d) :: Int+    , abs (ord ' ') :: Int+    , x + z :: Int+    , x + (-1) :: Int+    , x + id y :: Int+    , x + id 1 :: Int+    , x + id (id x) :: Int+    , x + id (id 0) :: Int+    , x + negate x :: Int+    , x + negate 0 :: Int+    , x + abs x :: Int+    , x + abs 0 :: Int+    , x + head xs :: Int+    , x + head [] :: Int+    , x + ord c :: Int+    , x + ord 'a' :: Int+    , 0 + z :: Int+    , 0 + (-1) :: Int+    , 0 + id y :: Int+    , 0 + id 1 :: Int+    , 0 + id (id x) :: Int+    , 0 + id (id 0) :: Int+    , 0 + negate x :: Int+    , 0 + negate 0 :: Int+    , 0 + abs x :: Int+    , 0 + abs 0 :: Int+    , 0 + head xs :: Int+    , 0 + head [] :: Int+    , 0 + ord c :: Int+    , 0 + ord 'a' :: Int+    , f z :: Int+    , f (-1) :: Int+    , f (id y) :: Int+    , f (id 1) :: Int+    , f (id (id x)) :: Int+    , f (id (id 0)) :: Int+    , f (negate x) :: Int+    , f (negate 0) :: Int+    , f (abs x) :: Int+    , f (abs 0) :: Int+    , f (head xs) :: Int+    , f (head []) :: Int+    , f (ord c) :: Int+    , f (ord 'a') :: Int+    , y + y :: Int+    , y + 1 :: Int+    , y + id x :: Int+    , y + id 0 :: Int+    , 1 + y :: Int+    , 1 + 1 :: Int+    , 1 + id x :: Int+    , 1 + id 0 :: Int+    , id x + y :: Int+    , id x + 1 :: Int+    , id x + id x :: Int+    , id x + id 0 :: Int+    , id 0 + y :: Int+    , id 0 + 1 :: Int+    , id 0 + id x :: Int+    , id 0 + id 0 :: Int+    , x * y :: Int+    , x * 1 :: Int+    , x * id x :: Int+    , x * id 0 :: Int+    , 0 * y :: Int+    , 0 * 1 :: Int+    , 0 * id x :: Int+    , 0 * id 0 :: Int+    , g y :: Int+    , g 1 :: Int+    , g (id x) :: Int+    , g (id 0) :: Int+    , z + x :: Int+    , z + 0 :: Int+    , (-1) + x :: Int+    , (-1) + 0 :: Int+    , id y + x :: Int+    , id y + 0 :: Int+    , id 1 + x :: Int+    , id 1 + 0 :: Int+    , id (id x) + x :: Int+    , id (id x) + 0 :: Int+    , id (id 0) + x :: Int+    , id (id 0) + 0 :: Int+    , negate x + x :: Int+    , negate x + 0 :: Int+    , negate 0 + x :: Int+    , negate 0 + 0 :: Int+    , abs x + x :: Int+    , abs x + 0 :: Int+    , abs 0 + x :: Int+    , abs 0 + 0 :: Int+    , head xs + x :: Int+    , head xs + 0 :: Int+    , head [] + x :: Int+    , head [] + 0 :: Int+    , ord c + x :: Int+    , ord c + 0 :: Int+    , ord 'a' + x :: Int+    , ord 'a' + 0 :: Int+    , y * x :: Int+    , y * 0 :: Int+    , 1 * x :: Int+    , 1 * 0 :: Int+    , id x * x :: Int+    , id x * 0 :: Int+    , id 0 * x :: Int+    , id 0 * 0 :: Int+    , h x :: Int+    , h 0 :: Int+    , head xs' :: Int+    , head [0,0,0] :: Int+    , head [0,1] :: Int+    , head [1,0] :: Int+    , head [-1] :: Int+    , head (x:ys) :: Int+    , head (x:[0]) :: Int+    , head (0:ys) :: Int+    , head (0:[0]) :: Int+    , head (y:xs) :: Int+    , head [y] :: Int+    , head (1:xs) :: Int+    , head [1] :: Int+    , head (id x:xs) :: Int+    , head [id x] :: Int+    , head (id 0:xs) :: Int+    , head [id 0] :: Int+    , head (tail ys) :: Int+    , head (tail [0]) :: Int+    , head (xs ++ xs) :: Int+    , head (xs ++ []) :: Int+    , head ([] ++ xs) :: Int+    , head ([] ++ []) :: Int+    , head (sort xs) :: Int+    , head (sort []) :: Int+    , ord c' :: Int+    , ord 'A' :: Int+    , q' :: Bool+    , not p' :: Bool+    , not (not r) :: Bool+    , not (not (not q)) :: Bool+    , not (not (not (not p))) :: Bool+    , not (not (not (not False))) :: Bool+    , not (not (not (not True))) :: Bool+    , not (p || p) :: Bool+    , not (p || False) :: Bool+    , not (p || True) :: Bool+    , not (False || p) :: Bool+    , not (False || False) :: Bool+    , not (False || True) :: Bool+    , not (True || p) :: Bool+    , not (True || False) :: Bool+    , not (True || True) :: Bool+    , not (odd x) :: Bool+    , not (odd 0) :: Bool+    , not (even x) :: Bool+    , not (even 0) :: Bool+    , p || q :: Bool+    , p || not p :: Bool+    , p || not False :: Bool+    , p || not True :: Bool+    , False || q :: Bool+    , False || not p :: Bool+    , False || not False :: Bool+    , False || not True :: Bool+    , True || q :: Bool+    , True || not p :: Bool+    , True || not False :: Bool+    , True || not True :: Bool+    , q || p :: Bool+    , q || False :: Bool+    , q || True :: Bool+    , not p || p :: Bool+    , not p || False :: Bool+    , not p || True :: Bool+    , not False || p :: Bool+    , not False || False :: Bool+    , not False || True :: Bool+    , not True || p :: Bool+    , not True || False :: Bool+    , not True || True :: Bool+    , p && p :: Bool+    , p && False :: Bool+    , p && True :: Bool+    , False && p :: Bool+    , False && False :: Bool+    , False && True :: Bool+    , True && p :: Bool+    , True && False :: Bool+    , True && True :: Bool+    , x == x :: Bool+    , x == 0 :: Bool+    , 0 == x :: Bool+    , 0 == 0 :: Bool+    , p == p :: Bool+    , p == False :: Bool+    , p == True :: Bool+    , False == p :: Bool+    , False == False :: Bool+    , False == True :: Bool+    , True == p :: Bool+    , True == False :: Bool+    , True == True :: Bool+    , odd y :: Bool+    , odd 1 :: Bool+    , odd (id x) :: Bool+    , odd (id 0) :: Bool+    , even y :: Bool+    , even 1 :: Bool+    , even (id x) :: Bool+    , even (id 0) :: Bool+    , elem x xs :: Bool+    , elem x [] :: Bool+    , elem 0 xs :: Bool+    , elem 0 [] :: Bool+    , d' :: Char+    , 'c' :: Char+    , ys' :: [Int]+    , [0,0,0,0] :: [Int]+    , [0,0,1] :: [Int]+    , [0,1,0] :: [Int]+    , [0,-1] :: [Int]+    , [1,0,0] :: [Int]+    , [1,1] :: [Int]+    , [-1,0] :: [Int]+    , [2] :: [Int]+    , x:zs :: [Int]+    , x:[0,0] :: [Int]+    , x:[1] :: [Int]+    , x:x:xs :: [Int]+    , [x,x] :: [Int]+    , x:0:xs :: [Int]+    , [x,0] :: [Int]+    , x:tail xs :: [Int]+    , x:tail [] :: [Int]+    , 0:zs :: [Int]+    , 0:[0,0] :: [Int]+    , 0:[1] :: [Int]+    , 0:x:xs :: [Int]+    , [0,x] :: [Int]+    , 0:0:xs :: [Int]+    , [0,0] :: [Int]+    , 0:tail xs :: [Int]+    , 0:tail [] :: [Int]+    , y:ys :: [Int]+    , y:[0] :: [Int]+    , 1:ys :: [Int]+    , 1:[0] :: [Int]+    , id x:ys :: [Int]+    , id x:[0] :: [Int]+    , id 0:ys :: [Int]+    , id 0:[0] :: [Int]+    , z:xs :: [Int]+    , [z] :: [Int]+    , (-1):xs :: [Int]+    , [-1] :: [Int]+    , id y:xs :: [Int]+    , [id y] :: [Int]+    , id 1:xs :: [Int]+    , [id 1] :: [Int]+    , id (id x):xs :: [Int]+    , [id (id x)] :: [Int]+    , id (id 0):xs :: [Int]+    , [id (id 0)] :: [Int]+    , negate x:xs :: [Int]+    , [negate x] :: [Int]+    , negate 0:xs :: [Int]+    , [negate 0] :: [Int]+    , abs x:xs :: [Int]+    , [abs x] :: [Int]+    , abs 0:xs :: [Int]+    , [abs 0] :: [Int]+    , head xs:xs :: [Int]+    , [head xs] :: [Int]+    , head []:xs :: [Int]+    , [head []] :: [Int]+    , ord c:xs :: [Int]+    , [ord c] :: [Int]+    , ord 'a':xs :: [Int]+    , [ord 'a'] :: [Int]+    , tail zs :: [Int]+    , tail [0,0] :: [Int]+    , tail [1] :: [Int]+    , tail (x:xs) :: [Int]+    , tail [x] :: [Int]+    , tail (0:xs) :: [Int]+    , tail [0] :: [Int]+    , tail (tail xs) :: [Int]+    , tail (tail []) :: [Int]+    , xs ++ ys :: [Int]+    , xs ++ [0] :: [Int]+    , [] ++ ys :: [Int]+    , [] ++ [0] :: [Int]+    , ys ++ xs :: [Int]+    , ys ++ [] :: [Int]+    , [0] ++ xs :: [Int]+    , [0] ++ [] :: [Int]+    , sort ys :: [Int]+    , sort [0] :: [Int]+    , insert x xs :: [Int]+    , insert x [] :: [Int]+    , insert 0 xs :: [Int]+    , insert 0 [] :: [Int]+    , (z +) :: Int -> Int+    , ((-1) +) :: Int -> Int+    , (id y +) :: Int -> Int+    , (id 1 +) :: Int -> Int+    , (id (id x) +) :: Int -> Int+    , (id (id 0) +) :: Int -> Int+    , (negate x +) :: Int -> Int+    , (negate 0 +) :: Int -> Int+    , (abs x +) :: Int -> Int+    , (abs 0 +) :: Int -> Int+    , (head xs +) :: Int -> Int+    , (head [] +) :: Int -> Int+    , (ord c +) :: Int -> Int+    , (ord 'a' +) :: Int -> Int+    , (y *) :: Int -> Int+    , (1 *) :: Int -> Int+    , (id x *) :: Int -> Int+    , (id 0 *) :: Int -> Int+    , h :: Int -> Int+    , (q ||) :: Bool -> Bool+    , (not p ||) :: Bool -> Bool+    , (not False ||) :: Bool -> Bool+    , (not True ||) :: Bool -> Bool+    , (p &&) :: Bool -> Bool+    , (False &&) :: Bool -> Bool+    , (True &&) :: Bool -> Bool+    ]+  , [ x'' :: Int+    , -3 :: Int+    , id z' :: Int+    , id 3 :: Int+    , id (id y') :: Int+    , id (id (-2)) :: Int+    , id (id (id x')) :: Int+    , id (id (id 2)) :: Int+    , id (id (id (id z))) :: Int+    , id (id (id (id (-1)))) :: Int+    , id (id (id (id (id y)))) :: Int+    , id (id (id (id (id 1)))) :: Int+    , id (id (id (id (id (id x))))) :: Int+    , id (id (id (id (id (id 0))))) :: Int+    , id (id (id (id (negate x)))) :: Int+    , id (id (id (id (negate 0)))) :: Int+    , id (id (id (id (abs x)))) :: Int+    , id (id (id (id (abs 0)))) :: Int+    , id (id (id (id (head xs)))) :: Int+    , id (id (id (id (head [])))) :: Int+    , id (id (id (id (ord c)))) :: Int+    , id (id (id (id (ord 'a')))) :: Int+    , id (id (id (negate y))) :: Int+    , id (id (id (negate 1))) :: Int+    , id (id (id (negate (id x)))) :: Int+    , id (id (id (negate (id 0)))) :: Int+    , id (id (id (abs y))) :: Int+    , id (id (id (abs 1))) :: Int+    , id (id (id (abs (id x)))) :: Int+    , id (id (id (abs (id 0)))) :: Int+    , id (id (id (x + x))) :: Int+    , id (id (id (x + 0))) :: Int+    , id (id (id (0 + x))) :: Int+    , id (id (id (0 + 0))) :: Int+    , id (id (id (f x))) :: Int+    , id (id (id (f 0))) :: Int+    , id (id (id (head ys))) :: Int+    , id (id (id (head [0]))) :: Int+    , id (id (id (ord d))) :: Int+    , id (id (id (ord ' '))) :: Int+    , id (id (negate z)) :: Int+    , id (id (negate (-1))) :: Int+    , id (id (negate (id y))) :: Int+    , id (id (negate (id 1))) :: Int+    , id (id (negate (id (id x)))) :: Int+    , id (id (negate (id (id 0)))) :: Int+    , id (id (negate (negate x))) :: Int+    , id (id (negate (negate 0))) :: Int+    , id (id (negate (abs x))) :: Int+    , id (id (negate (abs 0))) :: Int+    , id (id (negate (head xs))) :: Int+    , id (id (negate (head []))) :: Int+    , id (id (negate (ord c))) :: Int+    , id (id (negate (ord 'a'))) :: Int+    , id (id (abs z)) :: Int+    , id (id (abs (-1))) :: Int+    , id (id (abs (id y))) :: Int+    , id (id (abs (id 1))) :: Int+    , id (id (abs (id (id x)))) :: Int+    , id (id (abs (id (id 0)))) :: Int+    , id (id (abs (negate x))) :: Int+    , id (id (abs (negate 0))) :: Int+    , id (id (abs (abs x))) :: Int+    , id (id (abs (abs 0))) :: Int+    , id (id (abs (head xs))) :: Int+    , id (id (abs (head []))) :: Int+    , id (id (abs (ord c))) :: Int+    , id (id (abs (ord 'a'))) :: Int+    , id (id (x + y)) :: Int+    , id (id (x + 1)) :: Int+    , id (id (x + id x)) :: Int+    , id (id (x + id 0)) :: Int+    , id (id (0 + y)) :: Int+    , id (id (0 + 1)) :: Int+    , id (id (0 + id x)) :: Int+    , id (id (0 + id 0)) :: Int+    , id (id (f y)) :: Int+    , id (id (f 1)) :: Int+    , id (id (f (id x))) :: Int+    , id (id (f (id 0))) :: Int+    , id (id (y + x)) :: Int+    , id (id (y + 0)) :: Int+    , id (id (1 + x)) :: Int+    , id (id (1 + 0)) :: Int+    , id (id (id x + x)) :: Int+    , id (id (id x + 0)) :: Int+    , id (id (id 0 + x)) :: Int+    , id (id (id 0 + 0)) :: Int+    , id (id (x * x)) :: Int+    , id (id (x * 0)) :: Int+    , id (id (0 * x)) :: Int+    , id (id (0 * 0)) :: Int+    , id (id (g x)) :: Int+    , id (id (g 0)) :: Int+    , id (id (head zs)) :: Int+    , id (id (head [0,0])) :: Int+    , id (id (head [1])) :: Int+    , id (id (head (x:xs))) :: Int+    , id (id (head [x])) :: Int+    , id (id (head (0:xs))) :: Int+    , id (id (head [0])) :: Int+    , id (id (head (tail xs))) :: Int+    , id (id (head (tail []))) :: Int+    , id (id (ord e)) :: Int+    , id (id (ord 'b')) :: Int+    , id (negate x') :: Int+    , id (negate 2) :: Int+    , id (negate (id z)) :: Int+    , id (negate (id (-1))) :: Int+    , id (negate (id (id y))) :: Int+    , id (negate (id (id 1))) :: Int+    , id (negate (id (id (id x)))) :: Int+    , id (negate (id (id (id 0)))) :: Int+    , id (negate (id (negate x))) :: Int+    , id (negate (id (negate 0))) :: Int+    , id (negate (id (abs x))) :: Int+    , id (negate (id (abs 0))) :: Int+    , id (negate (id (head xs))) :: Int+    , id (negate (id (head []))) :: Int+    , id (negate (id (ord c))) :: Int+    , id (negate (id (ord 'a'))) :: Int+    , id (negate (negate y)) :: Int+    , id (negate (negate 1)) :: Int+    , id (negate (negate (id x))) :: Int+    , id (negate (negate (id 0))) :: Int+    , id (negate (abs y)) :: Int+    , id (negate (abs 1)) :: Int+    , id (negate (abs (id x))) :: Int+    , id (negate (abs (id 0))) :: Int+    , id (negate (x + x)) :: Int+    , id (negate (x + 0)) :: Int+    , id (negate (0 + x)) :: Int+    , id (negate (0 + 0)) :: Int+    , id (negate (f x)) :: Int+    , id (negate (f 0)) :: Int+    , id (negate (head ys)) :: Int+    , id (negate (head [0])) :: Int+    , id (negate (ord d)) :: Int+    , id (negate (ord ' ')) :: Int+    , id (abs x') :: Int+    , id (abs 2) :: Int+    , id (abs (id z)) :: Int+    , id (abs (id (-1))) :: Int+    , id (abs (id (id y))) :: Int+    , id (abs (id (id 1))) :: Int+    , id (abs (id (id (id x)))) :: Int+    , id (abs (id (id (id 0)))) :: Int+    , id (abs (id (negate x))) :: Int+    , id (abs (id (negate 0))) :: Int+    , id (abs (id (abs x))) :: Int+    , id (abs (id (abs 0))) :: Int+    , id (abs (id (head xs))) :: Int+    , id (abs (id (head []))) :: Int+    , id (abs (id (ord c))) :: Int+    , id (abs (id (ord 'a'))) :: Int+    , id (abs (negate y)) :: Int+    , id (abs (negate 1)) :: Int+    , id (abs (negate (id x))) :: Int+    , id (abs (negate (id 0))) :: Int+    , id (abs (abs y)) :: Int+    , id (abs (abs 1)) :: Int+    , id (abs (abs (id x))) :: Int+    , id (abs (abs (id 0))) :: Int+    , id (abs (x + x)) :: Int+    , id (abs (x + 0)) :: Int+    , id (abs (0 + x)) :: Int+    , id (abs (0 + 0)) :: Int+    , id (abs (f x)) :: Int+    , id (abs (f 0)) :: Int+    , id (abs (head ys)) :: Int+    , id (abs (head [0])) :: Int+    , id (abs (ord d)) :: Int+    , id (abs (ord ' ')) :: Int+    , id (x + z) :: Int+    , id (x + (-1)) :: Int+    , id (x + id y) :: Int+    , id (x + id 1) :: Int+    , id (x + id (id x)) :: Int+    , id (x + id (id 0)) :: Int+    , id (x + negate x) :: Int+    , id (x + negate 0) :: Int+    , id (x + abs x) :: Int+    , id (x + abs 0) :: Int+    , id (x + head xs) :: Int+    , id (x + head []) :: Int+    , id (x + ord c) :: Int+    , id (x + ord 'a') :: Int+    , id (0 + z) :: Int+    , id (0 + (-1)) :: Int+    , id (0 + id y) :: Int+    , id (0 + id 1) :: Int+    , id (0 + id (id x)) :: Int+    , id (0 + id (id 0)) :: Int+    , id (0 + negate x) :: Int+    , id (0 + negate 0) :: Int+    , id (0 + abs x) :: Int+    , id (0 + abs 0) :: Int+    , id (0 + head xs) :: Int+    , id (0 + head []) :: Int+    , id (0 + ord c) :: Int+    , id (0 + ord 'a') :: Int+    , id (f z) :: Int+    , id (f (-1)) :: Int+    , id (f (id y)) :: Int+    , id (f (id 1)) :: Int+    , id (f (id (id x))) :: Int+    , id (f (id (id 0))) :: Int+    , id (f (negate x)) :: Int+    , id (f (negate 0)) :: Int+    , id (f (abs x)) :: Int+    , id (f (abs 0)) :: Int+    , id (f (head xs)) :: Int+    , id (f (head [])) :: Int+    , id (f (ord c)) :: Int+    , id (f (ord 'a')) :: Int+    , id (y + y) :: Int+    , id (y + 1) :: Int+    , id (y + id x) :: Int+    , id (y + id 0) :: Int+    , id (1 + y) :: Int+    , id (1 + 1) :: Int+    , id (1 + id x) :: Int+    , id (1 + id 0) :: Int+    , id (id x + y) :: Int+    , id (id x + 1) :: Int+    , id (id x + id x) :: Int+    , id (id x + id 0) :: Int+    , id (id 0 + y) :: Int+    , id (id 0 + 1) :: Int+    , id (id 0 + id x) :: Int+    , id (id 0 + id 0) :: Int+    , id (x * y) :: Int+    , id (x * 1) :: Int+    , id (x * id x) :: Int+    , id (x * id 0) :: Int+    , id (0 * y) :: Int+    , id (0 * 1) :: Int+    , id (0 * id x) :: Int+    , id (0 * id 0) :: Int+    , id (g y) :: Int+    , id (g 1) :: Int+    , id (g (id x)) :: Int+    , id (g (id 0)) :: Int+    , id (z + x) :: Int+    , id (z + 0) :: Int+    , id ((-1) + x) :: Int+    , id ((-1) + 0) :: Int+    , id (id y + x) :: Int+    , id (id y + 0) :: Int+    , id (id 1 + x) :: Int+    , id (id 1 + 0) :: Int+    , id (id (id x) + x) :: Int+    , id (id (id x) + 0) :: Int+    , id (id (id 0) + x) :: Int+    , id (id (id 0) + 0) :: Int+    , id (negate x + x) :: Int+    , id (negate x + 0) :: Int+    , id (negate 0 + x) :: Int+    , id (negate 0 + 0) :: Int+    , id (abs x + x) :: Int+    , id (abs x + 0) :: Int+    , id (abs 0 + x) :: Int+    , id (abs 0 + 0) :: Int+    , id (head xs + x) :: Int+    , id (head xs + 0) :: Int+    , id (head [] + x) :: Int+    , id (head [] + 0) :: Int+    , id (ord c + x) :: Int+    , id (ord c + 0) :: Int+    , id (ord 'a' + x) :: Int+    , id (ord 'a' + 0) :: Int+    , id (y * x) :: Int+    , id (y * 0) :: Int+    , id (1 * x) :: Int+    , id (1 * 0) :: Int+    , id (id x * x) :: Int+    , id (id x * 0) :: Int+    , id (id 0 * x) :: Int+    , id (id 0 * 0) :: Int+    , id (h x) :: Int+    , id (h 0) :: Int+    , id (head xs') :: Int+    , id (head [0,0,0]) :: Int+    , id (head [0,1]) :: Int+    , id (head [1,0]) :: Int+    , id (head [-1]) :: Int+    , id (head (x:ys)) :: Int+    , id (head (x:[0])) :: Int+    , id (head (0:ys)) :: Int+    , id (head (0:[0])) :: Int+    , id (head (y:xs)) :: Int+    , id (head [y]) :: Int+    , id (head (1:xs)) :: Int+    , id (head [1]) :: Int+    , id (head (id x:xs)) :: Int+    , id (head [id x]) :: Int+    , id (head (id 0:xs)) :: Int+    , id (head [id 0]) :: Int+    , id (head (tail ys)) :: Int+    , id (head (tail [0])) :: Int+    , id (head (xs ++ xs)) :: Int+    , id (head (xs ++ [])) :: Int+    , id (head ([] ++ xs)) :: Int+    , id (head ([] ++ [])) :: Int+    , id (head (sort xs)) :: Int+    , id (head (sort [])) :: Int+    , id (ord c') :: Int+    , id (ord 'A') :: Int+    , negate y' :: Int+    , negate (-2) :: Int+    , negate (id x') :: Int+    , negate (id 2) :: Int+    , negate (id (id z)) :: Int+    , negate (id (id (-1))) :: Int+    , negate (id (id (id y))) :: Int+    , negate (id (id (id 1))) :: Int+    , negate (id (id (id (id x)))) :: Int+    , negate (id (id (id (id 0)))) :: Int+    , negate (id (id (negate x))) :: Int+    , negate (id (id (negate 0))) :: Int+    , negate (id (id (abs x))) :: Int+    , negate (id (id (abs 0))) :: Int+    , negate (id (id (head xs))) :: Int+    , negate (id (id (head []))) :: Int+    , negate (id (id (ord c))) :: Int+    , negate (id (id (ord 'a'))) :: Int+    , negate (id (negate y)) :: Int+    , negate (id (negate 1)) :: Int+    , negate (id (negate (id x))) :: Int+    , negate (id (negate (id 0))) :: Int+    , negate (id (abs y)) :: Int+    , negate (id (abs 1)) :: Int+    , negate (id (abs (id x))) :: Int+    , negate (id (abs (id 0))) :: Int+    , negate (id (x + x)) :: Int+    , negate (id (x + 0)) :: Int+    , negate (id (0 + x)) :: Int+    , negate (id (0 + 0)) :: Int+    , negate (id (f x)) :: Int+    , negate (id (f 0)) :: Int+    , negate (id (head ys)) :: Int+    , negate (id (head [0])) :: Int+    , negate (id (ord d)) :: Int+    , negate (id (ord ' ')) :: Int+    , negate (negate z) :: Int+    , negate (negate (-1)) :: Int+    , negate (negate (id y)) :: Int+    , negate (negate (id 1)) :: Int+    , negate (negate (id (id x))) :: Int+    , negate (negate (id (id 0))) :: Int+    , negate (negate (negate x)) :: Int+    , negate (negate (negate 0)) :: Int+    , negate (negate (abs x)) :: Int+    , negate (negate (abs 0)) :: Int+    , negate (negate (head xs)) :: Int+    , negate (negate (head [])) :: Int+    , negate (negate (ord c)) :: Int+    , negate (negate (ord 'a')) :: Int+    , negate (abs z) :: Int+    , negate (abs (-1)) :: Int+    , negate (abs (id y)) :: Int+    , negate (abs (id 1)) :: Int+    , negate (abs (id (id x))) :: Int+    , negate (abs (id (id 0))) :: Int+    , negate (abs (negate x)) :: Int+    , negate (abs (negate 0)) :: Int+    , negate (abs (abs x)) :: Int+    , negate (abs (abs 0)) :: Int+    , negate (abs (head xs)) :: Int+    , negate (abs (head [])) :: Int+    , negate (abs (ord c)) :: Int+    , negate (abs (ord 'a')) :: Int+    , negate (x + y) :: Int+    , negate (x + 1) :: Int+    , negate (x + id x) :: Int+    , negate (x + id 0) :: Int+    , negate (0 + y) :: Int+    , negate (0 + 1) :: Int+    , negate (0 + id x) :: Int+    , negate (0 + id 0) :: Int+    , negate (f y) :: Int+    , negate (f 1) :: Int+    , negate (f (id x)) :: Int+    , negate (f (id 0)) :: Int+    , negate (y + x) :: Int+    , negate (y + 0) :: Int+    , negate (1 + x) :: Int+    , negate (1 + 0) :: Int+    , negate (id x + x) :: Int+    , negate (id x + 0) :: Int+    , negate (id 0 + x) :: Int+    , negate (id 0 + 0) :: Int+    , negate (x * x) :: Int+    , negate (x * 0) :: Int+    , negate (0 * x) :: Int+    , negate (0 * 0) :: Int+    , negate (g x) :: Int+    , negate (g 0) :: Int+    , negate (head zs) :: Int+    , negate (head [0,0]) :: Int+    , negate (head [1]) :: Int+    , negate (head (x:xs)) :: Int+    , negate (head [x]) :: Int+    , negate (head (0:xs)) :: Int+    , negate (head [0]) :: Int+    , negate (head (tail xs)) :: Int+    , negate (head (tail [])) :: Int+    , negate (ord e) :: Int+    , negate (ord 'b') :: Int+    , abs y' :: Int+    , abs (-2) :: Int+    , abs (id x') :: Int+    , abs (id 2) :: Int+    , abs (id (id z)) :: Int+    , abs (id (id (-1))) :: Int+    , abs (id (id (id y))) :: Int+    , abs (id (id (id 1))) :: Int+    , abs (id (id (id (id x)))) :: Int+    , abs (id (id (id (id 0)))) :: Int+    , abs (id (id (negate x))) :: Int+    , abs (id (id (negate 0))) :: Int+    , abs (id (id (abs x))) :: Int+    , abs (id (id (abs 0))) :: Int+    , abs (id (id (head xs))) :: Int+    , abs (id (id (head []))) :: Int+    , abs (id (id (ord c))) :: Int+    , abs (id (id (ord 'a'))) :: Int+    , abs (id (negate y)) :: Int+    , abs (id (negate 1)) :: Int+    , abs (id (negate (id x))) :: Int+    , abs (id (negate (id 0))) :: Int+    , abs (id (abs y)) :: Int+    , abs (id (abs 1)) :: Int+    , abs (id (abs (id x))) :: Int+    , abs (id (abs (id 0))) :: Int+    , abs (id (x + x)) :: Int+    , abs (id (x + 0)) :: Int+    , abs (id (0 + x)) :: Int+    , abs (id (0 + 0)) :: Int+    , abs (id (f x)) :: Int+    , abs (id (f 0)) :: Int+    , abs (id (head ys)) :: Int+    , abs (id (head [0])) :: Int+    , abs (id (ord d)) :: Int+    , abs (id (ord ' ')) :: Int+    , abs (negate z) :: Int+    , abs (negate (-1)) :: Int+    , abs (negate (id y)) :: Int+    , abs (negate (id 1)) :: Int+    , abs (negate (id (id x))) :: Int+    , abs (negate (id (id 0))) :: Int+    , abs (negate (negate x)) :: Int+    , abs (negate (negate 0)) :: Int+    , abs (negate (abs x)) :: Int+    , abs (negate (abs 0)) :: Int+    , abs (negate (head xs)) :: Int+    , abs (negate (head [])) :: Int+    , abs (negate (ord c)) :: Int+    , abs (negate (ord 'a')) :: Int+    , abs (abs z) :: Int+    , abs (abs (-1)) :: Int+    , abs (abs (id y)) :: Int+    , abs (abs (id 1)) :: Int+    , abs (abs (id (id x))) :: Int+    , abs (abs (id (id 0))) :: Int+    , abs (abs (negate x)) :: Int+    , abs (abs (negate 0)) :: Int+    , abs (abs (abs x)) :: Int+    , abs (abs (abs 0)) :: Int+    , abs (abs (head xs)) :: Int+    , abs (abs (head [])) :: Int+    , abs (abs (ord c)) :: Int+    , abs (abs (ord 'a')) :: Int+    , abs (x + y) :: Int+    , abs (x + 1) :: Int+    , abs (x + id x) :: Int+    , abs (x + id 0) :: Int+    , abs (0 + y) :: Int+    , abs (0 + 1) :: Int+    , abs (0 + id x) :: Int+    , abs (0 + id 0) :: Int+    , abs (f y) :: Int+    , abs (f 1) :: Int+    , abs (f (id x)) :: Int+    , abs (f (id 0)) :: Int+    , abs (y + x) :: Int+    , abs (y + 0) :: Int+    , abs (1 + x) :: Int+    , abs (1 + 0) :: Int+    , abs (id x + x) :: Int+    , abs (id x + 0) :: Int+    , abs (id 0 + x) :: Int+    , abs (id 0 + 0) :: Int+    , abs (x * x) :: Int+    , abs (x * 0) :: Int+    , abs (0 * x) :: Int+    , abs (0 * 0) :: Int+    , abs (g x) :: Int+    , abs (g 0) :: Int+    , abs (head zs) :: Int+    , abs (head [0,0]) :: Int+    , abs (head [1]) :: Int+    , abs (head (x:xs)) :: Int+    , abs (head [x]) :: Int+    , abs (head (0:xs)) :: Int+    , abs (head [0]) :: Int+    , abs (head (tail xs)) :: Int+    , abs (head (tail [])) :: Int+    , abs (ord e) :: Int+    , abs (ord 'b') :: Int+    , x + x' :: Int+    , x + 2 :: Int+    , x + id z :: Int+    , x + id (-1) :: Int+    , x + id (id y) :: Int+    , x + id (id 1) :: Int+    , x + id (id (id x)) :: Int+    , x + id (id (id 0)) :: Int+    , x + id (negate x) :: Int+    , x + id (negate 0) :: Int+    , x + id (abs x) :: Int+    , x + id (abs 0) :: Int+    , x + id (head xs) :: Int+    , x + id (head []) :: Int+    , x + id (ord c) :: Int+    , x + id (ord 'a') :: Int+    , x + negate y :: Int+    , x + negate 1 :: Int+    , x + negate (id x) :: Int+    , x + negate (id 0) :: Int+    , x + abs y :: Int+    , x + abs 1 :: Int+    , x + abs (id x) :: Int+    , x + abs (id 0) :: Int+    , x + (x + x) :: Int+    , x + (x + 0) :: Int+    , x + (0 + x) :: Int+    , x + (0 + 0) :: Int+    , x + f x :: Int+    , x + f 0 :: Int+    , x + head ys :: Int+    , x + head [0] :: Int+    , x + ord d :: Int+    , x + ord ' ' :: Int+    , 0 + x' :: Int+    , 0 + 2 :: Int+    , 0 + id z :: Int+    , 0 + id (-1) :: Int+    , 0 + id (id y) :: Int+    , 0 + id (id 1) :: Int+    , 0 + id (id (id x)) :: Int+    , 0 + id (id (id 0)) :: Int+    , 0 + id (negate x) :: Int+    , 0 + id (negate 0) :: Int+    , 0 + id (abs x) :: Int+    , 0 + id (abs 0) :: Int+    , 0 + id (head xs) :: Int+    , 0 + id (head []) :: Int+    , 0 + id (ord c) :: Int+    , 0 + id (ord 'a') :: Int+    , 0 + negate y :: Int+    , 0 + negate 1 :: Int+    , 0 + negate (id x) :: Int+    , 0 + negate (id 0) :: Int+    , 0 + abs y :: Int+    , 0 + abs 1 :: Int+    , 0 + abs (id x) :: Int+    , 0 + abs (id 0) :: Int+    , 0 + (x + x) :: Int+    , 0 + (x + 0) :: Int+    , 0 + (0 + x) :: Int+    , 0 + (0 + 0) :: Int+    , 0 + f x :: Int+    , 0 + f 0 :: Int+    , 0 + head ys :: Int+    , 0 + head [0] :: Int+    , 0 + ord d :: Int+    , 0 + ord ' ' :: Int+    , f x' :: Int+    , f 2 :: Int+    , f (id z) :: Int+    , f (id (-1)) :: Int+    , f (id (id y)) :: Int+    , f (id (id 1)) :: Int+    , f (id (id (id x))) :: Int+    , f (id (id (id 0))) :: Int+    , f (id (negate x)) :: Int+    , f (id (negate 0)) :: Int+    , f (id (abs x)) :: Int+    , f (id (abs 0)) :: Int+    , f (id (head xs)) :: Int+    , f (id (head [])) :: Int+    , f (id (ord c)) :: Int+    , f (id (ord 'a')) :: Int+    , f (negate y) :: Int+    , f (negate 1) :: Int+    , f (negate (id x)) :: Int+    , f (negate (id 0)) :: Int+    , f (abs y) :: Int+    , f (abs 1) :: Int+    , f (abs (id x)) :: Int+    , f (abs (id 0)) :: Int+    , f (x + x) :: Int+    , f (x + 0) :: Int+    , f (0 + x) :: Int+    , f (0 + 0) :: Int+    , f (f x) :: Int+    , f (f 0) :: Int+    , f (head ys) :: Int+    , f (head [0]) :: Int+    , f (ord d) :: Int+    , f (ord ' ') :: Int+    , y + z :: Int+    , y + (-1) :: Int+    , y + id y :: Int+    , y + id 1 :: Int+    , y + id (id x) :: Int+    , y + id (id 0) :: Int+    , y + negate x :: Int+    , y + negate 0 :: Int+    , y + abs x :: Int+    , y + abs 0 :: Int+    , y + head xs :: Int+    , y + head [] :: Int+    , y + ord c :: Int+    , y + ord 'a' :: Int+    , 1 + z :: Int+    , 1 + (-1) :: Int+    , 1 + id y :: Int+    , 1 + id 1 :: Int+    , 1 + id (id x) :: Int+    , 1 + id (id 0) :: Int+    , 1 + negate x :: Int+    , 1 + negate 0 :: Int+    , 1 + abs x :: Int+    , 1 + abs 0 :: Int+    , 1 + head xs :: Int+    , 1 + head [] :: Int+    , 1 + ord c :: Int+    , 1 + ord 'a' :: Int+    , id x + z :: Int+    , id x + (-1) :: Int+    , id x + id y :: Int+    , id x + id 1 :: Int+    , id x + id (id x) :: Int+    , id x + id (id 0) :: Int+    , id x + negate x :: Int+    , id x + negate 0 :: Int+    , id x + abs x :: Int+    , id x + abs 0 :: Int+    , id x + head xs :: Int+    , id x + head [] :: Int+    , id x + ord c :: Int+    , id x + ord 'a' :: Int+    , id 0 + z :: Int+    , id 0 + (-1) :: Int+    , id 0 + id y :: Int+    , id 0 + id 1 :: Int+    , id 0 + id (id x) :: Int+    , id 0 + id (id 0) :: Int+    , id 0 + negate x :: Int+    , id 0 + negate 0 :: Int+    , id 0 + abs x :: Int+    , id 0 + abs 0 :: Int+    , id 0 + head xs :: Int+    , id 0 + head [] :: Int+    , id 0 + ord c :: Int+    , id 0 + ord 'a' :: Int+    , x * z :: Int+    , x * (-1) :: Int+    , x * id y :: Int+    , x * id 1 :: Int+    , x * id (id x) :: Int+    , x * id (id 0) :: Int+    , x * negate x :: Int+    , x * negate 0 :: Int+    , x * abs x :: Int+    , x * abs 0 :: Int+    , x * head xs :: Int+    , x * head [] :: Int+    , x * ord c :: Int+    , x * ord 'a' :: Int+    , 0 * z :: Int+    , 0 * (-1) :: Int+    , 0 * id y :: Int+    , 0 * id 1 :: Int+    , 0 * id (id x) :: Int+    , 0 * id (id 0) :: Int+    , 0 * negate x :: Int+    , 0 * negate 0 :: Int+    , 0 * abs x :: Int+    , 0 * abs 0 :: Int+    , 0 * head xs :: Int+    , 0 * head [] :: Int+    , 0 * ord c :: Int+    , 0 * ord 'a' :: Int+    , g z :: Int+    , g (-1) :: Int+    , g (id y) :: Int+    , g (id 1) :: Int+    , g (id (id x)) :: Int+    , g (id (id 0)) :: Int+    , g (negate x) :: Int+    , g (negate 0) :: Int+    , g (abs x) :: Int+    , g (abs 0) :: Int+    , g (head xs) :: Int+    , g (head []) :: Int+    , g (ord c) :: Int+    , g (ord 'a') :: Int+    , z + y :: Int+    , z + 1 :: Int+    , z + id x :: Int+    , z + id 0 :: Int+    , (-1) + y :: Int+    , (-1) + 1 :: Int+    , (-1) + id x :: Int+    , (-1) + id 0 :: Int+    , id y + y :: Int+    , id y + 1 :: Int+    , id y + id x :: Int+    , id y + id 0 :: Int+    , id 1 + y :: Int+    , id 1 + 1 :: Int+    , id 1 + id x :: Int+    , id 1 + id 0 :: Int+    , id (id x) + y :: Int+    , id (id x) + 1 :: Int+    , id (id x) + id x :: Int+    , id (id x) + id 0 :: Int+    , id (id 0) + y :: Int+    , id (id 0) + 1 :: Int+    , id (id 0) + id x :: Int+    , id (id 0) + id 0 :: Int+    , negate x + y :: Int+    , negate x + 1 :: Int+    , negate x + id x :: Int+    , negate x + id 0 :: Int+    , negate 0 + y :: Int+    , negate 0 + 1 :: Int+    , negate 0 + id x :: Int+    , negate 0 + id 0 :: Int+    , abs x + y :: Int+    , abs x + 1 :: Int+    , abs x + id x :: Int+    , abs x + id 0 :: Int+    , abs 0 + y :: Int+    , abs 0 + 1 :: Int+    , abs 0 + id x :: Int+    , abs 0 + id 0 :: Int+    , head xs + y :: Int+    , head xs + 1 :: Int+    , head xs + id x :: Int+    , head xs + id 0 :: Int+    , head [] + y :: Int+    , head [] + 1 :: Int+    , head [] + id x :: Int+    , head [] + id 0 :: Int+    , ord c + y :: Int+    , ord c + 1 :: Int+    , ord c + id x :: Int+    , ord c + id 0 :: Int+    , ord 'a' + y :: Int+    , ord 'a' + 1 :: Int+    , ord 'a' + id x :: Int+    , ord 'a' + id 0 :: Int+    , y * y :: Int+    , y * 1 :: Int+    , y * id x :: Int+    , y * id 0 :: Int+    , 1 * y :: Int+    , 1 * 1 :: Int+    , 1 * id x :: Int+    , 1 * id 0 :: Int+    , id x * y :: Int+    , id x * 1 :: Int+    , id x * id x :: Int+    , id x * id 0 :: Int+    , id 0 * y :: Int+    , id 0 * 1 :: Int+    , id 0 * id x :: Int+    , id 0 * id 0 :: Int+    , h y :: Int+    , h 1 :: Int+    , h (id x) :: Int+    , h (id 0) :: Int+    , x' + x :: Int+    , x' + 0 :: Int+    , 2 + x :: Int+    , 2 + 0 :: Int+    , id z + x :: Int+    , id z + 0 :: Int+    , id (-1) + x :: Int+    , id (-1) + 0 :: Int+    , id (id y) + x :: Int+    , id (id y) + 0 :: Int+    , id (id 1) + x :: Int+    , id (id 1) + 0 :: Int+    , id (id (id x)) + x :: Int+    , id (id (id x)) + 0 :: Int+    , id (id (id 0)) + x :: Int+    , id (id (id 0)) + 0 :: Int+    , id (negate x) + x :: Int+    , id (negate x) + 0 :: Int+    , id (negate 0) + x :: Int+    , id (negate 0) + 0 :: Int+    , id (abs x) + x :: Int+    , id (abs x) + 0 :: Int+    , id (abs 0) + x :: Int+    , id (abs 0) + 0 :: Int+    , id (head xs) + x :: Int+    , id (head xs) + 0 :: Int+    , id (head []) + x :: Int+    , id (head []) + 0 :: Int+    , id (ord c) + x :: Int+    , id (ord c) + 0 :: Int+    , id (ord 'a') + x :: Int+    , id (ord 'a') + 0 :: Int+    , negate y + x :: Int+    , negate y + 0 :: Int+    , negate 1 + x :: Int+    , negate 1 + 0 :: Int+    , negate (id x) + x :: Int+    , negate (id x) + 0 :: Int+    , negate (id 0) + x :: Int+    , negate (id 0) + 0 :: Int+    , abs y + x :: Int+    , abs y + 0 :: Int+    , abs 1 + x :: Int+    , abs 1 + 0 :: Int+    , abs (id x) + x :: Int+    , abs (id x) + 0 :: Int+    , abs (id 0) + x :: Int+    , abs (id 0) + 0 :: Int+    , (x + x) + x :: Int+    , (x + x) + 0 :: Int+    , (x + 0) + x :: Int+    , (x + 0) + 0 :: Int+    , (0 + x) + x :: Int+    , (0 + x) + 0 :: Int+    , (0 + 0) + x :: Int+    , (0 + 0) + 0 :: Int+    , f x + x :: Int+    , f x + 0 :: Int+    , f 0 + x :: Int+    , f 0 + 0 :: Int+    , head ys + x :: Int+    , head ys + 0 :: Int+    , head [0] + x :: Int+    , head [0] + 0 :: Int+    , ord d + x :: Int+    , ord d + 0 :: Int+    , ord ' ' + x :: Int+    , ord ' ' + 0 :: Int+    , z * x :: Int+    , z * 0 :: Int+    , (-1) * x :: Int+    , (-1) * 0 :: Int+    , id y * x :: Int+    , id y * 0 :: Int+    , id 1 * x :: Int+    , id 1 * 0 :: Int+    , id (id x) * x :: Int+    , id (id x) * 0 :: Int+    , id (id 0) * x :: Int+    , id (id 0) * 0 :: Int+    , negate x * x :: Int+    , negate x * 0 :: Int+    , negate 0 * x :: Int+    , negate 0 * 0 :: Int+    , abs x * x :: Int+    , abs x * 0 :: Int+    , abs 0 * x :: Int+    , abs 0 * 0 :: Int+    , head xs * x :: Int+    , head xs * 0 :: Int+    , head [] * x :: Int+    , head [] * 0 :: Int+    , ord c * x :: Int+    , ord c * 0 :: Int+    , ord 'a' * x :: Int+    , ord 'a' * 0 :: Int+    , f' x :: Int+    , f' 0 :: Int+    , head ys' :: Int+    , head [0,0,0,0] :: Int+    , head [0,0,1] :: Int+    , head [0,1,0] :: Int+    , head [0,-1] :: Int+    , head [1,0,0] :: Int+    , head [1,1] :: Int+    , head [-1,0] :: Int+    , head [2] :: Int+    , head (x:zs) :: Int+    , head (x:[0,0]) :: Int+    , head (x:[1]) :: Int+    , head (x:x:xs) :: Int+    , head [x,x] :: Int+    , head (x:0:xs) :: Int+    , head [x,0] :: Int+    , head (x:tail xs) :: Int+    , head (x:tail []) :: Int+    , head (0:zs) :: Int+    , head (0:[0,0]) :: Int+    , head (0:[1]) :: Int+    , head (0:x:xs) :: Int+    , head [0,x] :: Int+    , head (0:0:xs) :: Int+    , head [0,0] :: Int+    , head (0:tail xs) :: Int+    , head (0:tail []) :: Int+    , head (y:ys) :: Int+    , head (y:[0]) :: Int+    , head (1:ys) :: Int+    , head (1:[0]) :: Int+    , head (id x:ys) :: Int+    , head (id x:[0]) :: Int+    , head (id 0:ys) :: Int+    , head (id 0:[0]) :: Int+    , head (z:xs) :: Int+    , head [z] :: Int+    , head ((-1):xs) :: Int+    , head [-1] :: Int+    , head (id y:xs) :: Int+    , head [id y] :: Int+    , head (id 1:xs) :: Int+    , head [id 1] :: Int+    , head (id (id x):xs) :: Int+    , head [id (id x)] :: Int+    , head (id (id 0):xs) :: Int+    , head [id (id 0)] :: Int+    , head (negate x:xs) :: Int+    , head [negate x] :: Int+    , head (negate 0:xs) :: Int+    , head [negate 0] :: Int+    , head (abs x:xs) :: Int+    , head [abs x] :: Int+    , head (abs 0:xs) :: Int+    , head [abs 0] :: Int+    , head (head xs:xs) :: Int+    , head [head xs] :: Int+    , head (head []:xs) :: Int+    , head [head []] :: Int+    , head (ord c:xs) :: Int+    , head [ord c] :: Int+    , head (ord 'a':xs) :: Int+    , head [ord 'a'] :: Int+    , head (tail zs) :: Int+    , head (tail [0,0]) :: Int+    , head (tail [1]) :: Int+    , head (tail (x:xs)) :: Int+    , head (tail [x]) :: Int+    , head (tail (0:xs)) :: Int+    , head (tail [0]) :: Int+    , head (tail (tail xs)) :: Int+    , head (tail (tail [])) :: Int+    , head (xs ++ ys) :: Int+    , head (xs ++ [0]) :: Int+    , head ([] ++ ys) :: Int+    , head ([] ++ [0]) :: Int+    , head (ys ++ xs) :: Int+    , head (ys ++ []) :: Int+    , head ([0] ++ xs) :: Int+    , head ([0] ++ []) :: Int+    , head (sort ys) :: Int+    , head (sort [0]) :: Int+    , head (insert x xs) :: Int+    , head (insert x []) :: Int+    , head (insert 0 xs) :: Int+    , head (insert 0 []) :: Int+    , ord d' :: Int+    , ord 'c' :: Int+    , r' :: Bool+    , not q' :: Bool+    , not (not p') :: Bool+    , not (not (not r)) :: Bool+    , not (not (not (not q))) :: Bool+    , not (not (not (not (not p)))) :: Bool+    , not (not (not (not (not False)))) :: Bool+    , not (not (not (not (not True)))) :: Bool+    , not (not (p || p)) :: Bool+    , not (not (p || False)) :: Bool+    , not (not (p || True)) :: Bool+    , not (not (False || p)) :: Bool+    , not (not (False || False)) :: Bool+    , not (not (False || True)) :: Bool+    , not (not (True || p)) :: Bool+    , not (not (True || False)) :: Bool+    , not (not (True || True)) :: Bool+    , not (not (odd x)) :: Bool+    , not (not (odd 0)) :: Bool+    , not (not (even x)) :: Bool+    , not (not (even 0)) :: Bool+    , not (p || q) :: Bool+    , not (p || not p) :: Bool+    , not (p || not False) :: Bool+    , not (p || not True) :: Bool+    , not (False || q) :: Bool+    , not (False || not p) :: Bool+    , not (False || not False) :: Bool+    , not (False || not True) :: Bool+    , not (True || q) :: Bool+    , not (True || not p) :: Bool+    , not (True || not False) :: Bool+    , not (True || not True) :: Bool+    , not (q || p) :: Bool+    , not (q || False) :: Bool+    , not (q || True) :: Bool+    , not (not p || p) :: Bool+    , not (not p || False) :: Bool+    , not (not p || True) :: Bool+    , not (not False || p) :: Bool+    , not (not False || False) :: Bool+    , not (not False || True) :: Bool+    , not (not True || p) :: Bool+    , not (not True || False) :: Bool+    , not (not True || True) :: Bool+    , not (p && p) :: Bool+    , not (p && False) :: Bool+    , not (p && True) :: Bool+    , not (False && p) :: Bool+    , not (False && False) :: Bool+    , not (False && True) :: Bool+    , not (True && p) :: Bool+    , not (True && False) :: Bool+    , not (True && True) :: Bool+    , not (x == x) :: Bool+    , not (x == 0) :: Bool+    , not (0 == x) :: Bool+    , not (0 == 0) :: Bool+    , not (p == p) :: Bool+    , not (p == False) :: Bool+    , not (p == True) :: Bool+    , not (False == p) :: Bool+    , not (False == False) :: Bool+    , not (False == True) :: Bool+    , not (True == p) :: Bool+    , not (True == False) :: Bool+    , not (True == True) :: Bool+    , not (odd y) :: Bool+    , not (odd 1) :: Bool+    , not (odd (id x)) :: Bool+    , not (odd (id 0)) :: Bool+    , not (even y) :: Bool+    , not (even 1) :: Bool+    , not (even (id x)) :: Bool+    , not (even (id 0)) :: Bool+    , not (elem x xs) :: Bool+    , not (elem x []) :: Bool+    , not (elem 0 xs) :: Bool+    , not (elem 0 []) :: Bool+    , p || r :: Bool+    , p || not q :: Bool+    , p || not (not p) :: Bool+    , p || not (not False) :: Bool+    , p || not (not True) :: Bool+    , False || r :: Bool+    , False || not q :: Bool+    , False || not (not p) :: Bool+    , False || not (not False) :: Bool+    , False || not (not True) :: Bool+    , True || r :: Bool+    , True || not q :: Bool+    , True || not (not p) :: Bool+    , True || not (not False) :: Bool+    , True || not (not True) :: Bool+    , q || q :: Bool+    , q || not p :: Bool+    , q || not False :: Bool+    , q || not True :: Bool+    , not p || q :: Bool+    , not p || not p :: Bool+    , not p || not False :: Bool+    , not p || not True :: Bool+    , not False || q :: Bool+    , not False || not p :: Bool+    , not False || not False :: Bool+    , not False || not True :: Bool+    , not True || q :: Bool+    , not True || not p :: Bool+    , not True || not False :: Bool+    , not True || not True :: Bool+    , p && q :: Bool+    , p && not p :: Bool+    , p && not False :: Bool+    , p && not True :: Bool+    , False && q :: Bool+    , False && not p :: Bool+    , False && not False :: Bool+    , False && not True :: Bool+    , True && q :: Bool+    , True && not p :: Bool+    , True && not False :: Bool+    , True && not True :: Bool+    , r || p :: Bool+    , r || False :: Bool+    , r || True :: Bool+    , not q || p :: Bool+    , not q || False :: Bool+    , not q || True :: Bool+    , not (not p) || p :: Bool+    , not (not p) || False :: Bool+    , not (not p) || True :: Bool+    , not (not False) || p :: Bool+    , not (not False) || False :: Bool+    , not (not False) || True :: Bool+    , not (not True) || p :: Bool+    , not (not True) || False :: Bool+    , not (not True) || True :: Bool+    , q && p :: Bool+    , q && False :: Bool+    , q && True :: Bool+    , not p && p :: Bool+    , not p && False :: Bool+    , not p && True :: Bool+    , not False && p :: Bool+    , not False && False :: Bool+    , not False && True :: Bool+    , not True && p :: Bool+    , not True && False :: Bool+    , not True && True :: Bool+    , p ==> p :: Bool+    , p ==> False :: Bool+    , p ==> True :: Bool+    , False ==> p :: Bool+    , False ==> False :: Bool+    , False ==> True :: Bool+    , True ==> p :: Bool+    , True ==> False :: Bool+    , True ==> True :: Bool+    , x == y :: Bool+    , x == 1 :: Bool+    , x == id x :: Bool+    , x == id 0 :: Bool+    , 0 == y :: Bool+    , 0 == 1 :: Bool+    , 0 == id x :: Bool+    , 0 == id 0 :: Bool+    , y == x :: Bool+    , y == 0 :: Bool+    , 1 == x :: Bool+    , 1 == 0 :: Bool+    , id x == x :: Bool+    , id x == 0 :: Bool+    , id 0 == x :: Bool+    , id 0 == 0 :: Bool+    , p == q :: Bool+    , p == not p :: Bool+    , p == not False :: Bool+    , p == not True :: Bool+    , False == q :: Bool+    , False == not p :: Bool+    , False == not False :: Bool+    , False == not True :: Bool+    , True == q :: Bool+    , True == not p :: Bool+    , True == not False :: Bool+    , True == not True :: Bool+    , q == p :: Bool+    , q == False :: Bool+    , q == True :: Bool+    , not p == p :: Bool+    , not p == False :: Bool+    , not p == True :: Bool+    , not False == p :: Bool+    , not False == False :: Bool+    , not False == True :: Bool+    , not True == p :: Bool+    , not True == False :: Bool+    , not True == True :: Bool+    , x <= x :: Bool+    , x <= 0 :: Bool+    , 0 <= x :: Bool+    , 0 <= 0 :: Bool+    , p <= p :: Bool+    , p <= False :: Bool+    , p <= True :: Bool+    , False <= p :: Bool+    , False <= False :: Bool+    , False <= True :: Bool+    , True <= p :: Bool+    , True <= False :: Bool+    , True <= True :: Bool+    , odd z :: Bool+    , odd (-1) :: Bool+    , odd (id y) :: Bool+    , odd (id 1) :: Bool+    , odd (id (id x)) :: Bool+    , odd (id (id 0)) :: Bool+    , odd (negate x) :: Bool+    , odd (negate 0) :: Bool+    , odd (abs x) :: Bool+    , odd (abs 0) :: Bool+    , odd (head xs) :: Bool+    , odd (head []) :: Bool+    , odd (ord c) :: Bool+    , odd (ord 'a') :: Bool+    , even z :: Bool+    , even (-1) :: Bool+    , even (id y) :: Bool+    , even (id 1) :: Bool+    , even (id (id x)) :: Bool+    , even (id (id 0)) :: Bool+    , even (negate x) :: Bool+    , even (negate 0) :: Bool+    , even (abs x) :: Bool+    , even (abs 0) :: Bool+    , even (head xs) :: Bool+    , even (head []) :: Bool+    , even (ord c) :: Bool+    , even (ord 'a') :: Bool+    , elem x ys :: Bool+    , elem x [0] :: Bool+    , elem 0 ys :: Bool+    , elem 0 [0] :: Bool+    , elem y xs :: Bool+    , elem y [] :: Bool+    , elem 1 xs :: Bool+    , elem 1 [] :: Bool+    , elem (id x) xs :: Bool+    , elem (id x) [] :: Bool+    , elem (id 0) xs :: Bool+    , elem (id 0) [] :: Bool+    , e' :: Char+    , '\n' :: Char+    , zs' :: [Int]+    , [0,0,0,0,0] :: [Int]+    , [0,0,0,1] :: [Int]+    , [0,0,1,0] :: [Int]+    , [0,0,-1] :: [Int]+    , [0,1,0,0] :: [Int]+    , [0,1,1] :: [Int]+    , [0,-1,0] :: [Int]+    , [0,2] :: [Int]+    , [1,0,0,0] :: [Int]+    , [1,0,1] :: [Int]+    , [1,1,0] :: [Int]+    , [1,-1] :: [Int]+    , [-1,0,0] :: [Int]+    , [-1,1] :: [Int]+    , [2,0] :: [Int]+    , [-2] :: [Int]+    , x:xs' :: [Int]+    , x:[0,0,0] :: [Int]+    , x:[0,1] :: [Int]+    , x:[1,0] :: [Int]+    , x:[-1] :: [Int]+    , x:x:ys :: [Int]+    , x:x:[0] :: [Int]+    , x:0:ys :: [Int]+    , x:0:[0] :: [Int]+    , x:y:xs :: [Int]+    , [x,y] :: [Int]+    , x:1:xs :: [Int]+    , [x,1] :: [Int]+    , x:id x:xs :: [Int]+    , [x,id x] :: [Int]+    , x:id 0:xs :: [Int]+    , [x,id 0] :: [Int]+    , x:tail ys :: [Int]+    , x:tail [0] :: [Int]+    , x:(xs ++ xs) :: [Int]+    , x:(xs ++ []) :: [Int]+    , x:([] ++ xs) :: [Int]+    , x:([] ++ []) :: [Int]+    , x:sort xs :: [Int]+    , x:sort [] :: [Int]+    , 0:xs' :: [Int]+    , 0:[0,0,0] :: [Int]+    , 0:[0,1] :: [Int]+    , 0:[1,0] :: [Int]+    , 0:[-1] :: [Int]+    , 0:x:ys :: [Int]+    , 0:x:[0] :: [Int]+    , 0:0:ys :: [Int]+    , 0:0:[0] :: [Int]+    , 0:y:xs :: [Int]+    , [0,y] :: [Int]+    , 0:1:xs :: [Int]+    , [0,1] :: [Int]+    , 0:id x:xs :: [Int]+    , [0,id x] :: [Int]+    , 0:id 0:xs :: [Int]+    , [0,id 0] :: [Int]+    , 0:tail ys :: [Int]+    , 0:tail [0] :: [Int]+    , 0:(xs ++ xs) :: [Int]+    , 0:(xs ++ []) :: [Int]+    , 0:([] ++ xs) :: [Int]+    , 0:([] ++ []) :: [Int]+    , 0:sort xs :: [Int]+    , 0:sort [] :: [Int]+    , y:zs :: [Int]+    , y:[0,0] :: [Int]+    , y:[1] :: [Int]+    , y:x:xs :: [Int]+    , [y,x] :: [Int]+    , y:0:xs :: [Int]+    , [y,0] :: [Int]+    , y:tail xs :: [Int]+    , y:tail [] :: [Int]+    , 1:zs :: [Int]+    , 1:[0,0] :: [Int]+    , 1:[1] :: [Int]+    , 1:x:xs :: [Int]+    , [1,x] :: [Int]+    , 1:0:xs :: [Int]+    , [1,0] :: [Int]+    , 1:tail xs :: [Int]+    , 1:tail [] :: [Int]+    , id x:zs :: [Int]+    , id x:[0,0] :: [Int]+    , id x:[1] :: [Int]+    , id x:x:xs :: [Int]+    , [id x,x] :: [Int]+    , id x:0:xs :: [Int]+    , [id x,0] :: [Int]+    , id x:tail xs :: [Int]+    , id x:tail [] :: [Int]+    , id 0:zs :: [Int]+    , id 0:[0,0] :: [Int]+    , id 0:[1] :: [Int]+    , id 0:x:xs :: [Int]+    , [id 0,x] :: [Int]+    , id 0:0:xs :: [Int]+    , [id 0,0] :: [Int]+    , id 0:tail xs :: [Int]+    , id 0:tail [] :: [Int]+    , z:ys :: [Int]+    , z:[0] :: [Int]+    , (-1):ys :: [Int]+    , (-1):[0] :: [Int]+    , id y:ys :: [Int]+    , id y:[0] :: [Int]+    , id 1:ys :: [Int]+    , id 1:[0] :: [Int]+    , id (id x):ys :: [Int]+    , id (id x):[0] :: [Int]+    , id (id 0):ys :: [Int]+    , id (id 0):[0] :: [Int]+    , negate x:ys :: [Int]+    , negate x:[0] :: [Int]+    , negate 0:ys :: [Int]+    , negate 0:[0] :: [Int]+    , abs x:ys :: [Int]+    , abs x:[0] :: [Int]+    , abs 0:ys :: [Int]+    , abs 0:[0] :: [Int]+    , head xs:ys :: [Int]+    , head xs:[0] :: [Int]+    , head []:ys :: [Int]+    , head []:[0] :: [Int]+    , ord c:ys :: [Int]+    , ord c:[0] :: [Int]+    , ord 'a':ys :: [Int]+    , ord 'a':[0] :: [Int]+    , x':xs :: [Int]+    , [x'] :: [Int]+    , 2:xs :: [Int]+    , [2] :: [Int]+    , id z:xs :: [Int]+    , [id z] :: [Int]+    , id (-1):xs :: [Int]+    , [id (-1)] :: [Int]+    , id (id y):xs :: [Int]+    , [id (id y)] :: [Int]+    , id (id 1):xs :: [Int]+    , [id (id 1)] :: [Int]+    , id (id (id x)):xs :: [Int]+    , [id (id (id x))] :: [Int]+    , id (id (id 0)):xs :: [Int]+    , [id (id (id 0))] :: [Int]+    , id (negate x):xs :: [Int]+    , [id (negate x)] :: [Int]+    , id (negate 0):xs :: [Int]+    , [id (negate 0)] :: [Int]+    , id (abs x):xs :: [Int]+    , [id (abs x)] :: [Int]+    , id (abs 0):xs :: [Int]+    , [id (abs 0)] :: [Int]+    , id (head xs):xs :: [Int]+    , [id (head xs)] :: [Int]+    , id (head []):xs :: [Int]+    , [id (head [])] :: [Int]+    , id (ord c):xs :: [Int]+    , [id (ord c)] :: [Int]+    , id (ord 'a'):xs :: [Int]+    , [id (ord 'a')] :: [Int]+    , negate y:xs :: [Int]+    , [negate y] :: [Int]+    , negate 1:xs :: [Int]+    , [negate 1] :: [Int]+    , negate (id x):xs :: [Int]+    , [negate (id x)] :: [Int]+    , negate (id 0):xs :: [Int]+    , [negate (id 0)] :: [Int]+    , abs y:xs :: [Int]+    , [abs y] :: [Int]+    , abs 1:xs :: [Int]+    , [abs 1] :: [Int]+    , abs (id x):xs :: [Int]+    , [abs (id x)] :: [Int]+    , abs (id 0):xs :: [Int]+    , [abs (id 0)] :: [Int]+    , x + x:xs :: [Int]+    , [x + x] :: [Int]+    , x + 0:xs :: [Int]+    , [x + 0] :: [Int]+    , 0 + x:xs :: [Int]+    , [0 + x] :: [Int]+    , 0 + 0:xs :: [Int]+    , [0 + 0] :: [Int]+    , f x:xs :: [Int]+    , [f x] :: [Int]+    , f 0:xs :: [Int]+    , [f 0] :: [Int]+    , head ys:xs :: [Int]+    , [head ys] :: [Int]+    , head [0]:xs :: [Int]+    , [head [0]] :: [Int]+    , ord d:xs :: [Int]+    , [ord d] :: [Int]+    , ord ' ':xs :: [Int]+    , [ord ' '] :: [Int]+    , tail xs' :: [Int]+    , tail [0,0,0] :: [Int]+    , tail [0,1] :: [Int]+    , tail [1,0] :: [Int]+    , tail [-1] :: [Int]+    , tail (x:ys) :: [Int]+    , tail (x:[0]) :: [Int]+    , tail (0:ys) :: [Int]+    , tail (0:[0]) :: [Int]+    , tail (y:xs) :: [Int]+    , tail [y] :: [Int]+    , tail (1:xs) :: [Int]+    , tail [1] :: [Int]+    , tail (id x:xs) :: [Int]+    , tail [id x] :: [Int]+    , tail (id 0:xs) :: [Int]+    , tail [id 0] :: [Int]+    , tail (tail ys) :: [Int]+    , tail (tail [0]) :: [Int]+    , tail (xs ++ xs) :: [Int]+    , tail (xs ++ []) :: [Int]+    , tail ([] ++ xs) :: [Int]+    , tail ([] ++ []) :: [Int]+    , tail (sort xs) :: [Int]+    , tail (sort []) :: [Int]+    , xs ++ zs :: [Int]+    , xs ++ [0,0] :: [Int]+    , xs ++ [1] :: [Int]+    , xs ++ (x:xs) :: [Int]+    , xs ++ [x] :: [Int]+    , xs ++ (0:xs) :: [Int]+    , xs ++ [0] :: [Int]+    , xs ++ tail xs :: [Int]+    , xs ++ tail [] :: [Int]+    , [] ++ zs :: [Int]+    , [] ++ [0,0] :: [Int]+    , [] ++ [1] :: [Int]+    , [] ++ (x:xs) :: [Int]+    , [] ++ [x] :: [Int]+    , [] ++ (0:xs) :: [Int]+    , [] ++ [0] :: [Int]+    , [] ++ tail xs :: [Int]+    , [] ++ tail [] :: [Int]+    , ys ++ ys :: [Int]+    , ys ++ [0] :: [Int]+    , [0] ++ ys :: [Int]+    , [0] ++ [0] :: [Int]+    , zs ++ xs :: [Int]+    , zs ++ [] :: [Int]+    , [0,0] ++ xs :: [Int]+    , [0,0] ++ [] :: [Int]+    , [1] ++ xs :: [Int]+    , [1] ++ [] :: [Int]+    , (x:xs) ++ xs :: [Int]+    , (x:xs) ++ [] :: [Int]+    , [x] ++ xs :: [Int]+    , [x] ++ [] :: [Int]+    , (0:xs) ++ xs :: [Int]+    , (0:xs) ++ [] :: [Int]+    , [0] ++ xs :: [Int]+    , [0] ++ [] :: [Int]+    , tail xs ++ xs :: [Int]+    , tail xs ++ [] :: [Int]+    , tail [] ++ xs :: [Int]+    , tail [] ++ [] :: [Int]+    , sort zs :: [Int]+    , sort [0,0] :: [Int]+    , sort [1] :: [Int]+    , sort (x:xs) :: [Int]+    , sort [x] :: [Int]+    , sort (0:xs) :: [Int]+    , sort [0] :: [Int]+    , sort (tail xs) :: [Int]+    , sort (tail []) :: [Int]+    , insert x ys :: [Int]+    , insert x [0] :: [Int]+    , insert 0 ys :: [Int]+    , insert 0 [0] :: [Int]+    , insert y xs :: [Int]+    , insert y [] :: [Int]+    , insert 1 xs :: [Int]+    , insert 1 [] :: [Int]+    , insert (id x) xs :: [Int]+    , insert (id x) [] :: [Int]+    , insert (id 0) xs :: [Int]+    , insert (id 0) [] :: [Int]+    , (x' +) :: Int -> Int+    , (2 +) :: Int -> Int+    , (id z +) :: Int -> Int+    , (id (-1) +) :: Int -> Int+    , (id (id y) +) :: Int -> Int+    , (id (id 1) +) :: Int -> Int+    , (id (id (id x)) +) :: Int -> Int+    , (id (id (id 0)) +) :: Int -> Int+    , (id (negate x) +) :: Int -> Int+    , (id (negate 0) +) :: Int -> Int+    , (id (abs x) +) :: Int -> Int+    , (id (abs 0) +) :: Int -> Int+    , (id (head xs) +) :: Int -> Int+    , (id (head []) +) :: Int -> Int+    , (id (ord c) +) :: Int -> Int+    , (id (ord 'a') +) :: Int -> Int+    , (negate y +) :: Int -> Int+    , (negate 1 +) :: Int -> Int+    , (negate (id x) +) :: Int -> Int+    , (negate (id 0) +) :: Int -> Int+    , (abs y +) :: Int -> Int+    , (abs 1 +) :: Int -> Int+    , (abs (id x) +) :: Int -> Int+    , (abs (id 0) +) :: Int -> Int+    , ((x + x) +) :: Int -> Int+    , ((x + 0) +) :: Int -> Int+    , ((0 + x) +) :: Int -> Int+    , ((0 + 0) +) :: Int -> Int+    , (f x +) :: Int -> Int+    , (f 0 +) :: Int -> Int+    , (head ys +) :: Int -> Int+    , (head [0] +) :: Int -> Int+    , (ord d +) :: Int -> Int+    , (ord ' ' +) :: Int -> Int+    , (z *) :: Int -> Int+    , ((-1) *) :: Int -> Int+    , (id y *) :: Int -> Int+    , (id 1 *) :: Int -> Int+    , (id (id x) *) :: Int -> Int+    , (id (id 0) *) :: Int -> Int+    , (negate x *) :: Int -> Int+    , (negate 0 *) :: Int -> Int+    , (abs x *) :: Int -> Int+    , (abs 0 *) :: Int -> Int+    , (head xs *) :: Int -> Int+    , (head [] *) :: Int -> Int+    , (ord c *) :: Int -> Int+    , (ord 'a' *) :: Int -> Int+    , f' :: Int -> Int+    , (r ||) :: Bool -> Bool+    , (not q ||) :: Bool -> Bool+    , (not (not p) ||) :: Bool -> Bool+    , (not (not False) ||) :: Bool -> Bool+    , (not (not True) ||) :: Bool -> Bool+    , (q &&) :: Bool -> Bool+    , (not p &&) :: Bool -> Bool+    , (not False &&) :: Bool -> Bool+    , (not True &&) :: Bool -> Bool+    , (p ==>) :: Bool -> Bool+    , (False ==>) :: Bool -> Bool+    , (True ==>) :: Bool -> Bool+    ]+  , ...+  ]
bench/tiers.hs view
@@ -1,21 +1,25 @@ -- tiers.hs -- prints tiers of expressions ----- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE).++++ import Test import Data.List (intercalate, nub) import Test.LeanCheck.Tiers (showTiers) import Data.Express.Utils.List  showDotsLongerThan :: Show a => Int -> [a] -> String-showDotsLongerThan n xs = "["-                       ++ intercalate "," (dotsLongerThan n $ map show xs)-                       ++ "]"+showDotsLongerThan n xs  =  "["+                         ++ intercalate "," (dotsLongerThan n $ map show xs)+                         ++ "]"   where-  dotsLongerThan n xs = take n xs ++ ["..." | not . null $ drop n xs]+  dotsLongerThan n xs  =  take n xs ++ ["..." | not . null $ drop n xs]  printTiers :: Show a => Int -> [[a]] -> IO ()-printTiers n = putStrLn . init . unlines . map ("  " ++) . lines . showTiers n+printTiers n  =  putStrLn . init . unlines . map ("  " ++) . lines . showTiers n  main :: IO () main  =  do@@ -23,5 +27,5 @@           ++ show (isNub (take 5040 list :: [Expr]))   putStrLn $ "map length (tiers :: [[ Expr ]])  =  "           ++ showDotsLongerThan 9 (map length (tiers :: [[Expr]]))-  putStrLn $ "tiers :: [[ Expr ]]  ="+  putStrLn "tiers :: [[ Expr ]]  ="   printTiers 7 (tiers :: [[Expr]])
+ bench/tiers.txt view
@@ -0,0 +1,3624 @@+isNub (list :: [Expr])  =  True+map length (tiers :: [[ Expr ]])  =  [1,6,21,55,177,674,2679,11128,47899,...]+tiers :: [[ Expr ]]  =+  [ [_ :: Int]+  , [ x :: Int+    , 0 :: Int+    , id _ :: Int+    , _ :: Bool+    , _ :: Char+    , _ :: [Int]+    ]+  , [ y :: Int+    , 1 :: Int+    , id x :: Int+    , id 0 :: Int+    , id (id _) :: Int+    , negate _ :: Int+    , abs _ :: Int+    , _ + _ :: Int+    , head _ :: Int+    , ord _ :: Int+    , p :: Bool+    , False :: Bool+    , True :: Bool+    , not _ :: Bool+    , c :: Char+    , 'a' :: Char+    , xs :: [Int]+    , [] :: [Int]+    , _:_ :: [Int]+    , id :: Int -> Int+    , (+) :: Int -> Int -> Int+    ]+  , [ z :: Int+    , -1 :: Int+    , id y :: Int+    , id 1 :: Int+    , id (id x) :: Int+    , id (id 0) :: Int+    , id (id (id _)) :: Int+    , id (negate _) :: Int+    , id (abs _) :: Int+    , id (_ + _) :: Int+    , id (head _) :: Int+    , id (ord _) :: Int+    , negate x :: Int+    , negate 0 :: Int+    , negate (id _) :: Int+    , abs x :: Int+    , abs 0 :: Int+    , abs (id _) :: Int+    , _ + x :: Int+    , _ + 0 :: Int+    , _ + id _ :: Int+    , x + _ :: Int+    , 0 + _ :: Int+    , id _ + _ :: Int+    , _ * _ :: Int+    , f _ :: Int+    , head xs :: Int+    , head [] :: Int+    , head (_:_) :: Int+    , ord c :: Int+    , ord 'a' :: Int+    , q :: Bool+    , not p :: Bool+    , not False :: Bool+    , not True :: Bool+    , not (not _) :: Bool+    , _ || _ :: Bool+    , d :: Char+    , ' ' :: Char+    , ys :: [Int]+    , [0] :: [Int]+    , _:xs :: [Int]+    , [_] :: [Int]+    , _:_:_ :: [Int]+    , x:_ :: [Int]+    , 0:_ :: [Int]+    , id _:_ :: [Int]+    , tail _ :: [Int]+    , _ ++ _ :: [Int]+    , negate :: Int -> Int+    , abs :: Int -> Int+    , (_ +) :: Int -> Int+    , (*) :: Int -> Int -> Int+    , not :: Bool -> Bool+    , (||) :: Bool -> Bool -> Bool+    ]+  , [ x' :: Int+    , 2 :: Int+    , id z :: Int+    , id (-1) :: Int+    , id (id y) :: Int+    , id (id 1) :: Int+    , id (id (id x)) :: Int+    , id (id (id 0)) :: Int+    , id (id (id (id _))) :: Int+    , id (id (negate _)) :: Int+    , id (id (abs _)) :: Int+    , id (id (_ + _)) :: Int+    , id (id (head _)) :: Int+    , id (id (ord _)) :: Int+    , id (negate x) :: Int+    , id (negate 0) :: Int+    , id (negate (id _)) :: Int+    , id (abs x) :: Int+    , id (abs 0) :: Int+    , id (abs (id _)) :: Int+    , id (_ + x) :: Int+    , id (_ + 0) :: Int+    , id (_ + id _) :: Int+    , id (x + _) :: Int+    , id (0 + _) :: Int+    , id (id _ + _) :: Int+    , id (_ * _) :: Int+    , id (f _) :: Int+    , id (head xs) :: Int+    , id (head []) :: Int+    , id (head (_:_)) :: Int+    , id (ord c) :: Int+    , id (ord 'a') :: Int+    , negate y :: Int+    , negate 1 :: Int+    , negate (id x) :: Int+    , negate (id 0) :: Int+    , negate (id (id _)) :: Int+    , negate (negate _) :: Int+    , negate (abs _) :: Int+    , negate (_ + _) :: Int+    , negate (head _) :: Int+    , negate (ord _) :: Int+    , abs y :: Int+    , abs 1 :: Int+    , abs (id x) :: Int+    , abs (id 0) :: Int+    , abs (id (id _)) :: Int+    , abs (negate _) :: Int+    , abs (abs _) :: Int+    , abs (_ + _) :: Int+    , abs (head _) :: Int+    , abs (ord _) :: Int+    , _ + y :: Int+    , _ + 1 :: Int+    , _ + id x :: Int+    , _ + id 0 :: Int+    , _ + id (id _) :: Int+    , _ + negate _ :: Int+    , _ + abs _ :: Int+    , _ + (_ + _) :: Int+    , _ + head _ :: Int+    , _ + ord _ :: Int+    , x + x :: Int+    , x + 0 :: Int+    , x + id _ :: Int+    , 0 + x :: Int+    , 0 + 0 :: Int+    , 0 + id _ :: Int+    , id _ + x :: Int+    , id _ + 0 :: Int+    , id _ + id _ :: Int+    , _ * x :: Int+    , _ * 0 :: Int+    , _ * id _ :: Int+    , f x :: Int+    , f 0 :: Int+    , f (id _) :: Int+    , y + _ :: Int+    , 1 + _ :: Int+    , id x + _ :: Int+    , id 0 + _ :: Int+    , id (id _) + _ :: Int+    , negate _ + _ :: Int+    , abs _ + _ :: Int+    , (_ + _) + _ :: Int+    , head _ + _ :: Int+    , ord _ + _ :: Int+    , x * _ :: Int+    , 0 * _ :: Int+    , id _ * _ :: Int+    , g _ :: Int+    , head ys :: Int+    , head [0] :: Int+    , head (_:xs) :: Int+    , head [_] :: Int+    , head (_:_:_) :: Int+    , head (x:_) :: Int+    , head (0:_) :: Int+    , head (id _:_) :: Int+    , head (tail _) :: Int+    , head (_ ++ _) :: Int+    , ord d :: Int+    , ord ' ' :: Int+    , r :: Bool+    , not q :: Bool+    , not (not p) :: Bool+    , not (not False) :: Bool+    , not (not True) :: Bool+    , not (not (not _)) :: Bool+    , not (_ || _) :: Bool+    , _ || p :: Bool+    , _ || False :: Bool+    , _ || True :: Bool+    , _ || not _ :: Bool+    , p || _ :: Bool+    , False || _ :: Bool+    , True || _ :: Bool+    , not _ || _ :: Bool+    , _ && _ :: Bool+    , _ == _ :: Bool+    , _ == _ :: Bool+    , odd _ :: Bool+    , even _ :: Bool+    , elem _ _ :: Bool+    , e :: Char+    , 'b' :: Char+    , zs :: [Int]+    , [0,0] :: [Int]+    , [1] :: [Int]+    , _:ys :: [Int]+    , _:[0] :: [Int]+    , _:_:xs :: [Int]+    , [_,_] :: [Int]+    , _:_:_:_ :: [Int]+    , _:x:_ :: [Int]+    , _:0:_ :: [Int]+    , _:id _:_ :: [Int]+    , _:tail _ :: [Int]+    , _:(_ ++ _) :: [Int]+    , x:xs :: [Int]+    , [x] :: [Int]+    , x:_:_ :: [Int]+    , 0:xs :: [Int]+    , [0] :: [Int]+    , 0:_:_ :: [Int]+    , id _:xs :: [Int]+    , [id _] :: [Int]+    , id _:_:_ :: [Int]+    , y:_ :: [Int]+    , 1:_ :: [Int]+    , id x:_ :: [Int]+    , id 0:_ :: [Int]+    , id (id _):_ :: [Int]+    , negate _:_ :: [Int]+    , abs _:_ :: [Int]+    , _ + _:_ :: [Int]+    , head _:_ :: [Int]+    , ord _:_ :: [Int]+    , tail xs :: [Int]+    , tail [] :: [Int]+    , tail (_:_) :: [Int]+    , _ ++ xs :: [Int]+    , _ ++ [] :: [Int]+    , _ ++ (_:_) :: [Int]+    , xs ++ _ :: [Int]+    , [] ++ _ :: [Int]+    , (_:_) ++ _ :: [Int]+    , sort _ :: [Int]+    , insert _ _ :: [Int]+    , (x +) :: Int -> Int+    , (0 +) :: Int -> Int+    , (id _ +) :: Int -> Int+    , (_ *) :: Int -> Int+    , f :: Int -> Int+    , (_ ||) :: Bool -> Bool+    , (&&) :: Bool -> Bool -> Bool+    ]+  , [ y' :: Int+    , -2 :: Int+    , id x' :: Int+    , id 2 :: Int+    , id (id z) :: Int+    , id (id (-1)) :: Int+    , id (id (id y)) :: Int+    , id (id (id 1)) :: Int+    , id (id (id (id x))) :: Int+    , id (id (id (id 0))) :: Int+    , id (id (id (id (id _)))) :: Int+    , id (id (id (negate _))) :: Int+    , id (id (id (abs _))) :: Int+    , id (id (id (_ + _))) :: Int+    , id (id (id (head _))) :: Int+    , id (id (id (ord _))) :: Int+    , id (id (negate x)) :: Int+    , id (id (negate 0)) :: Int+    , id (id (negate (id _))) :: Int+    , id (id (abs x)) :: Int+    , id (id (abs 0)) :: Int+    , id (id (abs (id _))) :: Int+    , id (id (_ + x)) :: Int+    , id (id (_ + 0)) :: Int+    , id (id (_ + id _)) :: Int+    , id (id (x + _)) :: Int+    , id (id (0 + _)) :: Int+    , id (id (id _ + _)) :: Int+    , id (id (_ * _)) :: Int+    , id (id (f _)) :: Int+    , id (id (head xs)) :: Int+    , id (id (head [])) :: Int+    , id (id (head (_:_))) :: Int+    , id (id (ord c)) :: Int+    , id (id (ord 'a')) :: Int+    , id (negate y) :: Int+    , id (negate 1) :: Int+    , id (negate (id x)) :: Int+    , id (negate (id 0)) :: Int+    , id (negate (id (id _))) :: Int+    , id (negate (negate _)) :: Int+    , id (negate (abs _)) :: Int+    , id (negate (_ + _)) :: Int+    , id (negate (head _)) :: Int+    , id (negate (ord _)) :: Int+    , id (abs y) :: Int+    , id (abs 1) :: Int+    , id (abs (id x)) :: Int+    , id (abs (id 0)) :: Int+    , id (abs (id (id _))) :: Int+    , id (abs (negate _)) :: Int+    , id (abs (abs _)) :: Int+    , id (abs (_ + _)) :: Int+    , id (abs (head _)) :: Int+    , id (abs (ord _)) :: Int+    , id (_ + y) :: Int+    , id (_ + 1) :: Int+    , id (_ + id x) :: Int+    , id (_ + id 0) :: Int+    , id (_ + id (id _)) :: Int+    , id (_ + negate _) :: Int+    , id (_ + abs _) :: Int+    , id (_ + (_ + _)) :: Int+    , id (_ + head _) :: Int+    , id (_ + ord _) :: Int+    , id (x + x) :: Int+    , id (x + 0) :: Int+    , id (x + id _) :: Int+    , id (0 + x) :: Int+    , id (0 + 0) :: Int+    , id (0 + id _) :: Int+    , id (id _ + x) :: Int+    , id (id _ + 0) :: Int+    , id (id _ + id _) :: Int+    , id (_ * x) :: Int+    , id (_ * 0) :: Int+    , id (_ * id _) :: Int+    , id (f x) :: Int+    , id (f 0) :: Int+    , id (f (id _)) :: Int+    , id (y + _) :: Int+    , id (1 + _) :: Int+    , id (id x + _) :: Int+    , id (id 0 + _) :: Int+    , id (id (id _) + _) :: Int+    , id (negate _ + _) :: Int+    , id (abs _ + _) :: Int+    , id ((_ + _) + _) :: Int+    , id (head _ + _) :: Int+    , id (ord _ + _) :: Int+    , id (x * _) :: Int+    , id (0 * _) :: Int+    , id (id _ * _) :: Int+    , id (g _) :: Int+    , id (head ys) :: Int+    , id (head [0]) :: Int+    , id (head (_:xs)) :: Int+    , id (head [_]) :: Int+    , id (head (_:_:_)) :: Int+    , id (head (x:_)) :: Int+    , id (head (0:_)) :: Int+    , id (head (id _:_)) :: Int+    , id (head (tail _)) :: Int+    , id (head (_ ++ _)) :: Int+    , id (ord d) :: Int+    , id (ord ' ') :: Int+    , negate z :: Int+    , negate (-1) :: Int+    , negate (id y) :: Int+    , negate (id 1) :: Int+    , negate (id (id x)) :: Int+    , negate (id (id 0)) :: Int+    , negate (id (id (id _))) :: Int+    , negate (id (negate _)) :: Int+    , negate (id (abs _)) :: Int+    , negate (id (_ + _)) :: Int+    , negate (id (head _)) :: Int+    , negate (id (ord _)) :: Int+    , negate (negate x) :: Int+    , negate (negate 0) :: Int+    , negate (negate (id _)) :: Int+    , negate (abs x) :: Int+    , negate (abs 0) :: Int+    , negate (abs (id _)) :: Int+    , negate (_ + x) :: Int+    , negate (_ + 0) :: Int+    , negate (_ + id _) :: Int+    , negate (x + _) :: Int+    , negate (0 + _) :: Int+    , negate (id _ + _) :: Int+    , negate (_ * _) :: Int+    , negate (f _) :: Int+    , negate (head xs) :: Int+    , negate (head []) :: Int+    , negate (head (_:_)) :: Int+    , negate (ord c) :: Int+    , negate (ord 'a') :: Int+    , abs z :: Int+    , abs (-1) :: Int+    , abs (id y) :: Int+    , abs (id 1) :: Int+    , abs (id (id x)) :: Int+    , abs (id (id 0)) :: Int+    , abs (id (id (id _))) :: Int+    , abs (id (negate _)) :: Int+    , abs (id (abs _)) :: Int+    , abs (id (_ + _)) :: Int+    , abs (id (head _)) :: Int+    , abs (id (ord _)) :: Int+    , abs (negate x) :: Int+    , abs (negate 0) :: Int+    , abs (negate (id _)) :: Int+    , abs (abs x) :: Int+    , abs (abs 0) :: Int+    , abs (abs (id _)) :: Int+    , abs (_ + x) :: Int+    , abs (_ + 0) :: Int+    , abs (_ + id _) :: Int+    , abs (x + _) :: Int+    , abs (0 + _) :: Int+    , abs (id _ + _) :: Int+    , abs (_ * _) :: Int+    , abs (f _) :: Int+    , abs (head xs) :: Int+    , abs (head []) :: Int+    , abs (head (_:_)) :: Int+    , abs (ord c) :: Int+    , abs (ord 'a') :: Int+    , _ + z :: Int+    , _ + (-1) :: Int+    , _ + id y :: Int+    , _ + id 1 :: Int+    , _ + id (id x) :: Int+    , _ + id (id 0) :: Int+    , _ + id (id (id _)) :: Int+    , _ + id (negate _) :: Int+    , _ + id (abs _) :: Int+    , _ + id (_ + _) :: Int+    , _ + id (head _) :: Int+    , _ + id (ord _) :: Int+    , _ + negate x :: Int+    , _ + negate 0 :: Int+    , _ + negate (id _) :: Int+    , _ + abs x :: Int+    , _ + abs 0 :: Int+    , _ + abs (id _) :: Int+    , _ + (_ + x) :: Int+    , _ + (_ + 0) :: Int+    , _ + (_ + id _) :: Int+    , _ + (x + _) :: Int+    , _ + (0 + _) :: Int+    , _ + (id _ + _) :: Int+    , _ + _ * _ :: Int+    , _ + f _ :: Int+    , _ + head xs :: Int+    , _ + head [] :: Int+    , _ + head (_:_) :: Int+    , _ + ord c :: Int+    , _ + ord 'a' :: Int+    , x + y :: Int+    , x + 1 :: Int+    , x + id x :: Int+    , x + id 0 :: Int+    , x + id (id _) :: Int+    , x + negate _ :: Int+    , x + abs _ :: Int+    , x + (_ + _) :: Int+    , x + head _ :: Int+    , x + ord _ :: Int+    , 0 + y :: Int+    , 0 + 1 :: Int+    , 0 + id x :: Int+    , 0 + id 0 :: Int+    , 0 + id (id _) :: Int+    , 0 + negate _ :: Int+    , 0 + abs _ :: Int+    , 0 + (_ + _) :: Int+    , 0 + head _ :: Int+    , 0 + ord _ :: Int+    , id _ + y :: Int+    , id _ + 1 :: Int+    , id _ + id x :: Int+    , id _ + id 0 :: Int+    , id _ + id (id _) :: Int+    , id _ + negate _ :: Int+    , id _ + abs _ :: Int+    , id _ + (_ + _) :: Int+    , id _ + head _ :: Int+    , id _ + ord _ :: Int+    , _ * y :: Int+    , _ * 1 :: Int+    , _ * id x :: Int+    , _ * id 0 :: Int+    , _ * id (id _) :: Int+    , _ * negate _ :: Int+    , _ * abs _ :: Int+    , _ * (_ + _) :: Int+    , _ * head _ :: Int+    , _ * ord _ :: Int+    , f y :: Int+    , f 1 :: Int+    , f (id x) :: Int+    , f (id 0) :: Int+    , f (id (id _)) :: Int+    , f (negate _) :: Int+    , f (abs _) :: Int+    , f (_ + _) :: Int+    , f (head _) :: Int+    , f (ord _) :: Int+    , y + x :: Int+    , y + 0 :: Int+    , y + id _ :: Int+    , 1 + x :: Int+    , 1 + 0 :: Int+    , 1 + id _ :: Int+    , id x + x :: Int+    , id x + 0 :: Int+    , id x + id _ :: Int+    , id 0 + x :: Int+    , id 0 + 0 :: Int+    , id 0 + id _ :: Int+    , id (id _) + x :: Int+    , id (id _) + 0 :: Int+    , id (id _) + id _ :: Int+    , negate _ + x :: Int+    , negate _ + 0 :: Int+    , negate _ + id _ :: Int+    , abs _ + x :: Int+    , abs _ + 0 :: Int+    , abs _ + id _ :: Int+    , (_ + _) + x :: Int+    , (_ + _) + 0 :: Int+    , (_ + _) + id _ :: Int+    , head _ + x :: Int+    , head _ + 0 :: Int+    , head _ + id _ :: Int+    , ord _ + x :: Int+    , ord _ + 0 :: Int+    , ord _ + id _ :: Int+    , x * x :: Int+    , x * 0 :: Int+    , x * id _ :: Int+    , 0 * x :: Int+    , 0 * 0 :: Int+    , 0 * id _ :: Int+    , id _ * x :: Int+    , id _ * 0 :: Int+    , id _ * id _ :: Int+    , g x :: Int+    , g 0 :: Int+    , g (id _) :: Int+    , z + _ :: Int+    , (-1) + _ :: Int+    , id y + _ :: Int+    , id 1 + _ :: Int+    , id (id x) + _ :: Int+    , id (id 0) + _ :: Int+    , id (id (id _)) + _ :: Int+    , id (negate _) + _ :: Int+    , id (abs _) + _ :: Int+    , id (_ + _) + _ :: Int+    , id (head _) + _ :: Int+    , id (ord _) + _ :: Int+    , negate x + _ :: Int+    , negate 0 + _ :: Int+    , negate (id _) + _ :: Int+    , abs x + _ :: Int+    , abs 0 + _ :: Int+    , abs (id _) + _ :: Int+    , (_ + x) + _ :: Int+    , (_ + 0) + _ :: Int+    , (_ + id _) + _ :: Int+    , (x + _) + _ :: Int+    , (0 + _) + _ :: Int+    , (id _ + _) + _ :: Int+    , _ * _ + _ :: Int+    , f _ + _ :: Int+    , head xs + _ :: Int+    , head [] + _ :: Int+    , head (_:_) + _ :: Int+    , ord c + _ :: Int+    , ord 'a' + _ :: Int+    , y * _ :: Int+    , 1 * _ :: Int+    , id x * _ :: Int+    , id 0 * _ :: Int+    , id (id _) * _ :: Int+    , negate _ * _ :: Int+    , abs _ * _ :: Int+    , (_ + _) * _ :: Int+    , head _ * _ :: Int+    , ord _ * _ :: Int+    , h _ :: Int+    , head zs :: Int+    , head [0,0] :: Int+    , head [1] :: Int+    , head (_:ys) :: Int+    , head (_:[0]) :: Int+    , head (_:_:xs) :: Int+    , head [_,_] :: Int+    , head (_:_:_:_) :: Int+    , head (_:x:_) :: Int+    , head (_:0:_) :: Int+    , head (_:id _:_) :: Int+    , head (_:tail _) :: Int+    , head (_:(_ ++ _)) :: Int+    , head (x:xs) :: Int+    , head [x] :: Int+    , head (x:_:_) :: Int+    , head (0:xs) :: Int+    , head [0] :: Int+    , head (0:_:_) :: Int+    , head (id _:xs) :: Int+    , head [id _] :: Int+    , head (id _:_:_) :: Int+    , head (y:_) :: Int+    , head (1:_) :: Int+    , head (id x:_) :: Int+    , head (id 0:_) :: Int+    , head (id (id _):_) :: Int+    , head (negate _:_) :: Int+    , head (abs _:_) :: Int+    , head (_ + _:_) :: Int+    , head (head _:_) :: Int+    , head (ord _:_) :: Int+    , head (tail xs) :: Int+    , head (tail []) :: Int+    , head (tail (_:_)) :: Int+    , head (_ ++ xs) :: Int+    , head (_ ++ []) :: Int+    , head (_ ++ (_:_)) :: Int+    , head (xs ++ _) :: Int+    , head ([] ++ _) :: Int+    , head ((_:_) ++ _) :: Int+    , head (sort _) :: Int+    , head (insert _ _) :: Int+    , ord e :: Int+    , ord 'b' :: Int+    , p' :: Bool+    , not r :: Bool+    , not (not q) :: Bool+    , not (not (not p)) :: Bool+    , not (not (not False)) :: Bool+    , not (not (not True)) :: Bool+    , not (not (not (not _))) :: Bool+    , not (not (_ || _)) :: Bool+    , not (_ || p) :: Bool+    , not (_ || False) :: Bool+    , not (_ || True) :: Bool+    , not (_ || not _) :: Bool+    , not (p || _) :: Bool+    , not (False || _) :: Bool+    , not (True || _) :: Bool+    , not (not _ || _) :: Bool+    , not (_ && _) :: Bool+    , not (_ == _) :: Bool+    , not (_ == _) :: Bool+    , not (odd _) :: Bool+    , not (even _) :: Bool+    , not (elem _ _) :: Bool+    , _ || q :: Bool+    , _ || not p :: Bool+    , _ || not False :: Bool+    , _ || not True :: Bool+    , _ || not (not _) :: Bool+    , _ || (_ || _) :: Bool+    , p || p :: Bool+    , p || False :: Bool+    , p || True :: Bool+    , p || not _ :: Bool+    , False || p :: Bool+    , False || False :: Bool+    , False || True :: Bool+    , False || not _ :: Bool+    , True || p :: Bool+    , True || False :: Bool+    , True || True :: Bool+    , True || not _ :: Bool+    , not _ || p :: Bool+    , not _ || False :: Bool+    , not _ || True :: Bool+    , not _ || not _ :: Bool+    , _ && p :: Bool+    , _ && False :: Bool+    , _ && True :: Bool+    , _ && not _ :: Bool+    , q || _ :: Bool+    , not p || _ :: Bool+    , not False || _ :: Bool+    , not True || _ :: Bool+    , not (not _) || _ :: Bool+    , (_ || _) || _ :: Bool+    , p && _ :: Bool+    , False && _ :: Bool+    , True && _ :: Bool+    , not _ && _ :: Bool+    , _ ==> _ :: Bool+    , _ == x :: Bool+    , _ == 0 :: Bool+    , _ == id _ :: Bool+    , x == _ :: Bool+    , 0 == _ :: Bool+    , id _ == _ :: Bool+    , _ == p :: Bool+    , _ == False :: Bool+    , _ == True :: Bool+    , _ == not _ :: Bool+    , p == _ :: Bool+    , False == _ :: Bool+    , True == _ :: Bool+    , not _ == _ :: Bool+    , _ <= _ :: Bool+    , _ <= _ :: Bool+    , odd x :: Bool+    , odd 0 :: Bool+    , odd (id _) :: Bool+    , even x :: Bool+    , even 0 :: Bool+    , even (id _) :: Bool+    , elem _ xs :: Bool+    , elem _ [] :: Bool+    , elem _ (_:_) :: Bool+    , elem x _ :: Bool+    , elem 0 _ :: Bool+    , elem (id _) _ :: Bool+    , c' :: Char+    , 'A' :: Char+    , xs' :: [Int]+    , [0,0,0] :: [Int]+    , [0,1] :: [Int]+    , [1,0] :: [Int]+    , [-1] :: [Int]+    , _:zs :: [Int]+    , _:[0,0] :: [Int]+    , _:[1] :: [Int]+    , _:_:ys :: [Int]+    , _:_:[0] :: [Int]+    , _:_:_:xs :: [Int]+    , [_,_,_] :: [Int]+    , _:_:_:_:_ :: [Int]+    , _:_:x:_ :: [Int]+    , _:_:0:_ :: [Int]+    , _:_:id _:_ :: [Int]+    , _:_:tail _ :: [Int]+    , _:_:(_ ++ _) :: [Int]+    , _:x:xs :: [Int]+    , [_,x] :: [Int]+    , _:x:_:_ :: [Int]+    , _:0:xs :: [Int]+    , [_,0] :: [Int]+    , _:0:_:_ :: [Int]+    , _:id _:xs :: [Int]+    , [_,id _] :: [Int]+    , _:id _:_:_ :: [Int]+    , _:y:_ :: [Int]+    , _:1:_ :: [Int]+    , _:id x:_ :: [Int]+    , _:id 0:_ :: [Int]+    , _:id (id _):_ :: [Int]+    , _:negate _:_ :: [Int]+    , _:abs _:_ :: [Int]+    , _:_ + _:_ :: [Int]+    , _:head _:_ :: [Int]+    , _:ord _:_ :: [Int]+    , _:tail xs :: [Int]+    , _:tail [] :: [Int]+    , _:tail (_:_) :: [Int]+    , _:(_ ++ xs) :: [Int]+    , _:(_ ++ []) :: [Int]+    , _:(_ ++ (_:_)) :: [Int]+    , _:(xs ++ _) :: [Int]+    , _:([] ++ _) :: [Int]+    , _:((_:_) ++ _) :: [Int]+    , _:sort _ :: [Int]+    , _:insert _ _ :: [Int]+    , x:ys :: [Int]+    , x:[0] :: [Int]+    , x:_:xs :: [Int]+    , [x,_] :: [Int]+    , x:_:_:_ :: [Int]+    , x:x:_ :: [Int]+    , x:0:_ :: [Int]+    , x:id _:_ :: [Int]+    , x:tail _ :: [Int]+    , x:(_ ++ _) :: [Int]+    , 0:ys :: [Int]+    , 0:[0] :: [Int]+    , 0:_:xs :: [Int]+    , [0,_] :: [Int]+    , 0:_:_:_ :: [Int]+    , 0:x:_ :: [Int]+    , 0:0:_ :: [Int]+    , 0:id _:_ :: [Int]+    , 0:tail _ :: [Int]+    , 0:(_ ++ _) :: [Int]+    , id _:ys :: [Int]+    , id _:[0] :: [Int]+    , id _:_:xs :: [Int]+    , [id _,_] :: [Int]+    , id _:_:_:_ :: [Int]+    , id _:x:_ :: [Int]+    , id _:0:_ :: [Int]+    , id _:id _:_ :: [Int]+    , id _:tail _ :: [Int]+    , id _:(_ ++ _) :: [Int]+    , y:xs :: [Int]+    , [y] :: [Int]+    , y:_:_ :: [Int]+    , 1:xs :: [Int]+    , [1] :: [Int]+    , 1:_:_ :: [Int]+    , id x:xs :: [Int]+    , [id x] :: [Int]+    , id x:_:_ :: [Int]+    , id 0:xs :: [Int]+    , [id 0] :: [Int]+    , id 0:_:_ :: [Int]+    , id (id _):xs :: [Int]+    , [id (id _)] :: [Int]+    , id (id _):_:_ :: [Int]+    , negate _:xs :: [Int]+    , [negate _] :: [Int]+    , negate _:_:_ :: [Int]+    , abs _:xs :: [Int]+    , [abs _] :: [Int]+    , abs _:_:_ :: [Int]+    , _ + _:xs :: [Int]+    , [_ + _] :: [Int]+    , _ + _:_:_ :: [Int]+    , head _:xs :: [Int]+    , [head _] :: [Int]+    , head _:_:_ :: [Int]+    , ord _:xs :: [Int]+    , [ord _] :: [Int]+    , ord _:_:_ :: [Int]+    , z:_ :: [Int]+    , (-1):_ :: [Int]+    , id y:_ :: [Int]+    , id 1:_ :: [Int]+    , id (id x):_ :: [Int]+    , id (id 0):_ :: [Int]+    , id (id (id _)):_ :: [Int]+    , id (negate _):_ :: [Int]+    , id (abs _):_ :: [Int]+    , id (_ + _):_ :: [Int]+    , id (head _):_ :: [Int]+    , id (ord _):_ :: [Int]+    , negate x:_ :: [Int]+    , negate 0:_ :: [Int]+    , negate (id _):_ :: [Int]+    , abs x:_ :: [Int]+    , abs 0:_ :: [Int]+    , abs (id _):_ :: [Int]+    , _ + x:_ :: [Int]+    , _ + 0:_ :: [Int]+    , _ + id _:_ :: [Int]+    , x + _:_ :: [Int]+    , 0 + _:_ :: [Int]+    , id _ + _:_ :: [Int]+    , _ * _:_ :: [Int]+    , f _:_ :: [Int]+    , head xs:_ :: [Int]+    , head []:_ :: [Int]+    , head (_:_):_ :: [Int]+    , ord c:_ :: [Int]+    , ord 'a':_ :: [Int]+    , tail ys :: [Int]+    , tail [0] :: [Int]+    , tail (_:xs) :: [Int]+    , tail [_] :: [Int]+    , tail (_:_:_) :: [Int]+    , tail (x:_) :: [Int]+    , tail (0:_) :: [Int]+    , tail (id _:_) :: [Int]+    , tail (tail _) :: [Int]+    , tail (_ ++ _) :: [Int]+    , _ ++ ys :: [Int]+    , _ ++ [0] :: [Int]+    , _ ++ (_:xs) :: [Int]+    , _ ++ [_] :: [Int]+    , _ ++ (_:_:_) :: [Int]+    , _ ++ (x:_) :: [Int]+    , _ ++ (0:_) :: [Int]+    , _ ++ (id _:_) :: [Int]+    , _ ++ tail _ :: [Int]+    , _ ++ (_ ++ _) :: [Int]+    , xs ++ xs :: [Int]+    , xs ++ [] :: [Int]+    , xs ++ (_:_) :: [Int]+    , [] ++ xs :: [Int]+    , [] ++ [] :: [Int]+    , [] ++ (_:_) :: [Int]+    , (_:_) ++ xs :: [Int]+    , (_:_) ++ [] :: [Int]+    , (_:_) ++ (_:_) :: [Int]+    , ys ++ _ :: [Int]+    , [0] ++ _ :: [Int]+    , (_:xs) ++ _ :: [Int]+    , [_] ++ _ :: [Int]+    , (_:_:_) ++ _ :: [Int]+    , (x:_) ++ _ :: [Int]+    , (0:_) ++ _ :: [Int]+    , (id _:_) ++ _ :: [Int]+    , tail _ ++ _ :: [Int]+    , (_ ++ _) ++ _ :: [Int]+    , sort xs :: [Int]+    , sort [] :: [Int]+    , sort (_:_) :: [Int]+    , insert _ xs :: [Int]+    , insert _ [] :: [Int]+    , insert _ (_:_) :: [Int]+    , insert x _ :: [Int]+    , insert 0 _ :: [Int]+    , insert (id _) _ :: [Int]+    , (y +) :: Int -> Int+    , (1 +) :: Int -> Int+    , (id x +) :: Int -> Int+    , (id 0 +) :: Int -> Int+    , (id (id _) +) :: Int -> Int+    , (negate _ +) :: Int -> Int+    , (abs _ +) :: Int -> Int+    , ((_ + _) +) :: Int -> Int+    , (head _ +) :: Int -> Int+    , (ord _ +) :: Int -> Int+    , (x *) :: Int -> Int+    , (0 *) :: Int -> Int+    , (id _ *) :: Int -> Int+    , g :: Int -> Int+    , (p ||) :: Bool -> Bool+    , (False ||) :: Bool -> Bool+    , (True ||) :: Bool -> Bool+    , (not _ ||) :: Bool -> Bool+    , (_ &&) :: Bool -> Bool+    , (==>) :: Bool -> Bool -> Bool+    ]+  , [ z' :: Int+    , 3 :: Int+    , id y' :: Int+    , id (-2) :: Int+    , id (id x') :: Int+    , id (id 2) :: Int+    , id (id (id z)) :: Int+    , id (id (id (-1))) :: Int+    , id (id (id (id y))) :: Int+    , id (id (id (id 1))) :: Int+    , id (id (id (id (id x)))) :: Int+    , id (id (id (id (id 0)))) :: Int+    , id (id (id (id (id (id _))))) :: Int+    , id (id (id (id (negate _)))) :: Int+    , id (id (id (id (abs _)))) :: Int+    , id (id (id (id (_ + _)))) :: Int+    , id (id (id (id (head _)))) :: Int+    , id (id (id (id (ord _)))) :: Int+    , id (id (id (negate x))) :: Int+    , id (id (id (negate 0))) :: Int+    , id (id (id (negate (id _)))) :: Int+    , id (id (id (abs x))) :: Int+    , id (id (id (abs 0))) :: Int+    , id (id (id (abs (id _)))) :: Int+    , id (id (id (_ + x))) :: Int+    , id (id (id (_ + 0))) :: Int+    , id (id (id (_ + id _))) :: Int+    , id (id (id (x + _))) :: Int+    , id (id (id (0 + _))) :: Int+    , id (id (id (id _ + _))) :: Int+    , id (id (id (_ * _))) :: Int+    , id (id (id (f _))) :: Int+    , id (id (id (head xs))) :: Int+    , id (id (id (head []))) :: Int+    , id (id (id (head (_:_)))) :: Int+    , id (id (id (ord c))) :: Int+    , id (id (id (ord 'a'))) :: Int+    , id (id (negate y)) :: Int+    , id (id (negate 1)) :: Int+    , id (id (negate (id x))) :: Int+    , id (id (negate (id 0))) :: Int+    , id (id (negate (id (id _)))) :: Int+    , id (id (negate (negate _))) :: Int+    , id (id (negate (abs _))) :: Int+    , id (id (negate (_ + _))) :: Int+    , id (id (negate (head _))) :: Int+    , id (id (negate (ord _))) :: Int+    , id (id (abs y)) :: Int+    , id (id (abs 1)) :: Int+    , id (id (abs (id x))) :: Int+    , id (id (abs (id 0))) :: Int+    , id (id (abs (id (id _)))) :: Int+    , id (id (abs (negate _))) :: Int+    , id (id (abs (abs _))) :: Int+    , id (id (abs (_ + _))) :: Int+    , id (id (abs (head _))) :: Int+    , id (id (abs (ord _))) :: Int+    , id (id (_ + y)) :: Int+    , id (id (_ + 1)) :: Int+    , id (id (_ + id x)) :: Int+    , id (id (_ + id 0)) :: Int+    , id (id (_ + id (id _))) :: Int+    , id (id (_ + negate _)) :: Int+    , id (id (_ + abs _)) :: Int+    , id (id (_ + (_ + _))) :: Int+    , id (id (_ + head _)) :: Int+    , id (id (_ + ord _)) :: Int+    , id (id (x + x)) :: Int+    , id (id (x + 0)) :: Int+    , id (id (x + id _)) :: Int+    , id (id (0 + x)) :: Int+    , id (id (0 + 0)) :: Int+    , id (id (0 + id _)) :: Int+    , id (id (id _ + x)) :: Int+    , id (id (id _ + 0)) :: Int+    , id (id (id _ + id _)) :: Int+    , id (id (_ * x)) :: Int+    , id (id (_ * 0)) :: Int+    , id (id (_ * id _)) :: Int+    , id (id (f x)) :: Int+    , id (id (f 0)) :: Int+    , id (id (f (id _))) :: Int+    , id (id (y + _)) :: Int+    , id (id (1 + _)) :: Int+    , id (id (id x + _)) :: Int+    , id (id (id 0 + _)) :: Int+    , id (id (id (id _) + _)) :: Int+    , id (id (negate _ + _)) :: Int+    , id (id (abs _ + _)) :: Int+    , id (id ((_ + _) + _)) :: Int+    , id (id (head _ + _)) :: Int+    , id (id (ord _ + _)) :: Int+    , id (id (x * _)) :: Int+    , id (id (0 * _)) :: Int+    , id (id (id _ * _)) :: Int+    , id (id (g _)) :: Int+    , id (id (head ys)) :: Int+    , id (id (head [0])) :: Int+    , id (id (head (_:xs))) :: Int+    , id (id (head [_])) :: Int+    , id (id (head (_:_:_))) :: Int+    , id (id (head (x:_))) :: Int+    , id (id (head (0:_))) :: Int+    , id (id (head (id _:_))) :: Int+    , id (id (head (tail _))) :: Int+    , id (id (head (_ ++ _))) :: Int+    , id (id (ord d)) :: Int+    , id (id (ord ' ')) :: Int+    , id (negate z) :: Int+    , id (negate (-1)) :: Int+    , id (negate (id y)) :: Int+    , id (negate (id 1)) :: Int+    , id (negate (id (id x))) :: Int+    , id (negate (id (id 0))) :: Int+    , id (negate (id (id (id _)))) :: Int+    , id (negate (id (negate _))) :: Int+    , id (negate (id (abs _))) :: Int+    , id (negate (id (_ + _))) :: Int+    , id (negate (id (head _))) :: Int+    , id (negate (id (ord _))) :: Int+    , id (negate (negate x)) :: Int+    , id (negate (negate 0)) :: Int+    , id (negate (negate (id _))) :: Int+    , id (negate (abs x)) :: Int+    , id (negate (abs 0)) :: Int+    , id (negate (abs (id _))) :: Int+    , id (negate (_ + x)) :: Int+    , id (negate (_ + 0)) :: Int+    , id (negate (_ + id _)) :: Int+    , id (negate (x + _)) :: Int+    , id (negate (0 + _)) :: Int+    , id (negate (id _ + _)) :: Int+    , id (negate (_ * _)) :: Int+    , id (negate (f _)) :: Int+    , id (negate (head xs)) :: Int+    , id (negate (head [])) :: Int+    , id (negate (head (_:_))) :: Int+    , id (negate (ord c)) :: Int+    , id (negate (ord 'a')) :: Int+    , id (abs z) :: Int+    , id (abs (-1)) :: Int+    , id (abs (id y)) :: Int+    , id (abs (id 1)) :: Int+    , id (abs (id (id x))) :: Int+    , id (abs (id (id 0))) :: Int+    , id (abs (id (id (id _)))) :: Int+    , id (abs (id (negate _))) :: Int+    , id (abs (id (abs _))) :: Int+    , id (abs (id (_ + _))) :: Int+    , id (abs (id (head _))) :: Int+    , id (abs (id (ord _))) :: Int+    , id (abs (negate x)) :: Int+    , id (abs (negate 0)) :: Int+    , id (abs (negate (id _))) :: Int+    , id (abs (abs x)) :: Int+    , id (abs (abs 0)) :: Int+    , id (abs (abs (id _))) :: Int+    , id (abs (_ + x)) :: Int+    , id (abs (_ + 0)) :: Int+    , id (abs (_ + id _)) :: Int+    , id (abs (x + _)) :: Int+    , id (abs (0 + _)) :: Int+    , id (abs (id _ + _)) :: Int+    , id (abs (_ * _)) :: Int+    , id (abs (f _)) :: Int+    , id (abs (head xs)) :: Int+    , id (abs (head [])) :: Int+    , id (abs (head (_:_))) :: Int+    , id (abs (ord c)) :: Int+    , id (abs (ord 'a')) :: Int+    , id (_ + z) :: Int+    , id (_ + (-1)) :: Int+    , id (_ + id y) :: Int+    , id (_ + id 1) :: Int+    , id (_ + id (id x)) :: Int+    , id (_ + id (id 0)) :: Int+    , id (_ + id (id (id _))) :: Int+    , id (_ + id (negate _)) :: Int+    , id (_ + id (abs _)) :: Int+    , id (_ + id (_ + _)) :: Int+    , id (_ + id (head _)) :: Int+    , id (_ + id (ord _)) :: Int+    , id (_ + negate x) :: Int+    , id (_ + negate 0) :: Int+    , id (_ + negate (id _)) :: Int+    , id (_ + abs x) :: Int+    , id (_ + abs 0) :: Int+    , id (_ + abs (id _)) :: Int+    , id (_ + (_ + x)) :: Int+    , id (_ + (_ + 0)) :: Int+    , id (_ + (_ + id _)) :: Int+    , id (_ + (x + _)) :: Int+    , id (_ + (0 + _)) :: Int+    , id (_ + (id _ + _)) :: Int+    , id (_ + _ * _) :: Int+    , id (_ + f _) :: Int+    , id (_ + head xs) :: Int+    , id (_ + head []) :: Int+    , id (_ + head (_:_)) :: Int+    , id (_ + ord c) :: Int+    , id (_ + ord 'a') :: Int+    , id (x + y) :: Int+    , id (x + 1) :: Int+    , id (x + id x) :: Int+    , id (x + id 0) :: Int+    , id (x + id (id _)) :: Int+    , id (x + negate _) :: Int+    , id (x + abs _) :: Int+    , id (x + (_ + _)) :: Int+    , id (x + head _) :: Int+    , id (x + ord _) :: Int+    , id (0 + y) :: Int+    , id (0 + 1) :: Int+    , id (0 + id x) :: Int+    , id (0 + id 0) :: Int+    , id (0 + id (id _)) :: Int+    , id (0 + negate _) :: Int+    , id (0 + abs _) :: Int+    , id (0 + (_ + _)) :: Int+    , id (0 + head _) :: Int+    , id (0 + ord _) :: Int+    , id (id _ + y) :: Int+    , id (id _ + 1) :: Int+    , id (id _ + id x) :: Int+    , id (id _ + id 0) :: Int+    , id (id _ + id (id _)) :: Int+    , id (id _ + negate _) :: Int+    , id (id _ + abs _) :: Int+    , id (id _ + (_ + _)) :: Int+    , id (id _ + head _) :: Int+    , id (id _ + ord _) :: Int+    , id (_ * y) :: Int+    , id (_ * 1) :: Int+    , id (_ * id x) :: Int+    , id (_ * id 0) :: Int+    , id (_ * id (id _)) :: Int+    , id (_ * negate _) :: Int+    , id (_ * abs _) :: Int+    , id (_ * (_ + _)) :: Int+    , id (_ * head _) :: Int+    , id (_ * ord _) :: Int+    , id (f y) :: Int+    , id (f 1) :: Int+    , id (f (id x)) :: Int+    , id (f (id 0)) :: Int+    , id (f (id (id _))) :: Int+    , id (f (negate _)) :: Int+    , id (f (abs _)) :: Int+    , id (f (_ + _)) :: Int+    , id (f (head _)) :: Int+    , id (f (ord _)) :: Int+    , id (y + x) :: Int+    , id (y + 0) :: Int+    , id (y + id _) :: Int+    , id (1 + x) :: Int+    , id (1 + 0) :: Int+    , id (1 + id _) :: Int+    , id (id x + x) :: Int+    , id (id x + 0) :: Int+    , id (id x + id _) :: Int+    , id (id 0 + x) :: Int+    , id (id 0 + 0) :: Int+    , id (id 0 + id _) :: Int+    , id (id (id _) + x) :: Int+    , id (id (id _) + 0) :: Int+    , id (id (id _) + id _) :: Int+    , id (negate _ + x) :: Int+    , id (negate _ + 0) :: Int+    , id (negate _ + id _) :: Int+    , id (abs _ + x) :: Int+    , id (abs _ + 0) :: Int+    , id (abs _ + id _) :: Int+    , id ((_ + _) + x) :: Int+    , id ((_ + _) + 0) :: Int+    , id ((_ + _) + id _) :: Int+    , id (head _ + x) :: Int+    , id (head _ + 0) :: Int+    , id (head _ + id _) :: Int+    , id (ord _ + x) :: Int+    , id (ord _ + 0) :: Int+    , id (ord _ + id _) :: Int+    , id (x * x) :: Int+    , id (x * 0) :: Int+    , id (x * id _) :: Int+    , id (0 * x) :: Int+    , id (0 * 0) :: Int+    , id (0 * id _) :: Int+    , id (id _ * x) :: Int+    , id (id _ * 0) :: Int+    , id (id _ * id _) :: Int+    , id (g x) :: Int+    , id (g 0) :: Int+    , id (g (id _)) :: Int+    , id (z + _) :: Int+    , id ((-1) + _) :: Int+    , id (id y + _) :: Int+    , id (id 1 + _) :: Int+    , id (id (id x) + _) :: Int+    , id (id (id 0) + _) :: Int+    , id (id (id (id _)) + _) :: Int+    , id (id (negate _) + _) :: Int+    , id (id (abs _) + _) :: Int+    , id (id (_ + _) + _) :: Int+    , id (id (head _) + _) :: Int+    , id (id (ord _) + _) :: Int+    , id (negate x + _) :: Int+    , id (negate 0 + _) :: Int+    , id (negate (id _) + _) :: Int+    , id (abs x + _) :: Int+    , id (abs 0 + _) :: Int+    , id (abs (id _) + _) :: Int+    , id ((_ + x) + _) :: Int+    , id ((_ + 0) + _) :: Int+    , id ((_ + id _) + _) :: Int+    , id ((x + _) + _) :: Int+    , id ((0 + _) + _) :: Int+    , id ((id _ + _) + _) :: Int+    , id (_ * _ + _) :: Int+    , id (f _ + _) :: Int+    , id (head xs + _) :: Int+    , id (head [] + _) :: Int+    , id (head (_:_) + _) :: Int+    , id (ord c + _) :: Int+    , id (ord 'a' + _) :: Int+    , id (y * _) :: Int+    , id (1 * _) :: Int+    , id (id x * _) :: Int+    , id (id 0 * _) :: Int+    , id (id (id _) * _) :: Int+    , id (negate _ * _) :: Int+    , id (abs _ * _) :: Int+    , id ((_ + _) * _) :: Int+    , id (head _ * _) :: Int+    , id (ord _ * _) :: Int+    , id (h _) :: Int+    , id (head zs) :: Int+    , id (head [0,0]) :: Int+    , id (head [1]) :: Int+    , id (head (_:ys)) :: Int+    , id (head (_:[0])) :: Int+    , id (head (_:_:xs)) :: Int+    , id (head [_,_]) :: Int+    , id (head (_:_:_:_)) :: Int+    , id (head (_:x:_)) :: Int+    , id (head (_:0:_)) :: Int+    , id (head (_:id _:_)) :: Int+    , id (head (_:tail _)) :: Int+    , id (head (_:(_ ++ _))) :: Int+    , id (head (x:xs)) :: Int+    , id (head [x]) :: Int+    , id (head (x:_:_)) :: Int+    , id (head (0:xs)) :: Int+    , id (head [0]) :: Int+    , id (head (0:_:_)) :: Int+    , id (head (id _:xs)) :: Int+    , id (head [id _]) :: Int+    , id (head (id _:_:_)) :: Int+    , id (head (y:_)) :: Int+    , id (head (1:_)) :: Int+    , id (head (id x:_)) :: Int+    , id (head (id 0:_)) :: Int+    , id (head (id (id _):_)) :: Int+    , id (head (negate _:_)) :: Int+    , id (head (abs _:_)) :: Int+    , id (head (_ + _:_)) :: Int+    , id (head (head _:_)) :: Int+    , id (head (ord _:_)) :: Int+    , id (head (tail xs)) :: Int+    , id (head (tail [])) :: Int+    , id (head (tail (_:_))) :: Int+    , id (head (_ ++ xs)) :: Int+    , id (head (_ ++ [])) :: Int+    , id (head (_ ++ (_:_))) :: Int+    , id (head (xs ++ _)) :: Int+    , id (head ([] ++ _)) :: Int+    , id (head ((_:_) ++ _)) :: Int+    , id (head (sort _)) :: Int+    , id (head (insert _ _)) :: Int+    , id (ord e) :: Int+    , id (ord 'b') :: Int+    , negate x' :: Int+    , negate 2 :: Int+    , negate (id z) :: Int+    , negate (id (-1)) :: Int+    , negate (id (id y)) :: Int+    , negate (id (id 1)) :: Int+    , negate (id (id (id x))) :: Int+    , negate (id (id (id 0))) :: Int+    , negate (id (id (id (id _)))) :: Int+    , negate (id (id (negate _))) :: Int+    , negate (id (id (abs _))) :: Int+    , negate (id (id (_ + _))) :: Int+    , negate (id (id (head _))) :: Int+    , negate (id (id (ord _))) :: Int+    , negate (id (negate x)) :: Int+    , negate (id (negate 0)) :: Int+    , negate (id (negate (id _))) :: Int+    , negate (id (abs x)) :: Int+    , negate (id (abs 0)) :: Int+    , negate (id (abs (id _))) :: Int+    , negate (id (_ + x)) :: Int+    , negate (id (_ + 0)) :: Int+    , negate (id (_ + id _)) :: Int+    , negate (id (x + _)) :: Int+    , negate (id (0 + _)) :: Int+    , negate (id (id _ + _)) :: Int+    , negate (id (_ * _)) :: Int+    , negate (id (f _)) :: Int+    , negate (id (head xs)) :: Int+    , negate (id (head [])) :: Int+    , negate (id (head (_:_))) :: Int+    , negate (id (ord c)) :: Int+    , negate (id (ord 'a')) :: Int+    , negate (negate y) :: Int+    , negate (negate 1) :: Int+    , negate (negate (id x)) :: Int+    , negate (negate (id 0)) :: Int+    , negate (negate (id (id _))) :: Int+    , negate (negate (negate _)) :: Int+    , negate (negate (abs _)) :: Int+    , negate (negate (_ + _)) :: Int+    , negate (negate (head _)) :: Int+    , negate (negate (ord _)) :: Int+    , negate (abs y) :: Int+    , negate (abs 1) :: Int+    , negate (abs (id x)) :: Int+    , negate (abs (id 0)) :: Int+    , negate (abs (id (id _))) :: Int+    , negate (abs (negate _)) :: Int+    , negate (abs (abs _)) :: Int+    , negate (abs (_ + _)) :: Int+    , negate (abs (head _)) :: Int+    , negate (abs (ord _)) :: Int+    , negate (_ + y) :: Int+    , negate (_ + 1) :: Int+    , negate (_ + id x) :: Int+    , negate (_ + id 0) :: Int+    , negate (_ + id (id _)) :: Int+    , negate (_ + negate _) :: Int+    , negate (_ + abs _) :: Int+    , negate (_ + (_ + _)) :: Int+    , negate (_ + head _) :: Int+    , negate (_ + ord _) :: Int+    , negate (x + x) :: Int+    , negate (x + 0) :: Int+    , negate (x + id _) :: Int+    , negate (0 + x) :: Int+    , negate (0 + 0) :: Int+    , negate (0 + id _) :: Int+    , negate (id _ + x) :: Int+    , negate (id _ + 0) :: Int+    , negate (id _ + id _) :: Int+    , negate (_ * x) :: Int+    , negate (_ * 0) :: Int+    , negate (_ * id _) :: Int+    , negate (f x) :: Int+    , negate (f 0) :: Int+    , negate (f (id _)) :: Int+    , negate (y + _) :: Int+    , negate (1 + _) :: Int+    , negate (id x + _) :: Int+    , negate (id 0 + _) :: Int+    , negate (id (id _) + _) :: Int+    , negate (negate _ + _) :: Int+    , negate (abs _ + _) :: Int+    , negate ((_ + _) + _) :: Int+    , negate (head _ + _) :: Int+    , negate (ord _ + _) :: Int+    , negate (x * _) :: Int+    , negate (0 * _) :: Int+    , negate (id _ * _) :: Int+    , negate (g _) :: Int+    , negate (head ys) :: Int+    , negate (head [0]) :: Int+    , negate (head (_:xs)) :: Int+    , negate (head [_]) :: Int+    , negate (head (_:_:_)) :: Int+    , negate (head (x:_)) :: Int+    , negate (head (0:_)) :: Int+    , negate (head (id _:_)) :: Int+    , negate (head (tail _)) :: Int+    , negate (head (_ ++ _)) :: Int+    , negate (ord d) :: Int+    , negate (ord ' ') :: Int+    , abs x' :: Int+    , abs 2 :: Int+    , abs (id z) :: Int+    , abs (id (-1)) :: Int+    , abs (id (id y)) :: Int+    , abs (id (id 1)) :: Int+    , abs (id (id (id x))) :: Int+    , abs (id (id (id 0))) :: Int+    , abs (id (id (id (id _)))) :: Int+    , abs (id (id (negate _))) :: Int+    , abs (id (id (abs _))) :: Int+    , abs (id (id (_ + _))) :: Int+    , abs (id (id (head _))) :: Int+    , abs (id (id (ord _))) :: Int+    , abs (id (negate x)) :: Int+    , abs (id (negate 0)) :: Int+    , abs (id (negate (id _))) :: Int+    , abs (id (abs x)) :: Int+    , abs (id (abs 0)) :: Int+    , abs (id (abs (id _))) :: Int+    , abs (id (_ + x)) :: Int+    , abs (id (_ + 0)) :: Int+    , abs (id (_ + id _)) :: Int+    , abs (id (x + _)) :: Int+    , abs (id (0 + _)) :: Int+    , abs (id (id _ + _)) :: Int+    , abs (id (_ * _)) :: Int+    , abs (id (f _)) :: Int+    , abs (id (head xs)) :: Int+    , abs (id (head [])) :: Int+    , abs (id (head (_:_))) :: Int+    , abs (id (ord c)) :: Int+    , abs (id (ord 'a')) :: Int+    , abs (negate y) :: Int+    , abs (negate 1) :: Int+    , abs (negate (id x)) :: Int+    , abs (negate (id 0)) :: Int+    , abs (negate (id (id _))) :: Int+    , abs (negate (negate _)) :: Int+    , abs (negate (abs _)) :: Int+    , abs (negate (_ + _)) :: Int+    , abs (negate (head _)) :: Int+    , abs (negate (ord _)) :: Int+    , abs (abs y) :: Int+    , abs (abs 1) :: Int+    , abs (abs (id x)) :: Int+    , abs (abs (id 0)) :: Int+    , abs (abs (id (id _))) :: Int+    , abs (abs (negate _)) :: Int+    , abs (abs (abs _)) :: Int+    , abs (abs (_ + _)) :: Int+    , abs (abs (head _)) :: Int+    , abs (abs (ord _)) :: Int+    , abs (_ + y) :: Int+    , abs (_ + 1) :: Int+    , abs (_ + id x) :: Int+    , abs (_ + id 0) :: Int+    , abs (_ + id (id _)) :: Int+    , abs (_ + negate _) :: Int+    , abs (_ + abs _) :: Int+    , abs (_ + (_ + _)) :: Int+    , abs (_ + head _) :: Int+    , abs (_ + ord _) :: Int+    , abs (x + x) :: Int+    , abs (x + 0) :: Int+    , abs (x + id _) :: Int+    , abs (0 + x) :: Int+    , abs (0 + 0) :: Int+    , abs (0 + id _) :: Int+    , abs (id _ + x) :: Int+    , abs (id _ + 0) :: Int+    , abs (id _ + id _) :: Int+    , abs (_ * x) :: Int+    , abs (_ * 0) :: Int+    , abs (_ * id _) :: Int+    , abs (f x) :: Int+    , abs (f 0) :: Int+    , abs (f (id _)) :: Int+    , abs (y + _) :: Int+    , abs (1 + _) :: Int+    , abs (id x + _) :: Int+    , abs (id 0 + _) :: Int+    , abs (id (id _) + _) :: Int+    , abs (negate _ + _) :: Int+    , abs (abs _ + _) :: Int+    , abs ((_ + _) + _) :: Int+    , abs (head _ + _) :: Int+    , abs (ord _ + _) :: Int+    , abs (x * _) :: Int+    , abs (0 * _) :: Int+    , abs (id _ * _) :: Int+    , abs (g _) :: Int+    , abs (head ys) :: Int+    , abs (head [0]) :: Int+    , abs (head (_:xs)) :: Int+    , abs (head [_]) :: Int+    , abs (head (_:_:_)) :: Int+    , abs (head (x:_)) :: Int+    , abs (head (0:_)) :: Int+    , abs (head (id _:_)) :: Int+    , abs (head (tail _)) :: Int+    , abs (head (_ ++ _)) :: Int+    , abs (ord d) :: Int+    , abs (ord ' ') :: Int+    , _ + x' :: Int+    , _ + 2 :: Int+    , _ + id z :: Int+    , _ + id (-1) :: Int+    , _ + id (id y) :: Int+    , _ + id (id 1) :: Int+    , _ + id (id (id x)) :: Int+    , _ + id (id (id 0)) :: Int+    , _ + id (id (id (id _))) :: Int+    , _ + id (id (negate _)) :: Int+    , _ + id (id (abs _)) :: Int+    , _ + id (id (_ + _)) :: Int+    , _ + id (id (head _)) :: Int+    , _ + id (id (ord _)) :: Int+    , _ + id (negate x) :: Int+    , _ + id (negate 0) :: Int+    , _ + id (negate (id _)) :: Int+    , _ + id (abs x) :: Int+    , _ + id (abs 0) :: Int+    , _ + id (abs (id _)) :: Int+    , _ + id (_ + x) :: Int+    , _ + id (_ + 0) :: Int+    , _ + id (_ + id _) :: Int+    , _ + id (x + _) :: Int+    , _ + id (0 + _) :: Int+    , _ + id (id _ + _) :: Int+    , _ + id (_ * _) :: Int+    , _ + id (f _) :: Int+    , _ + id (head xs) :: Int+    , _ + id (head []) :: Int+    , _ + id (head (_:_)) :: Int+    , _ + id (ord c) :: Int+    , _ + id (ord 'a') :: Int+    , _ + negate y :: Int+    , _ + negate 1 :: Int+    , _ + negate (id x) :: Int+    , _ + negate (id 0) :: Int+    , _ + negate (id (id _)) :: Int+    , _ + negate (negate _) :: Int+    , _ + negate (abs _) :: Int+    , _ + negate (_ + _) :: Int+    , _ + negate (head _) :: Int+    , _ + negate (ord _) :: Int+    , _ + abs y :: Int+    , _ + abs 1 :: Int+    , _ + abs (id x) :: Int+    , _ + abs (id 0) :: Int+    , _ + abs (id (id _)) :: Int+    , _ + abs (negate _) :: Int+    , _ + abs (abs _) :: Int+    , _ + abs (_ + _) :: Int+    , _ + abs (head _) :: Int+    , _ + abs (ord _) :: Int+    , _ + (_ + y) :: Int+    , _ + (_ + 1) :: Int+    , _ + (_ + id x) :: Int+    , _ + (_ + id 0) :: Int+    , _ + (_ + id (id _)) :: Int+    , _ + (_ + negate _) :: Int+    , _ + (_ + abs _) :: Int+    , _ + (_ + (_ + _)) :: Int+    , _ + (_ + head _) :: Int+    , _ + (_ + ord _) :: Int+    , _ + (x + x) :: Int+    , _ + (x + 0) :: Int+    , _ + (x + id _) :: Int+    , _ + (0 + x) :: Int+    , _ + (0 + 0) :: Int+    , _ + (0 + id _) :: Int+    , _ + (id _ + x) :: Int+    , _ + (id _ + 0) :: Int+    , _ + (id _ + id _) :: Int+    , _ + _ * x :: Int+    , _ + _ * 0 :: Int+    , _ + _ * id _ :: Int+    , _ + f x :: Int+    , _ + f 0 :: Int+    , _ + f (id _) :: Int+    , _ + (y + _) :: Int+    , _ + (1 + _) :: Int+    , _ + (id x + _) :: Int+    , _ + (id 0 + _) :: Int+    , _ + (id (id _) + _) :: Int+    , _ + (negate _ + _) :: Int+    , _ + (abs _ + _) :: Int+    , _ + ((_ + _) + _) :: Int+    , _ + (head _ + _) :: Int+    , _ + (ord _ + _) :: Int+    , _ + x * _ :: Int+    , _ + 0 * _ :: Int+    , _ + id _ * _ :: Int+    , _ + g _ :: Int+    , _ + head ys :: Int+    , _ + head [0] :: Int+    , _ + head (_:xs) :: Int+    , _ + head [_] :: Int+    , _ + head (_:_:_) :: Int+    , _ + head (x:_) :: Int+    , _ + head (0:_) :: Int+    , _ + head (id _:_) :: Int+    , _ + head (tail _) :: Int+    , _ + head (_ ++ _) :: Int+    , _ + ord d :: Int+    , _ + ord ' ' :: Int+    , x + z :: Int+    , x + (-1) :: Int+    , x + id y :: Int+    , x + id 1 :: Int+    , x + id (id x) :: Int+    , x + id (id 0) :: Int+    , x + id (id (id _)) :: Int+    , x + id (negate _) :: Int+    , x + id (abs _) :: Int+    , x + id (_ + _) :: Int+    , x + id (head _) :: Int+    , x + id (ord _) :: Int+    , x + negate x :: Int+    , x + negate 0 :: Int+    , x + negate (id _) :: Int+    , x + abs x :: Int+    , x + abs 0 :: Int+    , x + abs (id _) :: Int+    , x + (_ + x) :: Int+    , x + (_ + 0) :: Int+    , x + (_ + id _) :: Int+    , x + (x + _) :: Int+    , x + (0 + _) :: Int+    , x + (id _ + _) :: Int+    , x + _ * _ :: Int+    , x + f _ :: Int+    , x + head xs :: Int+    , x + head [] :: Int+    , x + head (_:_) :: Int+    , x + ord c :: Int+    , x + ord 'a' :: Int+    , 0 + z :: Int+    , 0 + (-1) :: Int+    , 0 + id y :: Int+    , 0 + id 1 :: Int+    , 0 + id (id x) :: Int+    , 0 + id (id 0) :: Int+    , 0 + id (id (id _)) :: Int+    , 0 + id (negate _) :: Int+    , 0 + id (abs _) :: Int+    , 0 + id (_ + _) :: Int+    , 0 + id (head _) :: Int+    , 0 + id (ord _) :: Int+    , 0 + negate x :: Int+    , 0 + negate 0 :: Int+    , 0 + negate (id _) :: Int+    , 0 + abs x :: Int+    , 0 + abs 0 :: Int+    , 0 + abs (id _) :: Int+    , 0 + (_ + x) :: Int+    , 0 + (_ + 0) :: Int+    , 0 + (_ + id _) :: Int+    , 0 + (x + _) :: Int+    , 0 + (0 + _) :: Int+    , 0 + (id _ + _) :: Int+    , 0 + _ * _ :: Int+    , 0 + f _ :: Int+    , 0 + head xs :: Int+    , 0 + head [] :: Int+    , 0 + head (_:_) :: Int+    , 0 + ord c :: Int+    , 0 + ord 'a' :: Int+    , id _ + z :: Int+    , id _ + (-1) :: Int+    , id _ + id y :: Int+    , id _ + id 1 :: Int+    , id _ + id (id x) :: Int+    , id _ + id (id 0) :: Int+    , id _ + id (id (id _)) :: Int+    , id _ + id (negate _) :: Int+    , id _ + id (abs _) :: Int+    , id _ + id (_ + _) :: Int+    , id _ + id (head _) :: Int+    , id _ + id (ord _) :: Int+    , id _ + negate x :: Int+    , id _ + negate 0 :: Int+    , id _ + negate (id _) :: Int+    , id _ + abs x :: Int+    , id _ + abs 0 :: Int+    , id _ + abs (id _) :: Int+    , id _ + (_ + x) :: Int+    , id _ + (_ + 0) :: Int+    , id _ + (_ + id _) :: Int+    , id _ + (x + _) :: Int+    , id _ + (0 + _) :: Int+    , id _ + (id _ + _) :: Int+    , id _ + _ * _ :: Int+    , id _ + f _ :: Int+    , id _ + head xs :: Int+    , id _ + head [] :: Int+    , id _ + head (_:_) :: Int+    , id _ + ord c :: Int+    , id _ + ord 'a' :: Int+    , _ * z :: Int+    , _ * (-1) :: Int+    , _ * id y :: Int+    , _ * id 1 :: Int+    , _ * id (id x) :: Int+    , _ * id (id 0) :: Int+    , _ * id (id (id _)) :: Int+    , _ * id (negate _) :: Int+    , _ * id (abs _) :: Int+    , _ * id (_ + _) :: Int+    , _ * id (head _) :: Int+    , _ * id (ord _) :: Int+    , _ * negate x :: Int+    , _ * negate 0 :: Int+    , _ * negate (id _) :: Int+    , _ * abs x :: Int+    , _ * abs 0 :: Int+    , _ * abs (id _) :: Int+    , _ * (_ + x) :: Int+    , _ * (_ + 0) :: Int+    , _ * (_ + id _) :: Int+    , _ * (x + _) :: Int+    , _ * (0 + _) :: Int+    , _ * (id _ + _) :: Int+    , _ * (_ * _) :: Int+    , _ * f _ :: Int+    , _ * head xs :: Int+    , _ * head [] :: Int+    , _ * head (_:_) :: Int+    , _ * ord c :: Int+    , _ * ord 'a' :: Int+    , f z :: Int+    , f (-1) :: Int+    , f (id y) :: Int+    , f (id 1) :: Int+    , f (id (id x)) :: Int+    , f (id (id 0)) :: Int+    , f (id (id (id _))) :: Int+    , f (id (negate _)) :: Int+    , f (id (abs _)) :: Int+    , f (id (_ + _)) :: Int+    , f (id (head _)) :: Int+    , f (id (ord _)) :: Int+    , f (negate x) :: Int+    , f (negate 0) :: Int+    , f (negate (id _)) :: Int+    , f (abs x) :: Int+    , f (abs 0) :: Int+    , f (abs (id _)) :: Int+    , f (_ + x) :: Int+    , f (_ + 0) :: Int+    , f (_ + id _) :: Int+    , f (x + _) :: Int+    , f (0 + _) :: Int+    , f (id _ + _) :: Int+    , f (_ * _) :: Int+    , f (f _) :: Int+    , f (head xs) :: Int+    , f (head []) :: Int+    , f (head (_:_)) :: Int+    , f (ord c) :: Int+    , f (ord 'a') :: Int+    , y + y :: Int+    , y + 1 :: Int+    , y + id x :: Int+    , y + id 0 :: Int+    , y + id (id _) :: Int+    , y + negate _ :: Int+    , y + abs _ :: Int+    , y + (_ + _) :: Int+    , y + head _ :: Int+    , y + ord _ :: Int+    , 1 + y :: Int+    , 1 + 1 :: Int+    , 1 + id x :: Int+    , 1 + id 0 :: Int+    , 1 + id (id _) :: Int+    , 1 + negate _ :: Int+    , 1 + abs _ :: Int+    , 1 + (_ + _) :: Int+    , 1 + head _ :: Int+    , 1 + ord _ :: Int+    , id x + y :: Int+    , id x + 1 :: Int+    , id x + id x :: Int+    , id x + id 0 :: Int+    , id x + id (id _) :: Int+    , id x + negate _ :: Int+    , id x + abs _ :: Int+    , id x + (_ + _) :: Int+    , id x + head _ :: Int+    , id x + ord _ :: Int+    , id 0 + y :: Int+    , id 0 + 1 :: Int+    , id 0 + id x :: Int+    , id 0 + id 0 :: Int+    , id 0 + id (id _) :: Int+    , id 0 + negate _ :: Int+    , id 0 + abs _ :: Int+    , id 0 + (_ + _) :: Int+    , id 0 + head _ :: Int+    , id 0 + ord _ :: Int+    , id (id _) + y :: Int+    , id (id _) + 1 :: Int+    , id (id _) + id x :: Int+    , id (id _) + id 0 :: Int+    , id (id _) + id (id _) :: Int+    , id (id _) + negate _ :: Int+    , id (id _) + abs _ :: Int+    , id (id _) + (_ + _) :: Int+    , id (id _) + head _ :: Int+    , id (id _) + ord _ :: Int+    , negate _ + y :: Int+    , negate _ + 1 :: Int+    , negate _ + id x :: Int+    , negate _ + id 0 :: Int+    , negate _ + id (id _) :: Int+    , negate _ + negate _ :: Int+    , negate _ + abs _ :: Int+    , negate _ + (_ + _) :: Int+    , negate _ + head _ :: Int+    , negate _ + ord _ :: Int+    , abs _ + y :: Int+    , abs _ + 1 :: Int+    , abs _ + id x :: Int+    , abs _ + id 0 :: Int+    , abs _ + id (id _) :: Int+    , abs _ + negate _ :: Int+    , abs _ + abs _ :: Int+    , abs _ + (_ + _) :: Int+    , abs _ + head _ :: Int+    , abs _ + ord _ :: Int+    , (_ + _) + y :: Int+    , (_ + _) + 1 :: Int+    , (_ + _) + id x :: Int+    , (_ + _) + id 0 :: Int+    , (_ + _) + id (id _) :: Int+    , (_ + _) + negate _ :: Int+    , (_ + _) + abs _ :: Int+    , (_ + _) + (_ + _) :: Int+    , (_ + _) + head _ :: Int+    , (_ + _) + ord _ :: Int+    , head _ + y :: Int+    , head _ + 1 :: Int+    , head _ + id x :: Int+    , head _ + id 0 :: Int+    , head _ + id (id _) :: Int+    , head _ + negate _ :: Int+    , head _ + abs _ :: Int+    , head _ + (_ + _) :: Int+    , head _ + head _ :: Int+    , head _ + ord _ :: Int+    , ord _ + y :: Int+    , ord _ + 1 :: Int+    , ord _ + id x :: Int+    , ord _ + id 0 :: Int+    , ord _ + id (id _) :: Int+    , ord _ + negate _ :: Int+    , ord _ + abs _ :: Int+    , ord _ + (_ + _) :: Int+    , ord _ + head _ :: Int+    , ord _ + ord _ :: Int+    , x * y :: Int+    , x * 1 :: Int+    , x * id x :: Int+    , x * id 0 :: Int+    , x * id (id _) :: Int+    , x * negate _ :: Int+    , x * abs _ :: Int+    , x * (_ + _) :: Int+    , x * head _ :: Int+    , x * ord _ :: Int+    , 0 * y :: Int+    , 0 * 1 :: Int+    , 0 * id x :: Int+    , 0 * id 0 :: Int+    , 0 * id (id _) :: Int+    , 0 * negate _ :: Int+    , 0 * abs _ :: Int+    , 0 * (_ + _) :: Int+    , 0 * head _ :: Int+    , 0 * ord _ :: Int+    , id _ * y :: Int+    , id _ * 1 :: Int+    , id _ * id x :: Int+    , id _ * id 0 :: Int+    , id _ * id (id _) :: Int+    , id _ * negate _ :: Int+    , id _ * abs _ :: Int+    , id _ * (_ + _) :: Int+    , id _ * head _ :: Int+    , id _ * ord _ :: Int+    , g y :: Int+    , g 1 :: Int+    , g (id x) :: Int+    , g (id 0) :: Int+    , g (id (id _)) :: Int+    , g (negate _) :: Int+    , g (abs _) :: Int+    , g (_ + _) :: Int+    , g (head _) :: Int+    , g (ord _) :: Int+    , z + x :: Int+    , z + 0 :: Int+    , z + id _ :: Int+    , (-1) + x :: Int+    , (-1) + 0 :: Int+    , (-1) + id _ :: Int+    , id y + x :: Int+    , id y + 0 :: Int+    , id y + id _ :: Int+    , id 1 + x :: Int+    , id 1 + 0 :: Int+    , id 1 + id _ :: Int+    , id (id x) + x :: Int+    , id (id x) + 0 :: Int+    , id (id x) + id _ :: Int+    , id (id 0) + x :: Int+    , id (id 0) + 0 :: Int+    , id (id 0) + id _ :: Int+    , id (id (id _)) + x :: Int+    , id (id (id _)) + 0 :: Int+    , id (id (id _)) + id _ :: Int+    , id (negate _) + x :: Int+    , id (negate _) + 0 :: Int+    , id (negate _) + id _ :: Int+    , id (abs _) + x :: Int+    , id (abs _) + 0 :: Int+    , id (abs _) + id _ :: Int+    , id (_ + _) + x :: Int+    , id (_ + _) + 0 :: Int+    , id (_ + _) + id _ :: Int+    , id (head _) + x :: Int+    , id (head _) + 0 :: Int+    , id (head _) + id _ :: Int+    , id (ord _) + x :: Int+    , id (ord _) + 0 :: Int+    , id (ord _) + id _ :: Int+    , negate x + x :: Int+    , negate x + 0 :: Int+    , negate x + id _ :: Int+    , negate 0 + x :: Int+    , negate 0 + 0 :: Int+    , negate 0 + id _ :: Int+    , negate (id _) + x :: Int+    , negate (id _) + 0 :: Int+    , negate (id _) + id _ :: Int+    , abs x + x :: Int+    , abs x + 0 :: Int+    , abs x + id _ :: Int+    , abs 0 + x :: Int+    , abs 0 + 0 :: Int+    , abs 0 + id _ :: Int+    , abs (id _) + x :: Int+    , abs (id _) + 0 :: Int+    , abs (id _) + id _ :: Int+    , (_ + x) + x :: Int+    , (_ + x) + 0 :: Int+    , (_ + x) + id _ :: Int+    , (_ + 0) + x :: Int+    , (_ + 0) + 0 :: Int+    , (_ + 0) + id _ :: Int+    , (_ + id _) + x :: Int+    , (_ + id _) + 0 :: Int+    , (_ + id _) + id _ :: Int+    , (x + _) + x :: Int+    , (x + _) + 0 :: Int+    , (x + _) + id _ :: Int+    , (0 + _) + x :: Int+    , (0 + _) + 0 :: Int+    , (0 + _) + id _ :: Int+    , (id _ + _) + x :: Int+    , (id _ + _) + 0 :: Int+    , (id _ + _) + id _ :: Int+    , _ * _ + x :: Int+    , _ * _ + 0 :: Int+    , _ * _ + id _ :: Int+    , f _ + x :: Int+    , f _ + 0 :: Int+    , f _ + id _ :: Int+    , head xs + x :: Int+    , head xs + 0 :: Int+    , head xs + id _ :: Int+    , head [] + x :: Int+    , head [] + 0 :: Int+    , head [] + id _ :: Int+    , head (_:_) + x :: Int+    , head (_:_) + 0 :: Int+    , head (_:_) + id _ :: Int+    , ord c + x :: Int+    , ord c + 0 :: Int+    , ord c + id _ :: Int+    , ord 'a' + x :: Int+    , ord 'a' + 0 :: Int+    , ord 'a' + id _ :: Int+    , y * x :: Int+    , y * 0 :: Int+    , y * id _ :: Int+    , 1 * x :: Int+    , 1 * 0 :: Int+    , 1 * id _ :: Int+    , id x * x :: Int+    , id x * 0 :: Int+    , id x * id _ :: Int+    , id 0 * x :: Int+    , id 0 * 0 :: Int+    , id 0 * id _ :: Int+    , id (id _) * x :: Int+    , id (id _) * 0 :: Int+    , id (id _) * id _ :: Int+    , negate _ * x :: Int+    , negate _ * 0 :: Int+    , negate _ * id _ :: Int+    , abs _ * x :: Int+    , abs _ * 0 :: Int+    , abs _ * id _ :: Int+    , (_ + _) * x :: Int+    , (_ + _) * 0 :: Int+    , (_ + _) * id _ :: Int+    , head _ * x :: Int+    , head _ * 0 :: Int+    , head _ * id _ :: Int+    , ord _ * x :: Int+    , ord _ * 0 :: Int+    , ord _ * id _ :: Int+    , h x :: Int+    , h 0 :: Int+    , h (id _) :: Int+    , x' + _ :: Int+    , 2 + _ :: Int+    , id z + _ :: Int+    , id (-1) + _ :: Int+    , id (id y) + _ :: Int+    , id (id 1) + _ :: Int+    , id (id (id x)) + _ :: Int+    , id (id (id 0)) + _ :: Int+    , id (id (id (id _))) + _ :: Int+    , id (id (negate _)) + _ :: Int+    , id (id (abs _)) + _ :: Int+    , id (id (_ + _)) + _ :: Int+    , id (id (head _)) + _ :: Int+    , id (id (ord _)) + _ :: Int+    , id (negate x) + _ :: Int+    , id (negate 0) + _ :: Int+    , id (negate (id _)) + _ :: Int+    , id (abs x) + _ :: Int+    , id (abs 0) + _ :: Int+    , id (abs (id _)) + _ :: Int+    , id (_ + x) + _ :: Int+    , id (_ + 0) + _ :: Int+    , id (_ + id _) + _ :: Int+    , id (x + _) + _ :: Int+    , id (0 + _) + _ :: Int+    , id (id _ + _) + _ :: Int+    , id (_ * _) + _ :: Int+    , id (f _) + _ :: Int+    , id (head xs) + _ :: Int+    , id (head []) + _ :: Int+    , id (head (_:_)) + _ :: Int+    , id (ord c) + _ :: Int+    , id (ord 'a') + _ :: Int+    , negate y + _ :: Int+    , negate 1 + _ :: Int+    , negate (id x) + _ :: Int+    , negate (id 0) + _ :: Int+    , negate (id (id _)) + _ :: Int+    , negate (negate _) + _ :: Int+    , negate (abs _) + _ :: Int+    , negate (_ + _) + _ :: Int+    , negate (head _) + _ :: Int+    , negate (ord _) + _ :: Int+    , abs y + _ :: Int+    , abs 1 + _ :: Int+    , abs (id x) + _ :: Int+    , abs (id 0) + _ :: Int+    , abs (id (id _)) + _ :: Int+    , abs (negate _) + _ :: Int+    , abs (abs _) + _ :: Int+    , abs (_ + _) + _ :: Int+    , abs (head _) + _ :: Int+    , abs (ord _) + _ :: Int+    , (_ + y) + _ :: Int+    , (_ + 1) + _ :: Int+    , (_ + id x) + _ :: Int+    , (_ + id 0) + _ :: Int+    , (_ + id (id _)) + _ :: Int+    , (_ + negate _) + _ :: Int+    , (_ + abs _) + _ :: Int+    , (_ + (_ + _)) + _ :: Int+    , (_ + head _) + _ :: Int+    , (_ + ord _) + _ :: Int+    , (x + x) + _ :: Int+    , (x + 0) + _ :: Int+    , (x + id _) + _ :: Int+    , (0 + x) + _ :: Int+    , (0 + 0) + _ :: Int+    , (0 + id _) + _ :: Int+    , (id _ + x) + _ :: Int+    , (id _ + 0) + _ :: Int+    , (id _ + id _) + _ :: Int+    , _ * x + _ :: Int+    , _ * 0 + _ :: Int+    , _ * id _ + _ :: Int+    , f x + _ :: Int+    , f 0 + _ :: Int+    , f (id _) + _ :: Int+    , (y + _) + _ :: Int+    , (1 + _) + _ :: Int+    , (id x + _) + _ :: Int+    , (id 0 + _) + _ :: Int+    , (id (id _) + _) + _ :: Int+    , (negate _ + _) + _ :: Int+    , (abs _ + _) + _ :: Int+    , ((_ + _) + _) + _ :: Int+    , (head _ + _) + _ :: Int+    , (ord _ + _) + _ :: Int+    , x * _ + _ :: Int+    , 0 * _ + _ :: Int+    , id _ * _ + _ :: Int+    , g _ + _ :: Int+    , head ys + _ :: Int+    , head [0] + _ :: Int+    , head (_:xs) + _ :: Int+    , head [_] + _ :: Int+    , head (_:_:_) + _ :: Int+    , head (x:_) + _ :: Int+    , head (0:_) + _ :: Int+    , head (id _:_) + _ :: Int+    , head (tail _) + _ :: Int+    , head (_ ++ _) + _ :: Int+    , ord d + _ :: Int+    , ord ' ' + _ :: Int+    , z * _ :: Int+    , (-1) * _ :: Int+    , id y * _ :: Int+    , id 1 * _ :: Int+    , id (id x) * _ :: Int+    , id (id 0) * _ :: Int+    , id (id (id _)) * _ :: Int+    , id (negate _) * _ :: Int+    , id (abs _) * _ :: Int+    , id (_ + _) * _ :: Int+    , id (head _) * _ :: Int+    , id (ord _) * _ :: Int+    , negate x * _ :: Int+    , negate 0 * _ :: Int+    , negate (id _) * _ :: Int+    , abs x * _ :: Int+    , abs 0 * _ :: Int+    , abs (id _) * _ :: Int+    , (_ + x) * _ :: Int+    , (_ + 0) * _ :: Int+    , (_ + id _) * _ :: Int+    , (x + _) * _ :: Int+    , (0 + _) * _ :: Int+    , (id _ + _) * _ :: Int+    , (_ * _) * _ :: Int+    , f _ * _ :: Int+    , head xs * _ :: Int+    , head [] * _ :: Int+    , head (_:_) * _ :: Int+    , ord c * _ :: Int+    , ord 'a' * _ :: Int+    , f' _ :: Int+    , head xs' :: Int+    , head [0,0,0] :: Int+    , head [0,1] :: Int+    , head [1,0] :: Int+    , head [-1] :: Int+    , head (_:zs) :: Int+    , head (_:[0,0]) :: Int+    , head (_:[1]) :: Int+    , head (_:_:ys) :: Int+    , head (_:_:[0]) :: Int+    , head (_:_:_:xs) :: Int+    , head [_,_,_] :: Int+    , head (_:_:_:_:_) :: Int+    , head (_:_:x:_) :: Int+    , head (_:_:0:_) :: Int+    , head (_:_:id _:_) :: Int+    , head (_:_:tail _) :: Int+    , head (_:_:(_ ++ _)) :: Int+    , head (_:x:xs) :: Int+    , head [_,x] :: Int+    , head (_:x:_:_) :: Int+    , head (_:0:xs) :: Int+    , head [_,0] :: Int+    , head (_:0:_:_) :: Int+    , head (_:id _:xs) :: Int+    , head [_,id _] :: Int+    , head (_:id _:_:_) :: Int+    , head (_:y:_) :: Int+    , head (_:1:_) :: Int+    , head (_:id x:_) :: Int+    , head (_:id 0:_) :: Int+    , head (_:id (id _):_) :: Int+    , head (_:negate _:_) :: Int+    , head (_:abs _:_) :: Int+    , head (_:_ + _:_) :: Int+    , head (_:head _:_) :: Int+    , head (_:ord _:_) :: Int+    , head (_:tail xs) :: Int+    , head (_:tail []) :: Int+    , head (_:tail (_:_)) :: Int+    , head (_:(_ ++ xs)) :: Int+    , head (_:(_ ++ [])) :: Int+    , head (_:(_ ++ (_:_))) :: Int+    , head (_:(xs ++ _)) :: Int+    , head (_:([] ++ _)) :: Int+    , head (_:((_:_) ++ _)) :: Int+    , head (_:sort _) :: Int+    , head (_:insert _ _) :: Int+    , head (x:ys) :: Int+    , head (x:[0]) :: Int+    , head (x:_:xs) :: Int+    , head [x,_] :: Int+    , head (x:_:_:_) :: Int+    , head (x:x:_) :: Int+    , head (x:0:_) :: Int+    , head (x:id _:_) :: Int+    , head (x:tail _) :: Int+    , head (x:(_ ++ _)) :: Int+    , head (0:ys) :: Int+    , head (0:[0]) :: Int+    , head (0:_:xs) :: Int+    , head [0,_] :: Int+    , head (0:_:_:_) :: Int+    , head (0:x:_) :: Int+    , head (0:0:_) :: Int+    , head (0:id _:_) :: Int+    , head (0:tail _) :: Int+    , head (0:(_ ++ _)) :: Int+    , head (id _:ys) :: Int+    , head (id _:[0]) :: Int+    , head (id _:_:xs) :: Int+    , head [id _,_] :: Int+    , head (id _:_:_:_) :: Int+    , head (id _:x:_) :: Int+    , head (id _:0:_) :: Int+    , head (id _:id _:_) :: Int+    , head (id _:tail _) :: Int+    , head (id _:(_ ++ _)) :: Int+    , head (y:xs) :: Int+    , head [y] :: Int+    , head (y:_:_) :: Int+    , head (1:xs) :: Int+    , head [1] :: Int+    , head (1:_:_) :: Int+    , head (id x:xs) :: Int+    , head [id x] :: Int+    , head (id x:_:_) :: Int+    , head (id 0:xs) :: Int+    , head [id 0] :: Int+    , head (id 0:_:_) :: Int+    , head (id (id _):xs) :: Int+    , head [id (id _)] :: Int+    , head (id (id _):_:_) :: Int+    , head (negate _:xs) :: Int+    , head [negate _] :: Int+    , head (negate _:_:_) :: Int+    , head (abs _:xs) :: Int+    , head [abs _] :: Int+    , head (abs _:_:_) :: Int+    , head (_ + _:xs) :: Int+    , head [_ + _] :: Int+    , head (_ + _:_:_) :: Int+    , head (head _:xs) :: Int+    , head [head _] :: Int+    , head (head _:_:_) :: Int+    , head (ord _:xs) :: Int+    , head [ord _] :: Int+    , head (ord _:_:_) :: Int+    , head (z:_) :: Int+    , head ((-1):_) :: Int+    , head (id y:_) :: Int+    , head (id 1:_) :: Int+    , head (id (id x):_) :: Int+    , head (id (id 0):_) :: Int+    , head (id (id (id _)):_) :: Int+    , head (id (negate _):_) :: Int+    , head (id (abs _):_) :: Int+    , head (id (_ + _):_) :: Int+    , head (id (head _):_) :: Int+    , head (id (ord _):_) :: Int+    , head (negate x:_) :: Int+    , head (negate 0:_) :: Int+    , head (negate (id _):_) :: Int+    , head (abs x:_) :: Int+    , head (abs 0:_) :: Int+    , head (abs (id _):_) :: Int+    , head (_ + x:_) :: Int+    , head (_ + 0:_) :: Int+    , head (_ + id _:_) :: Int+    , head (x + _:_) :: Int+    , head (0 + _:_) :: Int+    , head (id _ + _:_) :: Int+    , head (_ * _:_) :: Int+    , head (f _:_) :: Int+    , head (head xs:_) :: Int+    , head (head []:_) :: Int+    , head (head (_:_):_) :: Int+    , head (ord c:_) :: Int+    , head (ord 'a':_) :: Int+    , head (tail ys) :: Int+    , head (tail [0]) :: Int+    , head (tail (_:xs)) :: Int+    , head (tail [_]) :: Int+    , head (tail (_:_:_)) :: Int+    , head (tail (x:_)) :: Int+    , head (tail (0:_)) :: Int+    , head (tail (id _:_)) :: Int+    , head (tail (tail _)) :: Int+    , head (tail (_ ++ _)) :: Int+    , head (_ ++ ys) :: Int+    , head (_ ++ [0]) :: Int+    , head (_ ++ (_:xs)) :: Int+    , head (_ ++ [_]) :: Int+    , head (_ ++ (_:_:_)) :: Int+    , head (_ ++ (x:_)) :: Int+    , head (_ ++ (0:_)) :: Int+    , head (_ ++ (id _:_)) :: Int+    , head (_ ++ tail _) :: Int+    , head (_ ++ (_ ++ _)) :: Int+    , head (xs ++ xs) :: Int+    , head (xs ++ []) :: Int+    , head (xs ++ (_:_)) :: Int+    , head ([] ++ xs) :: Int+    , head ([] ++ []) :: Int+    , head ([] ++ (_:_)) :: Int+    , head ((_:_) ++ xs) :: Int+    , head ((_:_) ++ []) :: Int+    , head ((_:_) ++ (_:_)) :: Int+    , head (ys ++ _) :: Int+    , head ([0] ++ _) :: Int+    , head ((_:xs) ++ _) :: Int+    , head ([_] ++ _) :: Int+    , head ((_:_:_) ++ _) :: Int+    , head ((x:_) ++ _) :: Int+    , head ((0:_) ++ _) :: Int+    , head ((id _:_) ++ _) :: Int+    , head (tail _ ++ _) :: Int+    , head ((_ ++ _) ++ _) :: Int+    , head (sort xs) :: Int+    , head (sort []) :: Int+    , head (sort (_:_)) :: Int+    , head (insert _ xs) :: Int+    , head (insert _ []) :: Int+    , head (insert _ (_:_)) :: Int+    , head (insert x _) :: Int+    , head (insert 0 _) :: Int+    , head (insert (id _) _) :: Int+    , ord c' :: Int+    , ord 'A' :: Int+    , q' :: Bool+    , not p' :: Bool+    , not (not r) :: Bool+    , not (not (not q)) :: Bool+    , not (not (not (not p))) :: Bool+    , not (not (not (not False))) :: Bool+    , not (not (not (not True))) :: Bool+    , not (not (not (not (not _)))) :: Bool+    , not (not (not (_ || _))) :: Bool+    , not (not (_ || p)) :: Bool+    , not (not (_ || False)) :: Bool+    , not (not (_ || True)) :: Bool+    , not (not (_ || not _)) :: Bool+    , not (not (p || _)) :: Bool+    , not (not (False || _)) :: Bool+    , not (not (True || _)) :: Bool+    , not (not (not _ || _)) :: Bool+    , not (not (_ && _)) :: Bool+    , not (not (_ == _)) :: Bool+    , not (not (_ == _)) :: Bool+    , not (not (odd _)) :: Bool+    , not (not (even _)) :: Bool+    , not (not (elem _ _)) :: Bool+    , not (_ || q) :: Bool+    , not (_ || not p) :: Bool+    , not (_ || not False) :: Bool+    , not (_ || not True) :: Bool+    , not (_ || not (not _)) :: Bool+    , not (_ || (_ || _)) :: Bool+    , not (p || p) :: Bool+    , not (p || False) :: Bool+    , not (p || True) :: Bool+    , not (p || not _) :: Bool+    , not (False || p) :: Bool+    , not (False || False) :: Bool+    , not (False || True) :: Bool+    , not (False || not _) :: Bool+    , not (True || p) :: Bool+    , not (True || False) :: Bool+    , not (True || True) :: Bool+    , not (True || not _) :: Bool+    , not (not _ || p) :: Bool+    , not (not _ || False) :: Bool+    , not (not _ || True) :: Bool+    , not (not _ || not _) :: Bool+    , not (_ && p) :: Bool+    , not (_ && False) :: Bool+    , not (_ && True) :: Bool+    , not (_ && not _) :: Bool+    , not (q || _) :: Bool+    , not (not p || _) :: Bool+    , not (not False || _) :: Bool+    , not (not True || _) :: Bool+    , not (not (not _) || _) :: Bool+    , not ((_ || _) || _) :: Bool+    , not (p && _) :: Bool+    , not (False && _) :: Bool+    , not (True && _) :: Bool+    , not (not _ && _) :: Bool+    , not (_ ==> _) :: Bool+    , not (_ == x) :: Bool+    , not (_ == 0) :: Bool+    , not (_ == id _) :: Bool+    , not (x == _) :: Bool+    , not (0 == _) :: Bool+    , not (id _ == _) :: Bool+    , not (_ == p) :: Bool+    , not (_ == False) :: Bool+    , not (_ == True) :: Bool+    , not (_ == not _) :: Bool+    , not (p == _) :: Bool+    , not (False == _) :: Bool+    , not (True == _) :: Bool+    , not (not _ == _) :: Bool+    , not (_ <= _) :: Bool+    , not (_ <= _) :: Bool+    , not (odd x) :: Bool+    , not (odd 0) :: Bool+    , not (odd (id _)) :: Bool+    , not (even x) :: Bool+    , not (even 0) :: Bool+    , not (even (id _)) :: Bool+    , not (elem _ xs) :: Bool+    , not (elem _ []) :: Bool+    , not (elem _ (_:_)) :: Bool+    , not (elem x _) :: Bool+    , not (elem 0 _) :: Bool+    , not (elem (id _) _) :: Bool+    , _ || r :: Bool+    , _ || not q :: Bool+    , _ || not (not p) :: Bool+    , _ || not (not False) :: Bool+    , _ || not (not True) :: Bool+    , _ || not (not (not _)) :: Bool+    , _ || not (_ || _) :: Bool+    , _ || (_ || p) :: Bool+    , _ || (_ || False) :: Bool+    , _ || (_ || True) :: Bool+    , _ || (_ || not _) :: Bool+    , _ || (p || _) :: Bool+    , _ || (False || _) :: Bool+    , _ || (True || _) :: Bool+    , _ || (not _ || _) :: Bool+    , _ || _ && _ :: Bool+    , _ || _ == _ :: Bool+    , _ || _ == _ :: Bool+    , _ || odd _ :: Bool+    , _ || even _ :: Bool+    , _ || elem _ _ :: Bool+    , p || q :: Bool+    , p || not p :: Bool+    , p || not False :: Bool+    , p || not True :: Bool+    , p || not (not _) :: Bool+    , p || (_ || _) :: Bool+    , False || q :: Bool+    , False || not p :: Bool+    , False || not False :: Bool+    , False || not True :: Bool+    , False || not (not _) :: Bool+    , False || (_ || _) :: Bool+    , True || q :: Bool+    , True || not p :: Bool+    , True || not False :: Bool+    , True || not True :: Bool+    , True || not (not _) :: Bool+    , True || (_ || _) :: Bool+    , not _ || q :: Bool+    , not _ || not p :: Bool+    , not _ || not False :: Bool+    , not _ || not True :: Bool+    , not _ || not (not _) :: Bool+    , not _ || (_ || _) :: Bool+    , _ && q :: Bool+    , _ && not p :: Bool+    , _ && not False :: Bool+    , _ && not True :: Bool+    , _ && not (not _) :: Bool+    , _ && (_ || _) :: Bool+    , q || p :: Bool+    , q || False :: Bool+    , q || True :: Bool+    , q || not _ :: Bool+    , not p || p :: Bool+    , not p || False :: Bool+    , not p || True :: Bool+    , not p || not _ :: Bool+    , not False || p :: Bool+    , not False || False :: Bool+    , not False || True :: Bool+    , not False || not _ :: Bool+    , not True || p :: Bool+    , not True || False :: Bool+    , not True || True :: Bool+    , not True || not _ :: Bool+    , not (not _) || p :: Bool+    , not (not _) || False :: Bool+    , not (not _) || True :: Bool+    , not (not _) || not _ :: Bool+    , (_ || _) || p :: Bool+    , (_ || _) || False :: Bool+    , (_ || _) || True :: Bool+    , (_ || _) || not _ :: Bool+    , p && p :: Bool+    , p && False :: Bool+    , p && True :: Bool+    , p && not _ :: Bool+    , False && p :: Bool+    , False && False :: Bool+    , False && True :: Bool+    , False && not _ :: Bool+    , True && p :: Bool+    , True && False :: Bool+    , True && True :: Bool+    , True && not _ :: Bool+    , not _ && p :: Bool+    , not _ && False :: Bool+    , not _ && True :: Bool+    , not _ && not _ :: Bool+    , _ ==> p :: Bool+    , _ ==> False :: Bool+    , _ ==> True :: Bool+    , _ ==> not _ :: Bool+    , r || _ :: Bool+    , not q || _ :: Bool+    , not (not p) || _ :: Bool+    , not (not False) || _ :: Bool+    , not (not True) || _ :: Bool+    , not (not (not _)) || _ :: Bool+    , not (_ || _) || _ :: Bool+    , (_ || p) || _ :: Bool+    , (_ || False) || _ :: Bool+    , (_ || True) || _ :: Bool+    , (_ || not _) || _ :: Bool+    , (p || _) || _ :: Bool+    , (False || _) || _ :: Bool+    , (True || _) || _ :: Bool+    , (not _ || _) || _ :: Bool+    , _ && _ || _ :: Bool+    , _ == _ || _ :: Bool+    , _ == _ || _ :: Bool+    , odd _ || _ :: Bool+    , even _ || _ :: Bool+    , elem _ _ || _ :: Bool+    , q && _ :: Bool+    , not p && _ :: Bool+    , not False && _ :: Bool+    , not True && _ :: Bool+    , not (not _) && _ :: Bool+    , (_ || _) && _ :: Bool+    , p ==> _ :: Bool+    , False ==> _ :: Bool+    , True ==> _ :: Bool+    , not _ ==> _ :: Bool+    , _ == y :: Bool+    , _ == 1 :: Bool+    , _ == id x :: Bool+    , _ == id 0 :: Bool+    , _ == id (id _) :: Bool+    , _ == negate _ :: Bool+    , _ == abs _ :: Bool+    , _ == _ + _ :: Bool+    , _ == head _ :: Bool+    , _ == ord _ :: Bool+    , x == x :: Bool+    , x == 0 :: Bool+    , x == id _ :: Bool+    , 0 == x :: Bool+    , 0 == 0 :: Bool+    , 0 == id _ :: Bool+    , id _ == x :: Bool+    , id _ == 0 :: Bool+    , id _ == id _ :: Bool+    , y == _ :: Bool+    , 1 == _ :: Bool+    , id x == _ :: Bool+    , id 0 == _ :: Bool+    , id (id _) == _ :: Bool+    , negate _ == _ :: Bool+    , abs _ == _ :: Bool+    , _ + _ == _ :: Bool+    , head _ == _ :: Bool+    , ord _ == _ :: Bool+    , _ == q :: Bool+    , _ == not p :: Bool+    , _ == not False :: Bool+    , _ == not True :: Bool+    , _ == not (not _) :: Bool+    , _ == (_ || _) :: Bool+    , p == p :: Bool+    , p == False :: Bool+    , p == True :: Bool+    , p == not _ :: Bool+    , False == p :: Bool+    , False == False :: Bool+    , False == True :: Bool+    , False == not _ :: Bool+    , True == p :: Bool+    , True == False :: Bool+    , True == True :: Bool+    , True == not _ :: Bool+    , not _ == p :: Bool+    , not _ == False :: Bool+    , not _ == True :: Bool+    , not _ == not _ :: Bool+    , q == _ :: Bool+    , not p == _ :: Bool+    , not False == _ :: Bool+    , not True == _ :: Bool+    , not (not _) == _ :: Bool+    , (_ || _) == _ :: Bool+    , _ <= x :: Bool+    , _ <= 0 :: Bool+    , _ <= id _ :: Bool+    , x <= _ :: Bool+    , 0 <= _ :: Bool+    , id _ <= _ :: Bool+    , _ <= p :: Bool+    , _ <= False :: Bool+    , _ <= True :: Bool+    , _ <= not _ :: Bool+    , p <= _ :: Bool+    , False <= _ :: Bool+    , True <= _ :: Bool+    , not _ <= _ :: Bool+    , _ < _ :: Bool+    , _ < _ :: Bool+    , odd y :: Bool+    , odd 1 :: Bool+    , odd (id x) :: Bool+    , odd (id 0) :: Bool+    , odd (id (id _)) :: Bool+    , odd (negate _) :: Bool+    , odd (abs _) :: Bool+    , odd (_ + _) :: Bool+    , odd (head _) :: Bool+    , odd (ord _) :: Bool+    , even y :: Bool+    , even 1 :: Bool+    , even (id x) :: Bool+    , even (id 0) :: Bool+    , even (id (id _)) :: Bool+    , even (negate _) :: Bool+    , even (abs _) :: Bool+    , even (_ + _) :: Bool+    , even (head _) :: Bool+    , even (ord _) :: Bool+    , elem _ ys :: Bool+    , elem _ [0] :: Bool+    , elem _ (_:xs) :: Bool+    , elem _ [_] :: Bool+    , elem _ (_:_:_) :: Bool+    , elem _ (x:_) :: Bool+    , elem _ (0:_) :: Bool+    , elem _ (id _:_) :: Bool+    , elem _ (tail _) :: Bool+    , elem _ (_ ++ _) :: Bool+    , elem x xs :: Bool+    , elem x [] :: Bool+    , elem x (_:_) :: Bool+    , elem 0 xs :: Bool+    , elem 0 [] :: Bool+    , elem 0 (_:_) :: Bool+    , elem (id _) xs :: Bool+    , elem (id _) [] :: Bool+    , elem (id _) (_:_) :: Bool+    , elem y _ :: Bool+    , elem 1 _ :: Bool+    , elem (id x) _ :: Bool+    , elem (id 0) _ :: Bool+    , elem (id (id _)) _ :: Bool+    , elem (negate _) _ :: Bool+    , elem (abs _) _ :: Bool+    , elem (_ + _) _ :: Bool+    , elem (head _) _ :: Bool+    , elem (ord _) _ :: Bool+    , d' :: Char+    , 'c' :: Char+    , ys' :: [Int]+    , [0,0,0,0] :: [Int]+    , [0,0,1] :: [Int]+    , [0,1,0] :: [Int]+    , [0,-1] :: [Int]+    , [1,0,0] :: [Int]+    , [1,1] :: [Int]+    , [-1,0] :: [Int]+    , [2] :: [Int]+    , _:xs' :: [Int]+    , _:[0,0,0] :: [Int]+    , _:[0,1] :: [Int]+    , _:[1,0] :: [Int]+    , _:[-1] :: [Int]+    , _:_:zs :: [Int]+    , _:_:[0,0] :: [Int]+    , _:_:[1] :: [Int]+    , _:_:_:ys :: [Int]+    , _:_:_:[0] :: [Int]+    , _:_:_:_:xs :: [Int]+    , [_,_,_,_] :: [Int]+    , _:_:_:_:_:_ :: [Int]+    , _:_:_:x:_ :: [Int]+    , _:_:_:0:_ :: [Int]+    , _:_:_:id _:_ :: [Int]+    , _:_:_:tail _ :: [Int]+    , _:_:_:(_ ++ _) :: [Int]+    , _:_:x:xs :: [Int]+    , [_,_,x] :: [Int]+    , _:_:x:_:_ :: [Int]+    , _:_:0:xs :: [Int]+    , [_,_,0] :: [Int]+    , _:_:0:_:_ :: [Int]+    , _:_:id _:xs :: [Int]+    , [_,_,id _] :: [Int]+    , _:_:id _:_:_ :: [Int]+    , _:_:y:_ :: [Int]+    , _:_:1:_ :: [Int]+    , _:_:id x:_ :: [Int]+    , _:_:id 0:_ :: [Int]+    , _:_:id (id _):_ :: [Int]+    , _:_:negate _:_ :: [Int]+    , _:_:abs _:_ :: [Int]+    , _:_:_ + _:_ :: [Int]+    , _:_:head _:_ :: [Int]+    , _:_:ord _:_ :: [Int]+    , _:_:tail xs :: [Int]+    , _:_:tail [] :: [Int]+    , _:_:tail (_:_) :: [Int]+    , _:_:(_ ++ xs) :: [Int]+    , _:_:(_ ++ []) :: [Int]+    , _:_:(_ ++ (_:_)) :: [Int]+    , _:_:(xs ++ _) :: [Int]+    , _:_:([] ++ _) :: [Int]+    , _:_:((_:_) ++ _) :: [Int]+    , _:_:sort _ :: [Int]+    , _:_:insert _ _ :: [Int]+    , _:x:ys :: [Int]+    , _:x:[0] :: [Int]+    , _:x:_:xs :: [Int]+    , [_,x,_] :: [Int]+    , _:x:_:_:_ :: [Int]+    , _:x:x:_ :: [Int]+    , _:x:0:_ :: [Int]+    , _:x:id _:_ :: [Int]+    , _:x:tail _ :: [Int]+    , _:x:(_ ++ _) :: [Int]+    , _:0:ys :: [Int]+    , _:0:[0] :: [Int]+    , _:0:_:xs :: [Int]+    , [_,0,_] :: [Int]+    , _:0:_:_:_ :: [Int]+    , _:0:x:_ :: [Int]+    , _:0:0:_ :: [Int]+    , _:0:id _:_ :: [Int]+    , _:0:tail _ :: [Int]+    , _:0:(_ ++ _) :: [Int]+    , _:id _:ys :: [Int]+    , _:id _:[0] :: [Int]+    , _:id _:_:xs :: [Int]+    , [_,id _,_] :: [Int]+    , _:id _:_:_:_ :: [Int]+    , _:id _:x:_ :: [Int]+    , _:id _:0:_ :: [Int]+    , _:id _:id _:_ :: [Int]+    , _:id _:tail _ :: [Int]+    , _:id _:(_ ++ _) :: [Int]+    , _:y:xs :: [Int]+    , [_,y] :: [Int]+    , _:y:_:_ :: [Int]+    , _:1:xs :: [Int]+    , [_,1] :: [Int]+    , _:1:_:_ :: [Int]+    , _:id x:xs :: [Int]+    , [_,id x] :: [Int]+    , _:id x:_:_ :: [Int]+    , _:id 0:xs :: [Int]+    , [_,id 0] :: [Int]+    , _:id 0:_:_ :: [Int]+    , _:id (id _):xs :: [Int]+    , [_,id (id _)] :: [Int]+    , _:id (id _):_:_ :: [Int]+    , _:negate _:xs :: [Int]+    , [_,negate _] :: [Int]+    , _:negate _:_:_ :: [Int]+    , _:abs _:xs :: [Int]+    , [_,abs _] :: [Int]+    , _:abs _:_:_ :: [Int]+    , _:_ + _:xs :: [Int]+    , [_,_ + _] :: [Int]+    , _:_ + _:_:_ :: [Int]+    , _:head _:xs :: [Int]+    , [_,head _] :: [Int]+    , _:head _:_:_ :: [Int]+    , _:ord _:xs :: [Int]+    , [_,ord _] :: [Int]+    , _:ord _:_:_ :: [Int]+    , _:z:_ :: [Int]+    , _:(-1):_ :: [Int]+    , _:id y:_ :: [Int]+    , _:id 1:_ :: [Int]+    , _:id (id x):_ :: [Int]+    , _:id (id 0):_ :: [Int]+    , _:id (id (id _)):_ :: [Int]+    , _:id (negate _):_ :: [Int]+    , _:id (abs _):_ :: [Int]+    , _:id (_ + _):_ :: [Int]+    , _:id (head _):_ :: [Int]+    , _:id (ord _):_ :: [Int]+    , _:negate x:_ :: [Int]+    , _:negate 0:_ :: [Int]+    , _:negate (id _):_ :: [Int]+    , _:abs x:_ :: [Int]+    , _:abs 0:_ :: [Int]+    , _:abs (id _):_ :: [Int]+    , _:_ + x:_ :: [Int]+    , _:_ + 0:_ :: [Int]+    , _:_ + id _:_ :: [Int]+    , _:x + _:_ :: [Int]+    , _:0 + _:_ :: [Int]+    , _:id _ + _:_ :: [Int]+    , _:_ * _:_ :: [Int]+    , _:f _:_ :: [Int]+    , _:head xs:_ :: [Int]+    , _:head []:_ :: [Int]+    , _:head (_:_):_ :: [Int]+    , _:ord c:_ :: [Int]+    , _:ord 'a':_ :: [Int]+    , _:tail ys :: [Int]+    , _:tail [0] :: [Int]+    , _:tail (_:xs) :: [Int]+    , _:tail [_] :: [Int]+    , _:tail (_:_:_) :: [Int]+    , _:tail (x:_) :: [Int]+    , _:tail (0:_) :: [Int]+    , _:tail (id _:_) :: [Int]+    , _:tail (tail _) :: [Int]+    , _:tail (_ ++ _) :: [Int]+    , _:(_ ++ ys) :: [Int]+    , _:(_ ++ [0]) :: [Int]+    , _:(_ ++ (_:xs)) :: [Int]+    , _:(_ ++ [_]) :: [Int]+    , _:(_ ++ (_:_:_)) :: [Int]+    , _:(_ ++ (x:_)) :: [Int]+    , _:(_ ++ (0:_)) :: [Int]+    , _:(_ ++ (id _:_)) :: [Int]+    , _:(_ ++ tail _) :: [Int]+    , _:(_ ++ (_ ++ _)) :: [Int]+    , _:(xs ++ xs) :: [Int]+    , _:(xs ++ []) :: [Int]+    , _:(xs ++ (_:_)) :: [Int]+    , _:([] ++ xs) :: [Int]+    , _:([] ++ []) :: [Int]+    , _:([] ++ (_:_)) :: [Int]+    , _:((_:_) ++ xs) :: [Int]+    , _:((_:_) ++ []) :: [Int]+    , _:((_:_) ++ (_:_)) :: [Int]+    , _:(ys ++ _) :: [Int]+    , _:([0] ++ _) :: [Int]+    , _:((_:xs) ++ _) :: [Int]+    , _:([_] ++ _) :: [Int]+    , _:((_:_:_) ++ _) :: [Int]+    , _:((x:_) ++ _) :: [Int]+    , _:((0:_) ++ _) :: [Int]+    , _:((id _:_) ++ _) :: [Int]+    , _:(tail _ ++ _) :: [Int]+    , _:((_ ++ _) ++ _) :: [Int]+    , _:sort xs :: [Int]+    , _:sort [] :: [Int]+    , _:sort (_:_) :: [Int]+    , _:insert _ xs :: [Int]+    , _:insert _ [] :: [Int]+    , _:insert _ (_:_) :: [Int]+    , _:insert x _ :: [Int]+    , _:insert 0 _ :: [Int]+    , _:insert (id _) _ :: [Int]+    , x:zs :: [Int]+    , x:[0,0] :: [Int]+    , x:[1] :: [Int]+    , x:_:ys :: [Int]+    , x:_:[0] :: [Int]+    , x:_:_:xs :: [Int]+    , [x,_,_] :: [Int]+    , x:_:_:_:_ :: [Int]+    , x:_:x:_ :: [Int]+    , x:_:0:_ :: [Int]+    , x:_:id _:_ :: [Int]+    , x:_:tail _ :: [Int]+    , x:_:(_ ++ _) :: [Int]+    , x:x:xs :: [Int]+    , [x,x] :: [Int]+    , x:x:_:_ :: [Int]+    , x:0:xs :: [Int]+    , [x,0] :: [Int]+    , x:0:_:_ :: [Int]+    , x:id _:xs :: [Int]+    , [x,id _] :: [Int]+    , x:id _:_:_ :: [Int]+    , x:y:_ :: [Int]+    , x:1:_ :: [Int]+    , x:id x:_ :: [Int]+    , x:id 0:_ :: [Int]+    , x:id (id _):_ :: [Int]+    , x:negate _:_ :: [Int]+    , x:abs _:_ :: [Int]+    , x:_ + _:_ :: [Int]+    , x:head _:_ :: [Int]+    , x:ord _:_ :: [Int]+    , x:tail xs :: [Int]+    , x:tail [] :: [Int]+    , x:tail (_:_) :: [Int]+    , x:(_ ++ xs) :: [Int]+    , x:(_ ++ []) :: [Int]+    , x:(_ ++ (_:_)) :: [Int]+    , x:(xs ++ _) :: [Int]+    , x:([] ++ _) :: [Int]+    , x:((_:_) ++ _) :: [Int]+    , x:sort _ :: [Int]+    , x:insert _ _ :: [Int]+    , 0:zs :: [Int]+    , 0:[0,0] :: [Int]+    , 0:[1] :: [Int]+    , 0:_:ys :: [Int]+    , 0:_:[0] :: [Int]+    , 0:_:_:xs :: [Int]+    , [0,_,_] :: [Int]+    , 0:_:_:_:_ :: [Int]+    , 0:_:x:_ :: [Int]+    , 0:_:0:_ :: [Int]+    , 0:_:id _:_ :: [Int]+    , 0:_:tail _ :: [Int]+    , 0:_:(_ ++ _) :: [Int]+    , 0:x:xs :: [Int]+    , [0,x] :: [Int]+    , 0:x:_:_ :: [Int]+    , 0:0:xs :: [Int]+    , [0,0] :: [Int]+    , 0:0:_:_ :: [Int]+    , 0:id _:xs :: [Int]+    , [0,id _] :: [Int]+    , 0:id _:_:_ :: [Int]+    , 0:y:_ :: [Int]+    , 0:1:_ :: [Int]+    , 0:id x:_ :: [Int]+    , 0:id 0:_ :: [Int]+    , 0:id (id _):_ :: [Int]+    , 0:negate _:_ :: [Int]+    , 0:abs _:_ :: [Int]+    , 0:_ + _:_ :: [Int]+    , 0:head _:_ :: [Int]+    , 0:ord _:_ :: [Int]+    , 0:tail xs :: [Int]+    , 0:tail [] :: [Int]+    , 0:tail (_:_) :: [Int]+    , 0:(_ ++ xs) :: [Int]+    , 0:(_ ++ []) :: [Int]+    , 0:(_ ++ (_:_)) :: [Int]+    , 0:(xs ++ _) :: [Int]+    , 0:([] ++ _) :: [Int]+    , 0:((_:_) ++ _) :: [Int]+    , 0:sort _ :: [Int]+    , 0:insert _ _ :: [Int]+    , id _:zs :: [Int]+    , id _:[0,0] :: [Int]+    , id _:[1] :: [Int]+    , id _:_:ys :: [Int]+    , id _:_:[0] :: [Int]+    , id _:_:_:xs :: [Int]+    , [id _,_,_] :: [Int]+    , id _:_:_:_:_ :: [Int]+    , id _:_:x:_ :: [Int]+    , id _:_:0:_ :: [Int]+    , id _:_:id _:_ :: [Int]+    , id _:_:tail _ :: [Int]+    , id _:_:(_ ++ _) :: [Int]+    , id _:x:xs :: [Int]+    , [id _,x] :: [Int]+    , id _:x:_:_ :: [Int]+    , id _:0:xs :: [Int]+    , [id _,0] :: [Int]+    , id _:0:_:_ :: [Int]+    , id _:id _:xs :: [Int]+    , [id _,id _] :: [Int]+    , id _:id _:_:_ :: [Int]+    , id _:y:_ :: [Int]+    , id _:1:_ :: [Int]+    , id _:id x:_ :: [Int]+    , id _:id 0:_ :: [Int]+    , id _:id (id _):_ :: [Int]+    , id _:negate _:_ :: [Int]+    , id _:abs _:_ :: [Int]+    , id _:_ + _:_ :: [Int]+    , id _:head _:_ :: [Int]+    , id _:ord _:_ :: [Int]+    , id _:tail xs :: [Int]+    , id _:tail [] :: [Int]+    , id _:tail (_:_) :: [Int]+    , id _:(_ ++ xs) :: [Int]+    , id _:(_ ++ []) :: [Int]+    , id _:(_ ++ (_:_)) :: [Int]+    , id _:(xs ++ _) :: [Int]+    , id _:([] ++ _) :: [Int]+    , id _:((_:_) ++ _) :: [Int]+    , id _:sort _ :: [Int]+    , id _:insert _ _ :: [Int]+    , y:ys :: [Int]+    , y:[0] :: [Int]+    , y:_:xs :: [Int]+    , [y,_] :: [Int]+    , y:_:_:_ :: [Int]+    , y:x:_ :: [Int]+    , y:0:_ :: [Int]+    , y:id _:_ :: [Int]+    , y:tail _ :: [Int]+    , y:(_ ++ _) :: [Int]+    , 1:ys :: [Int]+    , 1:[0] :: [Int]+    , 1:_:xs :: [Int]+    , [1,_] :: [Int]+    , 1:_:_:_ :: [Int]+    , 1:x:_ :: [Int]+    , 1:0:_ :: [Int]+    , 1:id _:_ :: [Int]+    , 1:tail _ :: [Int]+    , 1:(_ ++ _) :: [Int]+    , id x:ys :: [Int]+    , id x:[0] :: [Int]+    , id x:_:xs :: [Int]+    , [id x,_] :: [Int]+    , id x:_:_:_ :: [Int]+    , id x:x:_ :: [Int]+    , id x:0:_ :: [Int]+    , id x:id _:_ :: [Int]+    , id x:tail _ :: [Int]+    , id x:(_ ++ _) :: [Int]+    , id 0:ys :: [Int]+    , id 0:[0] :: [Int]+    , id 0:_:xs :: [Int]+    , [id 0,_] :: [Int]+    , id 0:_:_:_ :: [Int]+    , id 0:x:_ :: [Int]+    , id 0:0:_ :: [Int]+    , id 0:id _:_ :: [Int]+    , id 0:tail _ :: [Int]+    , id 0:(_ ++ _) :: [Int]+    , id (id _):ys :: [Int]+    , id (id _):[0] :: [Int]+    , id (id _):_:xs :: [Int]+    , [id (id _),_] :: [Int]+    , id (id _):_:_:_ :: [Int]+    , id (id _):x:_ :: [Int]+    , id (id _):0:_ :: [Int]+    , id (id _):id _:_ :: [Int]+    , id (id _):tail _ :: [Int]+    , id (id _):(_ ++ _) :: [Int]+    , negate _:ys :: [Int]+    , negate _:[0] :: [Int]+    , negate _:_:xs :: [Int]+    , [negate _,_] :: [Int]+    , negate _:_:_:_ :: [Int]+    , negate _:x:_ :: [Int]+    , negate _:0:_ :: [Int]+    , negate _:id _:_ :: [Int]+    , negate _:tail _ :: [Int]+    , negate _:(_ ++ _) :: [Int]+    , abs _:ys :: [Int]+    , abs _:[0] :: [Int]+    , abs _:_:xs :: [Int]+    , [abs _,_] :: [Int]+    , abs _:_:_:_ :: [Int]+    , abs _:x:_ :: [Int]+    , abs _:0:_ :: [Int]+    , abs _:id _:_ :: [Int]+    , abs _:tail _ :: [Int]+    , abs _:(_ ++ _) :: [Int]+    , _ + _:ys :: [Int]+    , _ + _:[0] :: [Int]+    , _ + _:_:xs :: [Int]+    , [_ + _,_] :: [Int]+    , _ + _:_:_:_ :: [Int]+    , _ + _:x:_ :: [Int]+    , _ + _:0:_ :: [Int]+    , _ + _:id _:_ :: [Int]+    , _ + _:tail _ :: [Int]+    , _ + _:(_ ++ _) :: [Int]+    , head _:ys :: [Int]+    , head _:[0] :: [Int]+    , head _:_:xs :: [Int]+    , [head _,_] :: [Int]+    , head _:_:_:_ :: [Int]+    , head _:x:_ :: [Int]+    , head _:0:_ :: [Int]+    , head _:id _:_ :: [Int]+    , head _:tail _ :: [Int]+    , head _:(_ ++ _) :: [Int]+    , ord _:ys :: [Int]+    , ord _:[0] :: [Int]+    , ord _:_:xs :: [Int]+    , [ord _,_] :: [Int]+    , ord _:_:_:_ :: [Int]+    , ord _:x:_ :: [Int]+    , ord _:0:_ :: [Int]+    , ord _:id _:_ :: [Int]+    , ord _:tail _ :: [Int]+    , ord _:(_ ++ _) :: [Int]+    , z:xs :: [Int]+    , [z] :: [Int]+    , z:_:_ :: [Int]+    , (-1):xs :: [Int]+    , [-1] :: [Int]+    , (-1):_:_ :: [Int]+    , id y:xs :: [Int]+    , [id y] :: [Int]+    , id y:_:_ :: [Int]+    , id 1:xs :: [Int]+    , [id 1] :: [Int]+    , id 1:_:_ :: [Int]+    , id (id x):xs :: [Int]+    , [id (id x)] :: [Int]+    , id (id x):_:_ :: [Int]+    , id (id 0):xs :: [Int]+    , [id (id 0)] :: [Int]+    , id (id 0):_:_ :: [Int]+    , id (id (id _)):xs :: [Int]+    , [id (id (id _))] :: [Int]+    , id (id (id _)):_:_ :: [Int]+    , id (negate _):xs :: [Int]+    , [id (negate _)] :: [Int]+    , id (negate _):_:_ :: [Int]+    , id (abs _):xs :: [Int]+    , [id (abs _)] :: [Int]+    , id (abs _):_:_ :: [Int]+    , id (_ + _):xs :: [Int]+    , [id (_ + _)] :: [Int]+    , id (_ + _):_:_ :: [Int]+    , id (head _):xs :: [Int]+    , [id (head _)] :: [Int]+    , id (head _):_:_ :: [Int]+    , id (ord _):xs :: [Int]+    , [id (ord _)] :: [Int]+    , id (ord _):_:_ :: [Int]+    , negate x:xs :: [Int]+    , [negate x] :: [Int]+    , negate x:_:_ :: [Int]+    , negate 0:xs :: [Int]+    , [negate 0] :: [Int]+    , negate 0:_:_ :: [Int]+    , negate (id _):xs :: [Int]+    , [negate (id _)] :: [Int]+    , negate (id _):_:_ :: [Int]+    , abs x:xs :: [Int]+    , [abs x] :: [Int]+    , abs x:_:_ :: [Int]+    , abs 0:xs :: [Int]+    , [abs 0] :: [Int]+    , abs 0:_:_ :: [Int]+    , abs (id _):xs :: [Int]+    , [abs (id _)] :: [Int]+    , abs (id _):_:_ :: [Int]+    , _ + x:xs :: [Int]+    , [_ + x] :: [Int]+    , _ + x:_:_ :: [Int]+    , _ + 0:xs :: [Int]+    , [_ + 0] :: [Int]+    , _ + 0:_:_ :: [Int]+    , _ + id _:xs :: [Int]+    , [_ + id _] :: [Int]+    , _ + id _:_:_ :: [Int]+    , x + _:xs :: [Int]+    , [x + _] :: [Int]+    , x + _:_:_ :: [Int]+    , 0 + _:xs :: [Int]+    , [0 + _] :: [Int]+    , 0 + _:_:_ :: [Int]+    , id _ + _:xs :: [Int]+    , [id _ + _] :: [Int]+    , id _ + _:_:_ :: [Int]+    , _ * _:xs :: [Int]+    , [_ * _] :: [Int]+    , _ * _:_:_ :: [Int]+    , f _:xs :: [Int]+    , [f _] :: [Int]+    , f _:_:_ :: [Int]+    , head xs:xs :: [Int]+    , [head xs] :: [Int]+    , head xs:_:_ :: [Int]+    , head []:xs :: [Int]+    , [head []] :: [Int]+    , head []:_:_ :: [Int]+    , head (_:_):xs :: [Int]+    , [head (_:_)] :: [Int]+    , head (_:_):_:_ :: [Int]+    , ord c:xs :: [Int]+    , [ord c] :: [Int]+    , ord c:_:_ :: [Int]+    , ord 'a':xs :: [Int]+    , [ord 'a'] :: [Int]+    , ord 'a':_:_ :: [Int]+    , x':_ :: [Int]+    , 2:_ :: [Int]+    , id z:_ :: [Int]+    , id (-1):_ :: [Int]+    , id (id y):_ :: [Int]+    , id (id 1):_ :: [Int]+    , id (id (id x)):_ :: [Int]+    , id (id (id 0)):_ :: [Int]+    , id (id (id (id _))):_ :: [Int]+    , id (id (negate _)):_ :: [Int]+    , id (id (abs _)):_ :: [Int]+    , id (id (_ + _)):_ :: [Int]+    , id (id (head _)):_ :: [Int]+    , id (id (ord _)):_ :: [Int]+    , id (negate x):_ :: [Int]+    , id (negate 0):_ :: [Int]+    , id (negate (id _)):_ :: [Int]+    , id (abs x):_ :: [Int]+    , id (abs 0):_ :: [Int]+    , id (abs (id _)):_ :: [Int]+    , id (_ + x):_ :: [Int]+    , id (_ + 0):_ :: [Int]+    , id (_ + id _):_ :: [Int]+    , id (x + _):_ :: [Int]+    , id (0 + _):_ :: [Int]+    , id (id _ + _):_ :: [Int]+    , id (_ * _):_ :: [Int]+    , id (f _):_ :: [Int]+    , id (head xs):_ :: [Int]+    , id (head []):_ :: [Int]+    , id (head (_:_)):_ :: [Int]+    , id (ord c):_ :: [Int]+    , id (ord 'a'):_ :: [Int]+    , negate y:_ :: [Int]+    , negate 1:_ :: [Int]+    , negate (id x):_ :: [Int]+    , negate (id 0):_ :: [Int]+    , negate (id (id _)):_ :: [Int]+    , negate (negate _):_ :: [Int]+    , negate (abs _):_ :: [Int]+    , negate (_ + _):_ :: [Int]+    , negate (head _):_ :: [Int]+    , negate (ord _):_ :: [Int]+    , abs y:_ :: [Int]+    , abs 1:_ :: [Int]+    , abs (id x):_ :: [Int]+    , abs (id 0):_ :: [Int]+    , abs (id (id _)):_ :: [Int]+    , abs (negate _):_ :: [Int]+    , abs (abs _):_ :: [Int]+    , abs (_ + _):_ :: [Int]+    , abs (head _):_ :: [Int]+    , abs (ord _):_ :: [Int]+    , _ + y:_ :: [Int]+    , _ + 1:_ :: [Int]+    , _ + id x:_ :: [Int]+    , _ + id 0:_ :: [Int]+    , _ + id (id _):_ :: [Int]+    , _ + negate _:_ :: [Int]+    , _ + abs _:_ :: [Int]+    , _ + (_ + _):_ :: [Int]+    , _ + head _:_ :: [Int]+    , _ + ord _:_ :: [Int]+    , x + x:_ :: [Int]+    , x + 0:_ :: [Int]+    , x + id _:_ :: [Int]+    , 0 + x:_ :: [Int]+    , 0 + 0:_ :: [Int]+    , 0 + id _:_ :: [Int]+    , id _ + x:_ :: [Int]+    , id _ + 0:_ :: [Int]+    , id _ + id _:_ :: [Int]+    , _ * x:_ :: [Int]+    , _ * 0:_ :: [Int]+    , _ * id _:_ :: [Int]+    , f x:_ :: [Int]+    , f 0:_ :: [Int]+    , f (id _):_ :: [Int]+    , y + _:_ :: [Int]+    , 1 + _:_ :: [Int]+    , id x + _:_ :: [Int]+    , id 0 + _:_ :: [Int]+    , id (id _) + _:_ :: [Int]+    , negate _ + _:_ :: [Int]+    , abs _ + _:_ :: [Int]+    , (_ + _) + _:_ :: [Int]+    , head _ + _:_ :: [Int]+    , ord _ + _:_ :: [Int]+    , x * _:_ :: [Int]+    , 0 * _:_ :: [Int]+    , id _ * _:_ :: [Int]+    , g _:_ :: [Int]+    , head ys:_ :: [Int]+    , head [0]:_ :: [Int]+    , head (_:xs):_ :: [Int]+    , head [_]:_ :: [Int]+    , head (_:_:_):_ :: [Int]+    , head (x:_):_ :: [Int]+    , head (0:_):_ :: [Int]+    , head (id _:_):_ :: [Int]+    , head (tail _):_ :: [Int]+    , head (_ ++ _):_ :: [Int]+    , ord d:_ :: [Int]+    , ord ' ':_ :: [Int]+    , tail zs :: [Int]+    , tail [0,0] :: [Int]+    , tail [1] :: [Int]+    , tail (_:ys) :: [Int]+    , tail (_:[0]) :: [Int]+    , tail (_:_:xs) :: [Int]+    , tail [_,_] :: [Int]+    , tail (_:_:_:_) :: [Int]+    , tail (_:x:_) :: [Int]+    , tail (_:0:_) :: [Int]+    , tail (_:id _:_) :: [Int]+    , tail (_:tail _) :: [Int]+    , tail (_:(_ ++ _)) :: [Int]+    , tail (x:xs) :: [Int]+    , tail [x] :: [Int]+    , tail (x:_:_) :: [Int]+    , tail (0:xs) :: [Int]+    , tail [0] :: [Int]+    , tail (0:_:_) :: [Int]+    , tail (id _:xs) :: [Int]+    , tail [id _] :: [Int]+    , tail (id _:_:_) :: [Int]+    , tail (y:_) :: [Int]+    , tail (1:_) :: [Int]+    , tail (id x:_) :: [Int]+    , tail (id 0:_) :: [Int]+    , tail (id (id _):_) :: [Int]+    , tail (negate _:_) :: [Int]+    , tail (abs _:_) :: [Int]+    , tail (_ + _:_) :: [Int]+    , tail (head _:_) :: [Int]+    , tail (ord _:_) :: [Int]+    , tail (tail xs) :: [Int]+    , tail (tail []) :: [Int]+    , tail (tail (_:_)) :: [Int]+    , tail (_ ++ xs) :: [Int]+    , tail (_ ++ []) :: [Int]+    , tail (_ ++ (_:_)) :: [Int]+    , tail (xs ++ _) :: [Int]+    , tail ([] ++ _) :: [Int]+    , tail ((_:_) ++ _) :: [Int]+    , tail (sort _) :: [Int]+    , tail (insert _ _) :: [Int]+    , _ ++ zs :: [Int]+    , _ ++ [0,0] :: [Int]+    , _ ++ [1] :: [Int]+    , _ ++ (_:ys) :: [Int]+    , _ ++ (_:[0]) :: [Int]+    , _ ++ (_:_:xs) :: [Int]+    , _ ++ [_,_] :: [Int]+    , _ ++ (_:_:_:_) :: [Int]+    , _ ++ (_:x:_) :: [Int]+    , _ ++ (_:0:_) :: [Int]+    , _ ++ (_:id _:_) :: [Int]+    , _ ++ (_:tail _) :: [Int]+    , _ ++ (_:(_ ++ _)) :: [Int]+    , _ ++ (x:xs) :: [Int]+    , _ ++ [x] :: [Int]+    , _ ++ (x:_:_) :: [Int]+    , _ ++ (0:xs) :: [Int]+    , _ ++ [0] :: [Int]+    , _ ++ (0:_:_) :: [Int]+    , _ ++ (id _:xs) :: [Int]+    , _ ++ [id _] :: [Int]+    , _ ++ (id _:_:_) :: [Int]+    , _ ++ (y:_) :: [Int]+    , _ ++ (1:_) :: [Int]+    , _ ++ (id x:_) :: [Int]+    , _ ++ (id 0:_) :: [Int]+    , _ ++ (id (id _):_) :: [Int]+    , _ ++ (negate _:_) :: [Int]+    , _ ++ (abs _:_) :: [Int]+    , _ ++ (_ + _:_) :: [Int]+    , _ ++ (head _:_) :: [Int]+    , _ ++ (ord _:_) :: [Int]+    , _ ++ tail xs :: [Int]+    , _ ++ tail [] :: [Int]+    , _ ++ tail (_:_) :: [Int]+    , _ ++ (_ ++ xs) :: [Int]+    , _ ++ (_ ++ []) :: [Int]+    , _ ++ (_ ++ (_:_)) :: [Int]+    , _ ++ (xs ++ _) :: [Int]+    , _ ++ ([] ++ _) :: [Int]+    , _ ++ ((_:_) ++ _) :: [Int]+    , _ ++ sort _ :: [Int]+    , _ ++ insert _ _ :: [Int]+    , xs ++ ys :: [Int]+    , xs ++ [0] :: [Int]+    , xs ++ (_:xs) :: [Int]+    , xs ++ [_] :: [Int]+    , xs ++ (_:_:_) :: [Int]+    , xs ++ (x:_) :: [Int]+    , xs ++ (0:_) :: [Int]+    , xs ++ (id _:_) :: [Int]+    , xs ++ tail _ :: [Int]+    , xs ++ (_ ++ _) :: [Int]+    , [] ++ ys :: [Int]+    , [] ++ [0] :: [Int]+    , [] ++ (_:xs) :: [Int]+    , [] ++ [_] :: [Int]+    , [] ++ (_:_:_) :: [Int]+    , [] ++ (x:_) :: [Int]+    , [] ++ (0:_) :: [Int]+    , [] ++ (id _:_) :: [Int]+    , [] ++ tail _ :: [Int]+    , [] ++ (_ ++ _) :: [Int]+    , (_:_) ++ ys :: [Int]+    , (_:_) ++ [0] :: [Int]+    , (_:_) ++ (_:xs) :: [Int]+    , (_:_) ++ [_] :: [Int]+    , (_:_) ++ (_:_:_) :: [Int]+    , (_:_) ++ (x:_) :: [Int]+    , (_:_) ++ (0:_) :: [Int]+    , (_:_) ++ (id _:_) :: [Int]+    , (_:_) ++ tail _ :: [Int]+    , (_:_) ++ (_ ++ _) :: [Int]+    , ys ++ xs :: [Int]+    , ys ++ [] :: [Int]+    , ys ++ (_:_) :: [Int]+    , [0] ++ xs :: [Int]+    , [0] ++ [] :: [Int]+    , [0] ++ (_:_) :: [Int]+    , (_:xs) ++ xs :: [Int]+    , (_:xs) ++ [] :: [Int]+    , (_:xs) ++ (_:_) :: [Int]+    , [_] ++ xs :: [Int]+    , [_] ++ [] :: [Int]+    , [_] ++ (_:_) :: [Int]+    , (_:_:_) ++ xs :: [Int]+    , (_:_:_) ++ [] :: [Int]+    , (_:_:_) ++ (_:_) :: [Int]+    , (x:_) ++ xs :: [Int]+    , (x:_) ++ [] :: [Int]+    , (x:_) ++ (_:_) :: [Int]+    , (0:_) ++ xs :: [Int]+    , (0:_) ++ [] :: [Int]+    , (0:_) ++ (_:_) :: [Int]+    , (id _:_) ++ xs :: [Int]+    , (id _:_) ++ [] :: [Int]+    , (id _:_) ++ (_:_) :: [Int]+    , tail _ ++ xs :: [Int]+    , tail _ ++ [] :: [Int]+    , tail _ ++ (_:_) :: [Int]+    , (_ ++ _) ++ xs :: [Int]+    , (_ ++ _) ++ [] :: [Int]+    , (_ ++ _) ++ (_:_) :: [Int]+    , zs ++ _ :: [Int]+    , [0,0] ++ _ :: [Int]+    , [1] ++ _ :: [Int]+    , (_:ys) ++ _ :: [Int]+    , (_:[0]) ++ _ :: [Int]+    , (_:_:xs) ++ _ :: [Int]+    , [_,_] ++ _ :: [Int]+    , (_:_:_:_) ++ _ :: [Int]+    , (_:x:_) ++ _ :: [Int]+    , (_:0:_) ++ _ :: [Int]+    , (_:id _:_) ++ _ :: [Int]+    , (_:tail _) ++ _ :: [Int]+    , (_:(_ ++ _)) ++ _ :: [Int]+    , (x:xs) ++ _ :: [Int]+    , [x] ++ _ :: [Int]+    , (x:_:_) ++ _ :: [Int]+    , (0:xs) ++ _ :: [Int]+    , [0] ++ _ :: [Int]+    , (0:_:_) ++ _ :: [Int]+    , (id _:xs) ++ _ :: [Int]+    , [id _] ++ _ :: [Int]+    , (id _:_:_) ++ _ :: [Int]+    , (y:_) ++ _ :: [Int]+    , (1:_) ++ _ :: [Int]+    , (id x:_) ++ _ :: [Int]+    , (id 0:_) ++ _ :: [Int]+    , (id (id _):_) ++ _ :: [Int]+    , (negate _:_) ++ _ :: [Int]+    , (abs _:_) ++ _ :: [Int]+    , (_ + _:_) ++ _ :: [Int]+    , (head _:_) ++ _ :: [Int]+    , (ord _:_) ++ _ :: [Int]+    , tail xs ++ _ :: [Int]+    , tail [] ++ _ :: [Int]+    , tail (_:_) ++ _ :: [Int]+    , (_ ++ xs) ++ _ :: [Int]+    , (_ ++ []) ++ _ :: [Int]+    , (_ ++ (_:_)) ++ _ :: [Int]+    , (xs ++ _) ++ _ :: [Int]+    , ([] ++ _) ++ _ :: [Int]+    , ((_:_) ++ _) ++ _ :: [Int]+    , sort _ ++ _ :: [Int]+    , insert _ _ ++ _ :: [Int]+    , sort ys :: [Int]+    , sort [0] :: [Int]+    , sort (_:xs) :: [Int]+    , sort [_] :: [Int]+    , sort (_:_:_) :: [Int]+    , sort (x:_) :: [Int]+    , sort (0:_) :: [Int]+    , sort (id _:_) :: [Int]+    , sort (tail _) :: [Int]+    , sort (_ ++ _) :: [Int]+    , insert _ ys :: [Int]+    , insert _ [0] :: [Int]+    , insert _ (_:xs) :: [Int]+    , insert _ [_] :: [Int]+    , insert _ (_:_:_) :: [Int]+    , insert _ (x:_) :: [Int]+    , insert _ (0:_) :: [Int]+    , insert _ (id _:_) :: [Int]+    , insert _ (tail _) :: [Int]+    , insert _ (_ ++ _) :: [Int]+    , insert x xs :: [Int]+    , insert x [] :: [Int]+    , insert x (_:_) :: [Int]+    , insert 0 xs :: [Int]+    , insert 0 [] :: [Int]+    , insert 0 (_:_) :: [Int]+    , insert (id _) xs :: [Int]+    , insert (id _) [] :: [Int]+    , insert (id _) (_:_) :: [Int]+    , insert y _ :: [Int]+    , insert 1 _ :: [Int]+    , insert (id x) _ :: [Int]+    , insert (id 0) _ :: [Int]+    , insert (id (id _)) _ :: [Int]+    , insert (negate _) _ :: [Int]+    , insert (abs _) _ :: [Int]+    , insert (_ + _) _ :: [Int]+    , insert (head _) _ :: [Int]+    , insert (ord _) _ :: [Int]+    , (z +) :: Int -> Int+    , ((-1) +) :: Int -> Int+    , (id y +) :: Int -> Int+    , (id 1 +) :: Int -> Int+    , (id (id x) +) :: Int -> Int+    , (id (id 0) +) :: Int -> Int+    , (id (id (id _)) +) :: Int -> Int+    , (id (negate _) +) :: Int -> Int+    , (id (abs _) +) :: Int -> Int+    , (id (_ + _) +) :: Int -> Int+    , (id (head _) +) :: Int -> Int+    , (id (ord _) +) :: Int -> Int+    , (negate x +) :: Int -> Int+    , (negate 0 +) :: Int -> Int+    , (negate (id _) +) :: Int -> Int+    , (abs x +) :: Int -> Int+    , (abs 0 +) :: Int -> Int+    , (abs (id _) +) :: Int -> Int+    , ((_ + x) +) :: Int -> Int+    , ((_ + 0) +) :: Int -> Int+    , ((_ + id _) +) :: Int -> Int+    , ((x + _) +) :: Int -> Int+    , ((0 + _) +) :: Int -> Int+    , ((id _ + _) +) :: Int -> Int+    , (_ * _ +) :: Int -> Int+    , (f _ +) :: Int -> Int+    , (head xs +) :: Int -> Int+    , (head [] +) :: Int -> Int+    , (head (_:_) +) :: Int -> Int+    , (ord c +) :: Int -> Int+    , (ord 'a' +) :: Int -> Int+    , (y *) :: Int -> Int+    , (1 *) :: Int -> Int+    , (id x *) :: Int -> Int+    , (id 0 *) :: Int -> Int+    , (id (id _) *) :: Int -> Int+    , (negate _ *) :: Int -> Int+    , (abs _ *) :: Int -> Int+    , ((_ + _) *) :: Int -> Int+    , (head _ *) :: Int -> Int+    , (ord _ *) :: Int -> Int+    , h :: Int -> Int+    , (q ||) :: Bool -> Bool+    , (not p ||) :: Bool -> Bool+    , (not False ||) :: Bool -> Bool+    , (not True ||) :: Bool -> Bool+    , (not (not _) ||) :: Bool -> Bool+    , ((_ || _) ||) :: Bool -> Bool+    , (p &&) :: Bool -> Bool+    , (False &&) :: Bool -> Bool+    , (True &&) :: Bool -> Bool+    , (not _ &&) :: Bool -> Bool+    , (_ ==>) :: Bool -> Bool+    ]+  , ...+  ]
changelog.md view
@@ -2,9 +2,29 @@ =====================  -v1.0.12--------+v1.0.14 (January 2024)+---------------------- +* `Data.Express`: add `>$$<`, `>$$` and `$$<`.++* fix pretty-printing bug:+  an expression encoding `x:y:([] ++ _) :: [Int]`+  was being displayed as `[x,y,] ++ _ :: [Int]`.++* `Data.Express.Fixtures`: update `-..`, `--..` and `--..-`.++* improve pretty-printing++* make ordering of `typesIn` consistent between GHC 9.8 and earlier versions++* fix a test failure on GHC 9.6 (previous GHC versions unaffected)++* simplify and improve testing, new benchmark and minor updates+++v1.0.12 (July 2023)+-------------------+ * make ordering of `typesIn` consistent between GHC 9.6 and earlier versions  * fix a test failure on GHC 9.6 (previous GHC versions unaffected)@@ -17,8 +37,8 @@ * miscellaneous improvements in build and CI scripts  -v1.0.10--------+v1.0.10 (April 2022)+--------------------  * show function-encoded Ordering case expressions exceptionally @@ -29,8 +49,8 @@ * minor updates in Makefile and CI scripts  -v1.0.8-------+v1.0.8 (September 2021)+-----------------------  * `Data.Express.Express.Derive`:   fix generation of `-:` and `->:` in earlier GHC's.@@ -39,8 +59,8 @@   add `unboundVars`, `toBounded` and `toBoundedQ`.  -v1.0.6-------+v1.0.6 (September 2021)+-----------------------  * fix pretty printing of unapplied infixed variable functions:   use `f :: ...`  instead of ``(`f`) :: ...``@@ -51,8 +71,8 @@ * minor fixes in README  -v1.0.4-------+v1.0.4 (July 2021)+------------------  * deeply encode `Ratio`s * add `Express (Complex a)` instance@@ -60,8 +80,8 @@ * `deriveName` now uses `x` for `Num` instances  -v1.0.2-------+v1.0.2 (July 2021)+------------------  * more Express instances: 	- `Double` & `Float`@@ -72,24 +92,24 @@ * minor fix in README  -v1.0.0-------+v1.0.0 (July 2021)+------------------  This release indicates that the `Data.Express` API is now stable.  * no changes since v0.2.0 or v0.1.16.  -v0.2.0-------+v0.2.0 (July 2021)+------------------  This release indicates that the `Data.Express` API is stable.  * no changes since v0.1.16  -v0.1.16--------+v0.1.16 (July 2021)+-------------------  * add `five`, `six`, ... `twelve` to `Data.Express.Fixtures`. @@ -101,8 +121,8 @@ * 100% Haddock coverage on most modules including REPL examples.  -v0.1.14--------+v0.1.14 (June 2021)+-------------------  * permit and pretty-print `[<n>..<m>]` notations. @@ -112,8 +132,8 @@ 	- before they were simply x, y, z  -v0.1.12--------+v0.1.12 (May 2021)+------------------  * `Data.Express.Fixtures`, add several symbols: 	- `hh` and `hhE`;@@ -130,8 +150,8 @@ * Retire Travis as the CI  -v0.1.10--------+v0.1.10 (May 2021)+------------------  * add the `hasHole` and `isComplete` functions * add the `encompasses` function@@ -144,8 +164,8 @@ * add this changelog  -v0.1.8-------+v0.1.8 (April 2021)+-------------------  * slightly change behaviour of `canonicalVariations` and related functions. * add more fixtures and improve fixtures' documentation@@ -153,8 +173,8 @@ * use GitHub actions as CI  -v0.1.6-------+v0.1.6 (April 2021)+-------------------  * add `compareLexicographically` and `compareQuickly` * define behaviour of `canonicalVariations` for some undefined cases@@ -162,8 +182,8 @@ * improve tests  -v0.1.4-------+v0.1.4 (April 2021)+-------------------  * add the `fill` and `isFun` functions * `Data.Express.Fixtures`: more fixtures, define fixity@@ -171,7 +191,8 @@ * improve documentation, tests and lint  -v0.1.3-------+v0.1.3 (March 2020)+------------------- -See the git commit log for v0.1.3 and previous versions.+See the git commit log for v0.1.3 and previous versions+down to as early as February 2019.
eg/u-conjure.hs view
@@ -4,7 +4,7 @@ -- out of partially implemented functions. -- ----- Copyright (C) 2021 Rudy Matela+-- Copyright (C) 2021-2024 Rudy Matela -- Distributed under the 3-Clause BSD licence (see the file LICENSE). -- --@@ -72,7 +72,7 @@     , value "+" ((+) :: Int -> Int -> Int)     , value "*" ((*) :: Int -> Int -> Int)     , value "foldr" (foldr :: (Int -> Int -> Int) -> Int -> [Int] -> Int)-    , value "enumFromTo" (enumFromTo :: Int -> Int -> [Int])+    , value ".." (enumFromTo :: Int -> Int -> [Int])     ]    conjure "second"  second   listPrimitives
+ eg/u-conjure.txt view
@@ -0,0 +1,24 @@+square :: Int -> Int+square x  =  x * x++add :: Int -> Int -> Int+add x y  =  x + y++factorial :: Int -> Int+cannot conjure++factorial :: Int -> Int+factorial x  =  foldr (*) 1 [1..x]++second :: [Int] -> Int+second xs  =  head (tail xs)++(++) :: [Int] -> [Int] -> [Int]+xs ++ ys  =  foldr (:) ys xs++reverse :: [Int] -> [Int]+cannot conjure++reverse :: [Int] -> [Int]+reverse xs  =  foldr (foldr (:) . unit) [] xs+
eg/u-extrapolate.hs view
@@ -1,6 +1,6 @@ -- u-extrapolate.hs -- micro Extrapolate / Extrapolite ----- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). -- -- A small property-based testing library capable of generalizing
+ eg/u-extrapolate.txt view
@@ -0,0 +1,26 @@+sort . sort = sort++++ Tests passed.++length . nub = length  (incorrect when there are repeated elements)+*** Falsified, counterexample:  [0,0]+               generalization:  x:x:xs++xs `union` ys == ys `union` xs  (incorrect for repeated elements)+*** Falsified, counterexample:  ([],[0,0])+               generalization:  (xs,x:x:xs)+               generalization:  ([],x:x:xs)++\(x,y) -> x + y == y + x++++ Tests passed.++\x -> x == x + 1  (always incorrect)+*** Falsified, counterexample:  0+               generalization:  x++\(x,y) -> x + y == x + x  (incorrect)+*** Falsified, counterexample:  (0,1)++\(x,y) -> x /= y  (incorrect whenever x and y are equal)+*** Falsified, counterexample:  (0,0)+               generalization:  (x,x)+
eg/u-speculate.hs view
@@ -1,6 +1,6 @@ -- u-speculate.hs -- micro Speculate / Speculite ----- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). -- -- A small library capable of conjecturing laws about Haskell functions@@ -90,14 +90,14 @@ candidateEquationsFrom :: [Expr] -> [Expr] candidateEquationsFrom es'  =  [e1 -==- e2 | e1 <- es, e2 <- es, e1 >= e2]   where-  es = candidateExprsFrom es'+  es  =  candidateExprsFrom es'  candidateExprsFrom :: [Expr] -> [Expr] candidateExprsFrom  =  concat . take 5 . expressionsT   where   expressionsT ds  =  [ds] \/ (delay $ productMaybeWith ($$) es es)     where-    es = expressionsT ds+    es  =  expressionsT ds  isTrue :: Expr -> Bool isTrue  =  all (eval False) . take 60 . grounds@@ -117,11 +117,11 @@ ex -==- ey  =  head $   [eqn | eq <- eqs, let eqn = eq :$ ex :$ ey, isWellTyped eqn] ++ [val False]   where-  eqs = [ value "==" ((==) :: Int -> Int -> Bool)-        , value "==" ((==) :: Bool -> Bool -> Bool)-        , value "==" ((==) :: [Int] -> [Int] -> Bool)-        , value "==" ((==) :: [Bool] -> [Bool] -> Bool)-        ]+  eqs  =  [ value "==" ((==) :: Int -> Int -> Bool)+          , value "==" ((==) :: Bool -> Bool -> Bool)+          , value "==" ((==) :: [Int] -> [Int] -> Bool)+          , value "==" ((==) :: [Bool] -> [Bool] -> Bool)+          ]  lhs, rhs :: Expr -> Expr lhs (((Value "==" _) :$ e) :$ _)  =  e
+ eg/u-speculate.txt view
@@ -0,0 +1,45 @@+Equations about _, 0, (+), abs:+abs 0  =  0+x + 0  =  x+0 + x  =  x+abs (abs x)  =  abs x+x + y  =  y + x+abs (x + y)  =  abs (y + x)+abs (x + abs x)  =  x + abs x+abs (abs x + x)  =  x + abs x+abs x + abs x  =  abs (x + x)+x + (y + z)  =  x + (z + y)+x + (y + z)  =  y + (x + z)+x + (y + z)  =  y + (z + x)+x + (y + z)  =  z + (x + y)+x + (y + z)  =  z + (y + x)+(x + y) + z  =  x + (y + z)+(x + y) + z  =  x + (z + y)+(x + y) + z  =  y + (x + z)+(x + y) + z  =  y + (z + x)+(x + y) + z  =  z + (y + x)+(x + y) + z  =  (x + z) + y+(x + y) + z  =  (y + x) + z+(x + y) + z  =  (y + z) + x+(x + y) + z  =  (z + x) + y+(x + y) + z  =  (z + y) + x++Equations about _, False, True, not:+not False  =  True+not True  =  False+not (not p)  =  p++Equations about _, _, [], (:), (++), sort:+sort []  =  []+xs ++ []  =  xs+[] ++ xs  =  xs+sort (sort xs)  =  sort xs+sort [x]  =  [x]+[x] ++ xs  =  x:xs+sort (xs ++ ys)  =  sort (ys ++ xs)+sort (x:sort xs)  =  sort (x:xs)+sort (xs ++ sort ys)  =  sort (xs ++ ys)+sort (sort xs ++ ys)  =  sort (xs ++ ys)+(x:xs) ++ ys  =  x:(xs ++ ys)+(xs ++ ys) ++ zs  =  xs ++ (ys ++ zs)+
etc/hugs-backports/Data/Function.hs view
@@ -1,7 +1,7 @@ -- Backport of Data.Function for Hugs 2006-09. -- Only exports `on` ----- Copyright (c) 2018-2021 Rudy Matela.+-- Copyright (c) 2018-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). module Data.Function   ( on
express.cabal view
@@ -1,6 +1,6 @@ -- Cabal file for express name: express-version: 1.0.12+version: 1.0.14 synopsis: Dynamically-typed expressions involving function application and variables. description:   Express is a library for manipulating dynamically typed Haskell expressions.@@ -37,14 +37,16 @@                   , mk/Toplibs.hs                   , stack.yaml                   , test/sdist-                  , test/model/bench/*.out-                  , test/model/eg/*.out+                  , bench/*.txt+                  , eg/*.txt                   , bench/versions                   , bench/runtime/zero/versions                   , bench/runtime/zero/bench/*.runtime                   , bench/runtime/zero/eg/*.runtime                   , etc/hugs-backports/Data/Function.hs-tested-with: GHC==9.4+tested-with: GHC==9.8+           , GHC==9.6+           , GHC==9.4            , GHC==9.2            , GHC==9.0            , GHC==8.10@@ -60,7 +62,7 @@ source-repository this   type:           git   location:       https://github.com/rudymatela/express-  tag:            v1.0.12+  tag:            v1.0.14  library   exposed-modules:     Data.Express@@ -103,6 +105,14 @@   build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.10   default-language:    Haskell2010 +test-suite basic+  type:                exitcode-stdio-1.0+  main-is:             basic.hs+  hs-source-dirs:      test+  other-modules:       Test, Test.ListableExpr+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.10+  default-language:    Haskell2010+ test-suite canon   type:                exitcode-stdio-1.0   main-is:             canon.hs@@ -266,6 +276,14 @@ benchmark tiers   type:                exitcode-stdio-1.0   main-is:             tiers.hs+  hs-source-dirs:      bench, test+  other-modules:       Test, Test.ListableExpr+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.10+  default-language:    Haskell2010++benchmark tiers-complete+  type:                exitcode-stdio-1.0+  main-is:             tiers-complete.hs   hs-source-dirs:      bench, test   other-modules:       Test, Test.ListableExpr   build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.10
mk/depend.mk view
@@ -167,6 +167,34 @@   test/Test/ListableExpr.hs \   bench/sort.hs \   mk/toplibs+bench/tiers-complete.o: \+  test/Test.hs \+  test/Test/ListableExpr.hs \+  src/Data/Express/Utils/Typeable.hs \+  src/Data/Express/Utils/TH.hs \+  src/Data/Express/Utils/String.hs \+  src/Data/Express/Utils.hs \+  src/Data/Express/Utils/List.hs \+  src/Data/Express.hs \+  src/Data/Express/Name.hs \+  src/Data/Express/Name/Derive.hs \+  src/Data/Express/Match.hs \+  src/Data/Express/Map.hs \+  src/Data/Express/Instances.hs \+  src/Data/Express/Hole.hs \+  src/Data/Express/Fold.hs \+  src/Data/Express/Fixtures.hs \+  src/Data/Express/Express.hs \+  src/Data/Express/Express/Derive.hs \+  src/Data/Express/Core.hs \+  src/Data/Express/Canon.hs \+  src/Data/Express/Basic.hs \+  bench/tiers-complete.hs+bench/tiers-complete: \+  test/Test.hs \+  test/Test/ListableExpr.hs \+  bench/tiers-complete.hs \+  mk/toplibs bench/tiers.o: \   test/Test.hs \   test/Test/ListableExpr.hs \@@ -426,10 +454,12 @@ src/Data/Express/Name/Derive.o: \   src/Data/Express/Utils/TH.hs \   src/Data/Express/Utils/String.hs \+  src/Data/Express/Utils/List.hs \   src/Data/Express/Name.hs \   src/Data/Express/Name/Derive.hs src/Data/Express/Name.o: \   src/Data/Express/Utils/String.hs \+  src/Data/Express/Utils/List.hs \   src/Data/Express/Name.hs src/Data/Express.o: \   src/Data/Express/Utils/Typeable.hs \@@ -465,7 +495,8 @@   src/Data/Express/Utils.hs \   src/Data/Express/Utils/List.hs src/Data/Express/Utils/String.o: \-  src/Data/Express/Utils/String.hs+  src/Data/Express/Utils/String.hs \+  src/Data/Express/Utils/List.hs src/Data/Express/Utils/TH.o: \   src/Data/Express/Utils/TH.hs src/Data/Express/Utils/Typeable.o: \@@ -473,6 +504,34 @@   src/Data/Express/Utils/String.hs \   src/Data/Express/Utils.hs \   src/Data/Express/Utils/List.hs+test/basic.o: \+  test/Test.hs \+  test/Test/ListableExpr.hs \+  test/basic.hs \+  src/Data/Express/Utils/Typeable.hs \+  src/Data/Express/Utils/TH.hs \+  src/Data/Express/Utils/String.hs \+  src/Data/Express/Utils.hs \+  src/Data/Express/Utils/List.hs \+  src/Data/Express.hs \+  src/Data/Express/Name.hs \+  src/Data/Express/Name/Derive.hs \+  src/Data/Express/Match.hs \+  src/Data/Express/Map.hs \+  src/Data/Express/Instances.hs \+  src/Data/Express/Hole.hs \+  src/Data/Express/Fold.hs \+  src/Data/Express/Fixtures.hs \+  src/Data/Express/Express.hs \+  src/Data/Express/Express/Derive.hs \+  src/Data/Express/Core.hs \+  src/Data/Express/Canon.hs \+  src/Data/Express/Basic.hs+test/basic: \+  test/Test.hs \+  test/Test/ListableExpr.hs \+  test/basic.hs \+  mk/toplibs test/canon.o: \   test/Test.hs \   test/Test/ListableExpr.hs \
mk/ghcdeps view
@@ -2,7 +2,7 @@ # # ghcdeps: generate Haskell make dependencies for compiling with GHC. #-# Copyright (c) 2015-2021 Rudy Matela.+# Copyright (c) 2015-2024 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # From a list of files provided on standard input,
mk/haddock-i view
@@ -2,7 +2,7 @@ # # haddock-i: list haddock's -i parameters. #-# Copyright (c) 2015-2021 Rudy Matela.+# Copyright (c) 2015-2024 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # $ haddock-i <package1> <package2> ... <packageN>
mk/haskell.mk view
@@ -1,6 +1,6 @@ # Implicit rules for compiling Haskell code. #-# Copyright (c) 2015-2023 Rudy Matela.+# Copyright (c) 2015-2024 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # You can optionally configure the "Configuration variables" below in your main@@ -92,8 +92,9 @@ install-dependencies: 	if [ -n "$(INSTALL_DEPS)" ]; then \ 		cabal update && \-		$(CABAL_INSTALL) $(INSTALL_DEPS); \+		$(CABAL_INSTALL) $(INSTALL_DEPS) || true; \ 	fi+	# above, "|| true" is needed for cabal >= 3.10.2  # haddock rules haddock: doc/index.html
mk/install-on view
@@ -2,7 +2,7 @@ # # mk/install-on: install or updates the mk folder on a Haskell project #-# Copyright (c) 2019-2021 Rudy Matela.+# Copyright (c) 2019-2024 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # usage: ./mk/install-on path/to/project
src/Data/Express.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -173,6 +173,11 @@   , nubValues   , nubVars   , nubConsts++  -- -- -- Data.Express.Basic exports -- -- --+  , (>$$<)+  , (>$$)+  , ($$<)    -- -- -- Data.Express.Map exports -- -- -- 
src/Data/Express/Basic.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Basic--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -21,6 +21,11 @@   , module Data.Express.Map   , module Data.Express.Fold   , module Data.Express.Hole++  -- * Additional utilities+  , (>$$<)+  , (>$$)+  , ($$<)   ) where @@ -28,3 +33,26 @@ import Data.Express.Map import Data.Express.Fold import Data.Express.Hole++import Data.Maybe (catMaybes, mapMaybe)++-- | Lists valid applications between lists of 'Expr's+--+-- > > [notE, plus] >$$< [false, true, zero]+-- > [not False :: Bool,not True :: Bool,(0 +) :: Int -> Int]+(>$$<) :: [Expr] -> [Expr] -> [Expr]+efs >$$< exs  =  catMaybes [ef $$ ex | ef <- efs, ex <- exs]++-- | Lists valid applications between a list of 'Expr's and an 'Expr'.+--+-- > > [plus, times] >$$ zero+-- > [(0 +) :: Int -> Int,(0 *) :: Int -> Int]+(>$$) :: [Expr] -> Expr -> [Expr]+efs >$$ ex  =  mapMaybe ($$ ex) efs++-- | Lists valid applications between an 'Expr' and a list of 'Expr's.+--+-- > > notE >$$< [false, true, zero]+-- > [not False :: Bool,not True :: Bool]+($$<) :: Expr -> [Expr] -> [Expr]+ef $$< exs  =  mapMaybe (ef $$) exs
src/Data/Express/Canon.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Canon--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -62,8 +62,7 @@                    else (e, n `varAsTypeOf` e):bs     where     existingNames = [n | (_,Value ('_':n) _) <- bs]-    freshNames = namesFor e \\ existingNames-    n = head freshNames+    (n:_) = namesFor e \\ existingNames  -- | -- Like 'isCanonical' but allows specifying@@ -290,12 +289,12 @@ fastCanonicalVariations :: Expr -> [Expr] fastCanonicalVariations e   | null hs'   =  [e]-  | otherwise  =  concatMap fastCanonicalVariations-               .  map (fill e) . fillings 0+  | otherwise  =  concatMap (fastCanonicalVariations . fill e)+               .  fillings 0                $  [h | h <- hs', typ h == typ h']   where-  hs' = holes e-  h' = head hs'+  hs'     =  holes e+  (h':_)  =  hs'    names  =  variableNamesFromTemplate "x" \\ varnames e @@ -326,7 +325,7 @@ fastMostSpecificVariation :: Expr -> Expr fastMostSpecificVariation e  =  fill e (map (name `varAsTypeOf`) (holes e))   where-  name  =  head $ variableNamesFromTemplate "x" \\ varnames e+  (name:_)  =  variableNamesFromTemplate "x" \\ varnames e  -- | -- Variable names existing in a given Expr.@@ -352,7 +351,7 @@ -- -- This function is not exported. canonicalizeKeeping :: [Expr] -> Expr -> Expr-canonicalizeKeeping vs e  =  canonicalizeWith namesFor e+canonicalizeKeeping vs  =  canonicalizeWith namesFor   where   nm (Value ('_':n) _)  =  n   namesFor v | v `elem` vs  =  nm v : err
src/Data/Express/Core.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Core--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -153,7 +153,7 @@ -- > > value "sort" (sort :: [Bool] -> [Bool]) -- > sort :: [Bool] -> [Bool] value :: Typeable a => String -> a -> Expr-value s x = Value s (toDyn x)+value s x  =  Value s (toDyn x)  -- | /O(1)/. -- A shorthand for 'value' for values that are 'Show' instances.@@ -173,7 +173,7 @@ -- > val 'a'   =  value "'a'" 'a' -- > val True  =  value "True" True val :: (Typeable a, Show a) => a -> Expr-val x = value (show x) x+val x  =  value (show x) x  -- | /O(n)/. -- Creates an 'Expr' representing a function application.@@ -195,7 +195,7 @@ e1 $$ e2 | isIllTyped e  =  Nothing          | otherwise     =  Just e   where-  e = e1 :$ e2+  e  =  e1 :$ e2  -- | /O(1)/. -- Creates an 'Expr' representing a variable with the given name and argument@@ -214,7 +214,7 @@ -- a variable is just a 'value' whose string representation -- starts with underscore (@'_'@). var :: Typeable a => String -> a -> Expr-var s a = value ('_':s) (undefined `asTypeOf` a)+var s a  =  value ('_':s) (undefined `asTypeOf` a)  -- | /O(n)/. -- Computes the type of an expression.  This raises errors, but this should@@ -244,7 +244,8 @@ typ :: Expr -> TypeRep typ  =  either err id . etyp   where-  err (t1, t2)  =  error $ "type mismatch, cannot apply `"+  err (t1, t2)  =  errorOn "typ"+                $  "type mismatch, cannot apply `"                 ++ show t1 ++ "' to `" ++ show t2 ++ "'"  -- | /O(n)/.@@ -274,8 +275,8 @@ -- > > etyp ((absE :$ bee) :$ one) -- > Left (Int -> Int, Char) etyp :: Expr -> Either (TypeRep, TypeRep) TypeRep-etyp (Value _ d) = Right $ dynTypeRep d-etyp (e1 :$ e2) = case (etyp e1, etyp e2) of+etyp (Value _ d)  =  Right $ dynTypeRep d+etyp (e1 :$ e2)  =  case (etyp e1, etyp e2) of   (Right t1, Right t2) -> case t1 `funResultTy` t2 of                           Nothing -> Left (t1,t2)                           Just t  -> Right t@@ -368,7 +369,7 @@ -- > > evaluate $ negateE :$ bee :: Maybe Int -- > Nothing evaluate :: Typeable a => Expr -> Maybe a-evaluate e = toDynamic e >>= fromDynamic+evaluate e  =  toDynamic e >>= fromDynamic  -- | /O(n)/. -- Evaluates an expression when possible (correct type).@@ -387,7 +388,7 @@ -- > > eval 0 $ two -+- val '3' :: Int -- > 0 eval :: Typeable a => a -> Expr -> a-eval x e = fromMaybe x (evaluate e)+eval x e  =  fromMaybe x (evaluate e)  -- | /O(n)/. -- Evaluates an expression when possible (correct type).@@ -401,10 +402,10 @@ -- -- This may raise errors, please consider using 'eval' or 'evaluate'. evl :: Typeable a => Expr -> a-evl e = r+evl e  =  r   where-  r = eval err e-  err = error $ "evl: cannot evaluate Expr `" ++ show e ++ "' at the " ++ show (typeOf r) ++ " type"+  r  =  eval err e+  err  =  errorOn "evl" $ "cannot evaluate Expr `" ++ show e ++ "' at the " ++ show (typeOf r) ++ " type"  -- | /O(n)/. -- Evaluates an expression to a terminal 'Dynamic' value when possible.@@ -419,23 +420,23 @@ -- > > toDynamic $ value "abs" (abs :: Int -> Int) :$ val 'a' -- > Nothing toDynamic :: Expr -> Maybe Dynamic-toDynamic (Value _ x) = Just x-toDynamic (e1 :$ e2)  = do v1 <- toDynamic e1-                           v2 <- toDynamic e2-                           dynApply v1 v2+toDynamic (Value _ x)  =  Just x+toDynamic (e1 :$ e2)  =  do v1 <- toDynamic e1+                            v2 <- toDynamic e2+                            dynApply v1 v2  -- | Shows 'Expr's with their types. -- -- > > show (value "not" not :$ val False) -- > "not False :: Bool" instance Show Expr where-  showsPrec d e = showParen (d > 10)-                $ showsPrecExpr 0 e-                . showString " :: "-                . showsTypeExpr e+  showsPrec d e  =  showParen (d > 10)+                 $  showsPrecExpr 0 e+                 .  showString " :: "+                 .  showsTypeExpr e  showsTypeExpr :: Expr -> String -> String-showsTypeExpr e = case etyp e of+showsTypeExpr e  =  case etyp e of   Left (t1,t2) -> showString "ill-typed # "                 . shows t1                 . showString " $ "@@ -444,106 +445,97 @@   Right t -> shows t  showsPrecExpr :: Int -> Expr -> String -> String-showsPrecExpr d (Value "_" _) = showString "_" -- a hole+showsPrecExpr d (Value "_" _)  =  showString "_" -- a hole showsPrecExpr d (Value ('_':s) _)  -- a variable-  | isInfixedPrefix s = showString $ toPrefix s-  | otherwise         = showParen (isInfix s) $ showString s-showsPrecExpr d (Value s _) | isInfixedPrefix s = showString $ toPrefix s-showsPrecExpr d (Value s _) | isNegativeLiteral s = showParen (d > 0) $ showString s-showsPrecExpr d (Value s _) = showParen sp $ showString s+  | isInfixedPrefix s  =  showString $ toPrefix s+  | otherwise          =  showParen (isInfix s) $ showString s+showsPrecExpr d (Value s _) | isInfixedPrefix s  =  showString $ toPrefix s+showsPrecExpr d (Value s _) | isNegativeLiteral s  =  showParen (d > 0) $ showString s+showsPrecExpr d (Value s _)  =  showParen sp $ showString s   where sp = if atomic s then isInfix s else maybe True (d >) $ outernmostPrec s-showsPrecExpr d (Value ":" _ :$ e1 :$ e2)-  | isConst e1 && mtyp e1 == Just (typeOf (undefined :: Char)) =-  case showsTailExpr e2 "" of-    '\"':cs  -> showString ("\"" ++ (init . tail) (showsPrecExpr 0 e1 "") ++ cs)-    cs -> showParen (d > prec ":")-        $ showsOpExpr ":" e1 . showString ":" . showString cs-showsPrecExpr d (Value ":" _ :$ e1 :$ e2) =-  case showsTailExpr e2 "" of-    "[]" -> showString "[" . showsPrecExpr 0 e1 . showString "]"-    '[':cs -> showString "[" . showsPrecExpr 0 e1 . showString "," . showString cs-    cs -> showParen (d > prec ":")-        $ showsOpExpr ":" e1 . showString ":" . showString cs+showsPrecExpr d e@(Value ":" _ :$ _ :$ _)  =+  case unfoldEnd e of+  (es,Value "[]" _) -> showString "["+                     . foldr (.) id (intersperse (showString ",") [showsPrecExpr 0 e | e <- es])+                     . showString "]"+  (es,Value "\"\"" _)+    | hasConstTail es -> let (cs,etc) = span isConst (reverse es)+                         in showParen (not (null etc) && d > prec ":")+                          $ foldr (.) id (intersperse (showString ":") $ [showsOpExpr ":" e | e <- reverse etc])+                          . showString [':' | not (null etc)]+                          . showString "\""+                          . foldr (.) id [showString . init . drop 1 $ s | Value s _ <- reverse cs]+                          . showString "\""+  (es,end) -> showParen (d > prec ":")+            $ foldr (.) id (intersperse (showString ":") $ [showsOpExpr ":" e | e <- es++[end]])+  where+  hasConstTail  =  not . null . takeWhile isConst . reverse showsPrecExpr d ee | isTuple ee = showParen True                                 $ foldr1 (\s1 s2 -> s1 . showString "," . s2)                                          (showsPrecExpr 0 `map` unfoldTuple ee)-showsPrecExpr d (Value "if" _ :$ ep :$ ex :$ ey) =+showsPrecExpr d (Value "if" _ :$ ep :$ ex :$ ey)  =   showParen (d >= 0) $ showString "if "    . showsPrecExpr 0 ep                      . showString " then " . showsPrecExpr 0 ex                      . showString " else " . showsPrecExpr 0 ey-showsPrecExpr d (Value "case" _ :$ ep :$ ex :$ ey) | typ ep == boolTy =+showsPrecExpr d (Value "case" _ :$ ep :$ ex :$ ey) | typ ep == boolTy  =   showParen (d >= 0) $ showString "case "         . showsPrecExpr 0 ep                      . showString " of False -> " . showsPrecExpr 0 ex                      . showString "; True -> "    . showsPrecExpr 0 ey-showsPrecExpr d (Value "case" _ :$ eo :$ ex :$ ey :$ ez) | typ eo == orderingTy =+showsPrecExpr d (Value "case" _ :$ eo :$ ex :$ ey :$ ez) | typ eo == orderingTy  =   showParen (d >= 0) $ showString "case "      . showsPrecExpr 0 eo                      . showString " of LT -> " . showsPrecExpr 0 ex                      . showString "; EQ -> "   . showsPrecExpr 0 ey                      . showString "; GT -> "   . showsPrecExpr 0 ez-showsPrecExpr d (Value ",.." _ :$ ex :$ ey :$ ez) =+showsPrecExpr d (Value ",.." _ :$ ex :$ ey :$ ez)  =   showString "[" . showsPrecExpr 0 ex                  . showString (if dotdot ex && dotdot ey && dotdot ez then "," else ", ")                  . showsPrecExpr 0 ey                  . showString (if dotdot ex && dotdot ey && dotdot ez then ".." else " .. ")                  . showsPrecExpr 0 ez                  . showString "]"-showsPrecExpr d (Value ",.." _ :$ ex :$ ey) =+showsPrecExpr d (Value ",.." _ :$ ex :$ ey)  =   showString "[" . showsPrecExpr 0 ex                  . showString (if dotdot ex && dotdot ey then "," else ", ")                  . showsPrecExpr 0 ey                  . showString (if dotdot ex && dotdot ey then "..]" else " ..]")-showsPrecExpr d (Value ".." _ :$ ex :$ ey) =+showsPrecExpr d (Value ".." _ :$ ex :$ ey)  =   showString "[" . showsPrecExpr 0 ex                  . showString (if dotdot ex && dotdot ey then ".." else " .. ")                  . showsPrecExpr 0 ey                  . showString "]"-showsPrecExpr d (Value ".." _ :$ ex) =+showsPrecExpr d (Value ".." _ :$ ex)  =   showString "[" . showsPrecExpr 0 ex . showString (if dotdot ex then "..]" else " ..]") showsPrecExpr d (Value f' _ :$ e1 :$ e2)-  | isInfix f = showParen (d > prec f)-              $ showsOpExpr f e1-              . showString " " . showString f . showString " "-              . showsOpExpr f e2-  | otherwise = showParen (d > prec " ")-              $ showString f-              . showString " " . showsOpExpr " " e1-              . showString " " . showsOpExpr " " e2+  | isInfix f  =  showParen (d > prec f)+               $  showsOpExpr f e1+               .  showString " " . showString f . showString " "+               .  showsOpExpr f e2+  | otherwise  =  showParen (d > prec " ")+               $  showString f+               .  showString " " . showsOpExpr " " e1+               .  showString " " . showsOpExpr " " e2   where-  f = case f' of "_" -> "_"   -- holes are shown as _-                 ('_':f) -> f -- on variables we drop the preceding _-                 f -> f       -- constants as themselves+  f  =  case f' of "_" -> "_"   -- holes are shown as _+                   ('_':f) -> f -- on variables we drop the preceding _+                   f -> f       -- constants as themselves showsPrecExpr d (Value f' _ :$ e1)-  | isInfix f = showParen True $ showsOpExpr f e1 . showString " " . showString f+  | isInfix f  =  showParen True $ showsOpExpr f e1 . showString " " . showString f   where-  f = case f' of "_" -> "_"   -- holes are shown as _-                 ('_':f) -> f -- on variables we drop the preceding _-                 f -> f       -- constants as themselves-showsPrecExpr d (e1 :$ e2) = showParen (d > prec " ")-                           $ showsPrecExpr (prec " ") e1-                           . showString " "-                           . showsPrecExpr (prec " " + 1) e2+  f  =  case f' of "_" -> "_"   -- holes are shown as _+                   ('_':f) -> f -- on variables we drop the preceding _+                   f -> f       -- constants as themselves+showsPrecExpr d (e1 :$ e2)  =  showParen (d > prec " ")+                            $  showsPrecExpr (prec " ") e1+                            .  showString " "+                            .  showsPrecExpr (prec " " + 1) e2  -- Can we avoid a space using @[<n>..<m>]@? dotdot :: Expr -> Bool dotdot (Value (c:_) _)  =  isNumber c || isLower c || c == '_' || c == '\'' dotdot _  =  False --- bad smell here, repeated code!-showsTailExpr :: Expr -> String -> String-showsTailExpr (Value ":" _ :$ e1 :$ e2)-  | isConst e1 && mtyp e1 == Just (typeOf (undefined :: Char)) =-  case showsPrecExpr 0 e2 "" of-    '\"':cs  -> showString ("\"" ++ (init . tail) (showsPrecExpr 0 e1 "") ++ cs)-    cs -> showsOpExpr ":" e1 . showString ":" . showsTailExpr e2-showsTailExpr (Value ":" _ :$ e1 :$ e2) =-  case showsPrecExpr 0 e2 "" of-    "[]" -> showString "[" . showsPrecExpr 0 e1 . showString "]"-    '[':cs -> showString "[" . showsPrecExpr 0 e1 . showString "," . showString cs-    cs -> showsOpExpr ":" e1 . showString ":" . showsTailExpr e2-showsTailExpr e = showsOpExpr ":" e- showsOpExpr :: String -> Expr -> String -> String-showsOpExpr op = showsPrecExpr (prec op + 1)+showsOpExpr op  =  showsPrecExpr (prec op + 1)  -- | /O(n)/. -- Like 'showPrecExpr' but@@ -561,7 +553,7 @@ -- > > showOpExpr " " (two -*- three) -- > "(2 * 3)" showOpExpr :: String -> Expr -> String-showOpExpr op = showPrecExpr (prec op + 1)+showOpExpr op  =  showPrecExpr (prec op + 1)  -- | /O(n)/. -- Like 'showExpr' but allows specifying the surrounding precedence.@@ -572,7 +564,7 @@ -- > > showPrecExpr 7 (one -+- two) -- > "(1 + 2)" showPrecExpr :: Int -> Expr -> String-showPrecExpr n e = showsPrecExpr n e ""+showPrecExpr n e  =  showsPrecExpr n e ""  -- | /O(n)/. -- Returns a string representation of an expression.@@ -585,7 +577,7 @@ -- > > putStrLn $ showExpr $ (pp -||- true) -&&- (qq -||- false) -- > (p || True) && (q || False) showExpr :: Expr -> String-showExpr = showPrecExpr (-1)+showExpr  =  showPrecExpr (-1)  -- | /O(n)/. -- Does not evaluate values when comparing, but rather uses their@@ -607,7 +599,7 @@ -- when they have smaller complexity ('compareComplexity') -- or when they come first lexicographically ('compareLexicographically'). instance Ord Expr where-  compare = compareComplexity <> compareLexicographically+  compare  =  compareComplexity <> compareLexicographically  -- | /O(n)/. -- Compares the complexity of two 'Expr's.@@ -720,8 +712,8 @@ unfoldApp :: Expr -> [Expr] unfoldApp e  =  u e []   where-  u (ef :$ ex) = u ef . (ex:)-  u ex         = (ex:)+  u (ef :$ ex)  =  u ef . (ex:)+  u ex          =  (ex:)  -- | /O(n)/. -- Unfold a tuple 'Expr' into a list of values.@@ -747,13 +739,29 @@ --       This is intentional, allowing the 'Show' 'Expr' instance --       to present @(,) 1 2@ differently than @(1,2)@. unfoldTuple :: Expr -> [Expr]-unfoldTuple = u . unfoldApp+unfoldTuple  =  u . unfoldApp   where-  u (Value cs _:es) | not (null es) && cs == replicate (length es - 1) ',' = es-  u _   = []+  u (Value cs _:es) | not (null es) && cs == replicate (length es - 1) ','  =  es+  u _  =  [] +-- | /O(n)/.+-- Unfold a list 'Expr' into a list of values and a terminator.+--+-- This works for lists "terminated" by an arbitrary expression.+-- One can later check the second value of the return tuple+-- to see if it is a proper list or string by comparing the+-- string representation with @[]@ or @""@.+--+-- This is used in the implementation of 'showsPrecExpr'.+unfoldEnd :: Expr -> ([Expr],Expr)+unfoldEnd (Value ":"  _ :$ e :$ es)  =  (e:) `first` unfoldEnd es+                                        where  first f (x,y)  =  (f x, y)+unfoldEnd e                          =  ([],e)++-- | /O(1)/.+-- Checks if a given expression is a tuple. isTuple :: Expr -> Bool-isTuple = not . null . unfoldTuple+isTuple  =  not . null . unfoldTuple  -- | /O(n)/. -- Check if an 'Expr' has a variable.  (By convention, any value whose@@ -1231,3 +1239,6 @@ height :: Expr -> Int height (e1 :$ e2)  =  1 + height e1 `max` height e2 height _           =  1++errorOn :: String -> String -> a+errorOn fn msg  =  error $ "Data.Express." ++ fn ++ ": " ++ msg
src/Data/Express/Express.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Express--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --
src/Data/Express/Express/Derive.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE TemplateHaskell, CPP #-} -- | -- Module      : Data.Express.Express.Derive--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --
src/Data/Express/Fixtures.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Fixtures--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -210,8 +210,8 @@   -- ** Enum   , enumFrom',   (-..)   , enumFromTo', (-..-)-  , enumFromThen', (-...)-  , enumFromThenTo', (-...-)+  , enumFromThen', (--..)+  , enumFromThenTo', (--..-)   ) where @@ -562,14 +562,14 @@ -- > > ff one -- > f 1 :: Int ff :: Expr -> Expr-ff = (ffE :$)+ff  =  (ffE :$)  -- | A variable @f@ of 'Int -> Int' type encoded as an 'Expr'. -- -- > > ffE -- > f :: Int -> Int ffE :: Expr-ffE = var "f" (undefined :: Int -> Int)+ffE  =  var "f" (undefined :: Int -> Int)  -- | A variable function @g@ of 'Int -> Int' type lifted over the 'Expr' type. --@@ -579,29 +579,48 @@ -- > > gg minusTwo -- > gg (-2) :: Int gg :: Expr -> Expr-gg = (ggE :$)+gg  =  (ggE :$)  -- | A variable @g@ of 'Int -> Int' type encoded as an 'Expr'. -- -- > > ggE -- > g :: Int -> Int ggE :: Expr-ggE = var "g" (undefined :: Int -> Int)+ggE  =  var "g" (undefined :: Int -> Int)  -- | A variable function @h@ of 'Int -> Int' type lifted over the 'Expr' type. -- -- > > hh zz -- > h z :: Int hh :: Expr -> Expr-hh = (hhE :$)+hh  =  (hhE :$)  -- | A variable @h@ of 'Int -> Int' type encoded as an 'Expr'. -- -- > > hhE -- > h :: Int -> Int hhE :: Expr-hhE = var "h" (undefined :: Int -> Int)+hhE  =  var "h" (undefined :: Int -> Int) +mk1 :: String -> [Expr] -> Expr -> Expr+mk1 nm efs ex  =  headOr (err nm efs [ex]) $ efs >$$ ex++mk2 :: String -> [Expr] -> Expr -> Expr -> Expr+mk2 nm efs ex ey  =  headOr (err nm efs [ex,ey]) $ efs >$$ ex >$$ ey++mk3 :: String -> [Expr] -> Expr -> Expr -> Expr -> Expr+mk3 nm efs ex ey ez  =  headOr (err nm efs [ex,ey,ez]) $ efs >$$ ex >$$ ey >$$ ez++mk4 :: String -> [Expr] -> Expr -> Expr -> Expr -> Expr -> Expr+mk4 nm efs ex ey ez ew  =  headOr (err nm efs [ex,ey,ez,ew]) $ efs >$$ ex >$$ ey >$$ ez >$$ ew++err :: String -> [Expr] -> [Expr] -> Expr+err fn efs exs  =  error+                $  fn ++ ": unhandled type: "+                ++ intercalate ", " (map show exs)+                ++ "\n    accepted types are:\n"+                ++ unlines (map (("    " ++) . show) efs)+ -- | A variable binary operator @?@ lifted over the 'Expr' type. --   Works for 'Int', 'Bool', 'Char', @[Int]@ and 'String'. --@@ -612,18 +631,25 @@ -- > p ? q :: Bool -- -- > > xx -?- qq--- > *** Exception: (-?-): cannot apply `(?) :: * -> * -> *` to `x :: Int' and `q :: Bool'.  Unhandled types?+-- > *** Exception: (-?-): unhandled type: 1 :: Int, False :: Bool+-- >     accepted types are:+-- >     (?) :: Int -> Int -> Int+-- >     (?) :: Bool -> Bool -> Bool+-- >     (?) :: Char -> Char -> Char+-- >     (?) :: [Int] -> [Int] -> [Int]+-- >     (?) :: [Char] -> [Char] -> [Char]+-- >     (?) :: Int -> [Int] -> [Int]+-- >     (?) :: Char -> [Char] -> [Char] (-?-) :: Expr -> Expr -> Expr-ex -?- ey  =  fromMaybe err $ ($$ ey) $ headOr err $ mapMaybe ($$ ex)+(-?-)  =  mk2 "(-?-)"   [ var "?" (undefined :: Int -> Int -> Int)   , var "?" (undefined :: Bool -> Bool -> Bool)   , var "?" (undefined :: Char -> Char -> Char)   , var "?" (undefined :: [Int] -> [Int] -> [Int])   , var "?" (undefined :: String -> String -> String)+  , var "?" (undefined :: Int -> [Int] -> [Int])+  , var "?" (undefined :: Char -> String -> String)   ]-  where-  err  =  error $ "(-?-): cannot apply `(?) :: * -> * -> *` to `"-               ++ show ex ++ "' and `" ++ show ey ++ "'.  Unhandled types?"  -- | A variable binary operator @?@ encoded as an 'Expr' (cf. '-?-') --@@ -645,18 +671,21 @@ -- > p `o` q :: Bool -- -- > > xx `oo` qq--- > *** Exception: (-?-): cannot apply `o :: * -> * -> *` to `x :: Int' and `q :: Bool'.  Unhandled types?+-- > *** Exception: oo: unhandled type: 1 :: Int, False :: Bool+-- >     accepted types are:+-- >     o :: Int -> Int -> Int+-- >     o :: Bool -> Bool -> Bool+-- >     o :: Char -> Char -> Char+-- >     o :: [Int] -> [Int] -> [Int]+-- >     o :: [Char] -> [Char] -> [Char] oo :: Expr -> Expr -> Expr-ex `oo` ey  =  fromMaybe err $ ($$ ey) $ headOr err $ mapMaybe ($$ ex)+oo  =  mk2 "oo"   [ var "`o`" (undefined :: Int -> Int -> Int)   , var "`o`" (undefined :: Bool -> Bool -> Bool)   , var "`o`" (undefined :: Char -> Char -> Char)   , var "`o`" (undefined :: [Int] -> [Int] -> [Int])   , var "`o`" (undefined :: String -> String -> String)   ]-  where-  err  =  error $ "oo: cannot apply `o :: * -> * -> *` to `"-               ++ show ex ++ "' and `" ++ show ey ++ "'.  Unhandled types?"  -- | A variable binary function @o@ encoded as an 'Expr' (cf. 'oo') --@@ -679,7 +708,7 @@ -- > > xx -+- (yy -+- zz) -- > x + (y + z) :: Int (-+-) :: Expr -> Expr -> Expr-e1 -+- e2 = plus :$ e1 :$ e2+e1 -+- e2  =  plus :$ e1 :$ e2 infixl 6 -+-  -- | The operator '+' for the 'Int' type.  (See also '-+-'.)@@ -693,7 +722,7 @@ -- > > plus :$ xx :$ yy -- > x + y :: Int plus :: Expr-plus = value "+" ((+) :: Int -> Int -> Int)+plus  =  value "+" ((+) :: Int -> Int -> Int)  -- | The operator '*' for the 'Int' type lifted over the 'Expr' type.  (See also 'times'.) --@@ -706,7 +735,7 @@ -- > > two -*- xx -- > 2 * x :: Int (-*-) :: Expr -> Expr -> Expr-e1 -*- e2 = times :$ e1 :$ e2+e1 -*- e2  =  times :$ e1 :$ e2 infixl 7 -*-  -- | The operator '*' for the 'Int' type.  (See also '-*-'.)@@ -821,7 +850,7 @@ -- > > evl (id' true) :: Bool -- > True :: Bool id' :: Expr -> Expr-id' e  =  headOr err $ mapMaybe ($$ e)+id'  =  mk1 "id'"   [ idInt   , idBool   , idChar@@ -829,8 +858,6 @@   , idBools   , idString   ]-  where-  err  =  error $ "id': unhandled type " ++ show (typ e)  -- | The function 'id' for the 'Int' type encoded as an 'Expr'.  (See also 'id''.) --@@ -853,7 +880,7 @@ idInts    =  value "id" (id :: Id [Int]) idBools   =  value "id" (id :: Id [Bool]) idString  =  value "id" (id :: Id String)-type Id a = a -> a+type Id a  =  a -> a  -- | The 'const' function lifted over the 'Expr' type. --@@ -862,7 +889,7 @@ -- -- This works for the argument types 'Int', 'Char', 'Bool' and their lists. const' :: Expr -> Expr -> Expr-const' e1 e2  =  (:$ e2) . headOr err $ mapMaybe ($$ e1)+const'  =  mk2 "const'"   [ value "const" (const :: Int -> Int -> Int)   , value "const" (const :: Bool -> Bool -> Bool)   , value "const" (const :: Char -> Char -> Char)@@ -870,8 +897,6 @@   , value "const" (const :: [Bool] -> [Bool] -> [Bool])   , value "const" (const :: String -> String -> String)   ]-  where-  err  =  error $ "const': unhandled type " ++ show (typ e1)  -- | 'negate' over the 'Int' type lifted over the 'Expr' type. --@@ -932,7 +957,7 @@ -- > > evl (odd' two) :: Bool -- > False odd' :: Expr -> Expr-odd' = (oddE :$) where oddE = value "odd" (odd :: Int -> Bool)+odd'  =  (oddE :$) where oddE = value "odd" (odd :: Int -> Bool)  -- | 'even' with an 'Int' argument lifted over the 'Expr' type. --@@ -942,7 +967,7 @@ -- > > evl (even' two) :: Bool -- > True even' :: Expr -> Expr-even' = (evenE :$) where evenE = value "even" (even :: Int -> Bool)+even'  =  (evenE :$) where evenE = value "even" (even :: Int -> Bool)  -- | A hole of 'Char' type encoded as an 'Expr'. --@@ -1049,14 +1074,14 @@ -- > > space -- > ' ' :: Char space :: Expr-space = val ' '+space  =  val ' '  -- | The line break character encoded as an 'Expr' -- -- > > lineBreak -- > '\n' :: Char lineBreak :: Expr-lineBreak = val '\n'+lineBreak  =  val '\n'  -- | The 'ord' function lifted over 'Expr' --@@ -1066,11 +1091,11 @@ -- > > evl (ord' bee) -- > 98 ord' :: Expr -> Expr-ord' = (ordE :$)+ord'  =  (ordE :$)  -- | The 'ord' function encoded as an 'Expr' ordE :: Expr-ordE = value "ord" ord+ordE  =  value "ord" ord  -- | A typed hole of @[Int]@ type encoded as an 'Expr'. --@@ -1137,7 +1162,7 @@ consInt   =  value ":" ((:) :: Cons Int) consBool  =  value ":" ((:) :: Cons Bool) consChar  =  value ":" ((:) :: Cons Char)-type Cons a = a -> [a] -> [a]+type Cons a  =  a -> [a] -> [a]  -- | 'unit' constructs a list with a single element. --   This works for elements of type 'Int', 'Char' and 'Bool'.@@ -1166,14 +1191,12 @@ -- > > bee -:- unit cee -- > "bc" :: [Char] (-:-) :: Expr -> Expr -> Expr-e1 -:- e2  =  (:$ e2) . headOr err $ mapMaybe ($$ e1)+(-:-)  =  mk2 "(-:-)"   [ consInt   , consBool   , consChar   , value ":" ((:) :: Cons (Maybe Int))   ]-  where-  err  =  error $ "(-:-): unhandled type " ++ show (typ e1) infixr 5 -:-  -- | Append for list of 'Int's encoded as an 'Expr'.@@ -1189,13 +1212,11 @@ -- > > (bee -:- unit cee) -:- unit dee -- > "bc" -++- "c" :: [Char] (-++-) :: Expr -> Expr -> Expr-e1 -++- e2 = (:$ e2) . headOr err $ mapMaybe ($$ e1)+(-++-)  =  mk2 "(-++-)"   [ value "++" ((++) :: [Int] -> [Int] -> [Int])   , value "++" ((++) :: String -> String -> String)   , value "++" ((++) :: [Bool] -> [Bool] -> [Bool])   ]-  where-  err  =  error $ "(-++-): unhandled type " ++ show (typ e1) infixr 5 -++-  -- | List 'head' lifted over the 'Expr' type.@@ -1213,13 +1234,11 @@ -- > > evl $ head' $ unit one :: Int -- > 1 head' :: Expr -> Expr-head' exs = headOr err $ mapMaybe ($$ exs)+head'  =  mk1 "head'"   [ value "head" (head :: [Int] -> Int)   , value "head" (head :: [Char] -> Char)   , value "head" (head :: [Bool] -> Bool)   ]-  where-  err  =  error $ "head': cannot apply `head :: [a] -> a` to `" ++ show exs ++ "'."  -- | List 'tail' lifted over the 'Expr' type. --   Works for the element types 'Int', 'Char' and 'Bool'.@@ -1236,13 +1255,11 @@ -- > > evl $ tail' $ zero -:- unit two :: [Int] -- > [2] tail' :: Expr -> Expr-tail' exs = headOr err $ mapMaybe ($$ exs)+tail'  =  mk1 "tail'"   [ value "tail" (tail :: [Int] -> [Int])   , value "tail" (tail :: [Char] -> [Char])   , value "tail" (tail :: [Bool] -> [Bool])   ]-  where-  err  =  error $ "tail': unhandled type " ++ show (typ exs)  -- | List 'null' lifted over the 'Expr' type. --   Works for the element types 'Int', 'Char' and 'Bool'.@@ -1256,13 +1273,11 @@ -- > > evl $ null' nil :: Bool -- > True null' :: Expr -> Expr-null' exs = headOr err $ mapMaybe ($$ exs)+null'  =  mk1 "null'"   [ value "null" (null :: [Int] -> Bool)   , value "null" (null :: [Char] -> Bool)   , value "null" (null :: [Bool] -> Bool)   ]-  where-  err  =  error $ "null': unhandled type " ++ show (typ exs)  -- | List 'length' lifted over the 'Expr' type. --   Works for the element types 'Int', 'Char' and 'Bool'.@@ -1279,13 +1294,11 @@ -- > > evl $ length' $ unit one :: Int -- > 1 length' :: Expr -> Expr-length' exs = headOr err $ mapMaybe ($$ exs)+length'  =  mk1 "length'"   [ value "length" (length :: [Int] -> Int)   , value "length" (length :: [Char] -> Int)   , value "length" (length :: [Bool] -> Int)   ]-  where-  err  =  error $ "length': cannot apply `length :: [a] -> a` to `" ++ show exs ++ "'."  -- | List 'init' lifted over the 'Expr' type. --   Works for the element types 'Int', 'Char' and 'Bool'.@@ -1302,13 +1315,11 @@ -- > > evl $ init' $ zero -:- unit two :: [Int] -- > [0] init' :: Expr -> Expr-init' exs = headOr err $ mapMaybe ($$ exs)+init'  =  mk1 "init'"   [ value "init" (init :: [Int] -> [Int])   , value "init" (init :: [Char] -> [Char])   , value "init" (init :: [Bool] -> [Bool])   ]-  where-  err  =  error $ "init': unhandled type " ++ show (typ exs)  -- | List 'sort' lifted over the 'Expr' type. --   Works for the element types 'Int', 'Char' and 'Bool'.@@ -1325,13 +1336,11 @@ -- > > evl $ sort' $ two -:- unit one :: [Int] -- > [1,2] sort' :: Expr -> Expr-sort' exs = headOr err $ mapMaybe ($$ exs)+sort'  =  mk1 "sort'"   [ value "sort" (sort :: [Int] -> [Int])   , value "sort" (sort :: [Char] -> [Char])   , value "sort" (sort :: [Bool] -> [Bool])   ]-  where-  err  =  error $ "sort': unhandled type " ++ show (typ exs)  -- | List 'insert' lifted over the 'Expr' type. --   Works for the element types 'Int', 'Char' and 'Bool'.@@ -1342,13 +1351,11 @@ -- > > insert' false (false -:- unit true) -- > insert False [False,True] :: [Bool] insert' :: Expr -> Expr -> Expr-insert' ex exs  =  (:$ exs) . headOr err $ mapMaybe ($$ ex)+insert'  =  mk2 "insert'"   [ value "insert" (insert :: Int -> [Int] -> [Int])   , value "insert" (insert :: Bool -> [Bool] -> [Bool])   , value "insert" (insert :: Char -> String -> String)   ]-  where-  err  =  error $ "insert': unhandled type " ++ show (typ ex)  -- | List 'elem' lifted over the 'Expr' type. --   Works for the element types 'Int', 'Char' and 'Bool'.@@ -1359,13 +1366,11 @@ -- > > evl $ elem' false (false -:- unit true) :: Bool -- > True elem' :: Expr -> Expr -> Expr-elem' ex exs  =  (:$ exs) . headOr err $ mapMaybe ($$ ex)+elem'  =  mk2 "elem'"   [ value "elem" (elem :: Int -> [Int] -> Bool)   , value "elem" (elem :: Bool -> [Bool] -> Bool)   , value "elem" (elem :: Char -> String -> Bool)   ]-  where-  err  =  error $ "elem': unhandled type " ++ show (typ ex)  -- | '$' lifted over 'Expr's --@@ -1374,7 +1379,7 @@ -- -- Works for 'Int', 'Bool', 'Char' argument types and their lists. (-$-) :: Expr -> Expr -> Expr-ef -$- ex = (:$ ex) . headOr err $ mapMaybe ($$ ef)+(-$-)  =  mk2 "(-$-)"   [ value "$" (($) :: Apply Int)   , value "$" (($) :: Apply Bool)   , value "$" (($) :: Apply Char)@@ -1382,10 +1387,8 @@   , value "$" (($) :: Apply [Bool])   , value "$" (($) :: Apply [Char])   ]-  where-  err  =  error $ "(-$-): unhandled type " ++ show (typ ef) infixl 6 -$--type Apply a = (a -> a) -> a -> a+type Apply a  =  (a -> a) -> a -> a  -- | Constructs an equation between two 'Expr's. --@@ -1397,7 +1400,7 @@ -- -- This works for the 'Int', 'Bool', 'Char' argument types and their lists. (-==-) :: Expr -> Expr -> Expr-ex -==- ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+(-==-)  =  mk2 "(-==-)"   [ value "==" ((==) :: Comparison ())   , value "==" ((==) :: Comparison Int)   , value "==" ((==) :: Comparison Bool)@@ -1406,10 +1409,8 @@   , value "==" ((==) :: Comparison [Bool])   , value "==" ((==) :: Comparison [Char])   ]-  where-  err  =  error $ "(-==-): unhandled type " ++ show (typ ex) infix 4 -==--type Comparison a = a -> a -> Bool+type Comparison a  =  a -> a -> Bool  -- | Constructs an inequation between two 'Expr's. --@@ -1419,7 +1420,7 @@ -- > > cc -/=- ae -- > c /= 'a' :: Bool (-/=-) :: Expr -> Expr -> Expr-ex -/=- ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+(-/=-)  =  mk2 "(-/=-)"   [ value "/=" ((/=) :: Comparison ())   , value "/=" ((/=) :: Comparison Int)   , value "/=" ((/=) :: Comparison Bool)@@ -1428,8 +1429,6 @@   , value "/=" ((/=) :: Comparison [Bool])   , value "/=" ((/=) :: Comparison [Char])   ]-  where-  err  =  error $ "(-/=-): unhandled type " ++ show (typ ex) infix 4 -/=-  -- | Constructs a less-than-or-equal inequation between two 'Expr's.@@ -1440,7 +1439,7 @@ -- > > cc -<=- ae -- > c <= 'a' :: Bool (-<=-) :: Expr -> Expr -> Expr-ex -<=- ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+(-<=-)  =  mk2 "(-<=-)"   [ value "<=" ((<=) :: Comparison ())   , value "<=" ((<=) :: Comparison Int)   , value "<=" ((<=) :: Comparison Bool)@@ -1449,8 +1448,6 @@   , value "<=" ((<=) :: Comparison [Bool])   , value "<=" ((<=) :: Comparison [Char])   ]-  where-  err  =  error $ "(-<=-): unhandled type " ++ show (typ ex) infix 4 -<=-  -- | Constructs a less-than inequation between two 'Expr's.@@ -1461,7 +1458,7 @@ -- > > cc -<- bee -- > c < 'b' :: Bool (-<-) :: Expr -> Expr -> Expr-ex -<- ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+(-<-)  =  mk2 "(-<-)"   [ value "<" ((<) :: Comparison ())   , value "<" ((<) :: Comparison Int)   , value "<" ((<) :: Comparison Bool)@@ -1470,8 +1467,6 @@   , value "<" ((<) :: Comparison [Bool])   , value "<" ((<) :: Comparison [Char])   ]-  where-  err  =  error $ "(-<-): unhandled type " ++ show (typ ex) infix 4 -<-  -- | A function @if :: Bool -> a -> a -> a@ lifted over the 'Expr' type@@ -1490,7 +1485,7 @@ -- > > evl $ if' true (val 't') (val 'f') :: Char -- > 't' if' :: Expr -> Expr -> Expr -> Expr-if' ep ex ey  =  (:$ ey) . headOr err . mapMaybe ($$ ex) $ map (:$ ep)+if'  =  mk3 "if'"   [ value "if" (iff :: If ())   , value "if" (iff :: If Int)   , value "if" (iff :: If Bool)@@ -1500,10 +1495,9 @@   , value "if" (iff :: If [Char])   ]   where-  err  =  error $ "if': unhandled type " ++ show (typ ex)   iff :: Bool -> a -> a -> a   iff p x y  =  if p then x else y-type If a = Bool -> a -> a -> a+type If a  =  Bool -> a -> a -> a  -- | A function @case :: Bool -> a -> a -> a@ lifted over the 'Expr' type --   that encodes case-of-False-True functionality.@@ -1528,7 +1522,7 @@ -- Instead of using this, you are perhaps better of using if encoded as an -- expression.  This is just here to be consistent with 'caseOrdering'. caseBool :: Expr -> Expr -> Expr -> Expr-caseBool ep ex ey  =  (:$ ey) . headOr err . mapMaybe ($$ ex) $ map (:$ ep)+caseBool  =  mk3 "caseBool"   [ value "case" (caseB :: CaseB ())   , value "case" (caseB :: CaseB Int)   , value "case" (caseB :: CaseB Bool)@@ -1538,12 +1532,11 @@   , value "case" (caseB :: CaseB [Char])   ]   where-  err  =  error $ "caseBool: unhandled type " ++ show (typ ex)   caseB :: Bool -> a -> a -> a   caseB p x y  =  case p of                   False -> x                   True -> y-type CaseB a = Bool -> a -> a -> a+type CaseB a  =  Bool -> a -> a -> a  -- | A function @case :: Ordering -> a -> a -> a -> a@ lifted over the 'Expr' type --   that encodes case-of-LT-EQ-GT functionality.@@ -1559,7 +1552,7 @@ -- By convention cases are given in 'LT', 'EQ' and 'GT' order -- as @LT < EQ < GT@ and @data Ordering = LT | EQ | GT@. caseOrdering :: Expr -> Expr -> Expr -> Expr -> Expr-caseOrdering eo ex ey ez  =  (:$ ez) . (:$ ey) . headOr err . mapMaybe ($$ ex) $ map (:$ eo)+caseOrdering  =  mk4 "caseOrdering"   [ value "case" (caseO :: CaseO ())   , value "case" (caseO :: CaseO Int)   , value "case" (caseO :: CaseO Bool)@@ -1569,13 +1562,12 @@   , value "case" (caseO :: CaseO [Char])   ]   where-  err  =  error $ "caseOrdering: unhandled type " ++ show (typ ex)   caseO :: Ordering -> a -> a -> a -> a   caseO o x y z  =  case o of                     LT -> x                     EQ -> y                     GT -> z-type CaseO a = Ordering -> a -> a -> a -> a+type CaseO a  =  Ordering -> a -> a -> a -> a  -- | Constructs an 'Expr'-encoded 'compare' operation between two 'Expr's. --@@ -1585,7 +1577,7 @@ -- > > compare' ae bee -- > compare 'a' 'b' :: Ordering compare' :: Expr -> Expr -> Expr-compare' ex ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+compare'  =  mk2 "compare'"   [ value "compare" (compare :: Compare ())   , value "compare" (compare :: Compare Int)   , value "compare" (compare :: Compare Bool)@@ -1594,9 +1586,7 @@   , value "compare" (compare :: Compare [Bool])   , value "compare" (compare :: Compare [Char])   ]-  where-  err  =  error $ "(-<-): unhandled type " ++ show (typ ex)-type Compare a = a -> a -> Ordering+type Compare a  =  a -> a -> Ordering  -- | 'Nothing' bound to the 'Maybe' 'Int' type encoded as an 'Expr'. --@@ -1629,67 +1619,63 @@ -- > > just false -- > Just False :: Maybe Bool just :: Expr -> Expr-just ex  =  headOr err $ mapMaybe ($$ ex)+just  =  mk1 "just"   [ justInt   , justBool   ]-  where-  err  =  error $ "just: unhandled type " ++ show (typ ex)  -- | An infix synonym of 'pair'. (-|-) :: Expr -> Expr -> Expr-(-|-) = pair+(-|-)  =  pair  -- | The pair constructor lifted over 'Expr's. -- -- This works for the 'Int' and 'Bool' element types -- by differently from 'foldPair' by returning a well-typed expression. pair :: Expr -> Expr -> Expr-pair x y  =  comma :$ x :$ y-  where-  comma  =  case (show $ typ x, show $ typ y) of-            ("Int", "Int")  -> value "," ((,) :: Pair Int Int)-            ("Int", "Bool") -> value "," ((,) :: Pair Int Bool)-            ("Bool","Int")  -> value "," ((,) :: Pair Bool Int)-            ("Bool","Bool") -> value "," ((,) :: Pair Bool Bool)-            (t,t')          -> error $ "(-:-): unhandled types " ++ t ++ " " ++ t'-type Pair a b = a -> b -> (a,b)+pair  =  mk2 "pair"+  [ value "," ((,) :: Pair Int Int)+  , value "," ((,) :: Pair Int Bool)+  , value "," ((,) :: Pair Bool Int)+  , value "," ((,) :: Pair Bool Bool)+  ]+type Pair a b  =  a -> b -> (a,b)  -- | The pair constructor (@ :: ... -> (Int,Int) @) encoded as an 'Expr'. comma :: Expr-comma = value "," ((,) :: Pair Int Int)+comma  =  value "," ((,) :: Pair Int Int)  -- | The triple/trio constructor lifted over 'Expr's. -- -- This only works for the 'Int' element type. triple :: Expr -> Expr -> Expr -> Expr-triple e1 e2 e3 = ccE :$ e1 :$ e2 :$ e3+triple e1 e2 e3  =  ccE :$ e1 :$ e2 :$ e3   where-  ccE = value ",," ((,,) :: Int -> Int -> Int -> (Int,Int,Int))+  ccE  =  value ",," ((,,) :: Int -> Int -> Int -> (Int,Int,Int))  -- | The quadruple constructor lifted over 'Expr's. -- -- This only works for the 'Int' element type. quadruple :: Expr -> Expr -> Expr -> Expr -> Expr-quadruple e1 e2 e3 e4 = cccE :$ e1 :$ e2 :$ e3 :$ e4+quadruple e1 e2 e3 e4  =  cccE :$ e1 :$ e2 :$ e3 :$ e4   where-  cccE = value ",,," ((,,,) :: Int -> Int -> Int -> Int -> (Int,Int,Int,Int))+  cccE  =  value ",,," ((,,,) :: Int -> Int -> Int -> Int -> (Int,Int,Int,Int))  -- | The quintuple constructor lifted over 'Expr's. -- -- This only works for the 'Int' element type. quintuple :: Expr -> Expr -> Expr -> Expr -> Expr -> Expr-quintuple e1 e2 e3 e4 e5 = ccccE :$ e1 :$ e2 :$ e3 :$ e4 :$ e5+quintuple e1 e2 e3 e4 e5  =  ccccE :$ e1 :$ e2 :$ e3 :$ e4 :$ e5   where-  ccccE = value ",,,," ((,,,,) :: Int -> Int -> Int -> Int -> Int -> (Int,Int,Int,Int,Int))+  ccccE  =  value ",,,," ((,,,,) :: Int -> Int -> Int -> Int -> Int -> (Int,Int,Int,Int,Int))  -- | The sixtuple constructor lifted over 'Expr's. -- -- This only works for the 'Int' element type. sixtuple :: Expr -> Expr -> Expr -> Expr -> Expr -> Expr -> Expr-sixtuple e1 e2 e3 e4 e5 e6 = cccccE :$ e1 :$ e2 :$ e3 :$ e4 :$ e5 :$ e6+sixtuple e1 e2 e3 e4 e5 e6  =  cccccE :$ e1 :$ e2 :$ e3 :$ e4 :$ e5 :$ e6   where-  cccccE = value ",,,,," ((,,,,,) :: Int -> Int -> Int -> Int -> Int -> Int -> (Int,Int,Int,Int,Int,Int))+  cccccE  =  value ",,,,," ((,,,,,) :: Int -> Int -> Int -> Int -> Int -> Int -> (Int,Int,Int,Int,Int,Int))  -- | A typed hole of @[Bool]@ type encoded as an 'Expr'. --@@ -1790,7 +1776,7 @@ -- -- This works for 'Int', 'Bool', 'Char' and their lists. (-.-) :: Expr -> Expr -> Expr-ex -.- ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+(-.-)  =  mk2 "(-.-)"   [ value "." ((.) :: Compose ())   , value "." ((.) :: Compose Int)   , value "." ((.) :: Compose Bool)@@ -1799,9 +1785,7 @@   , value "." ((.) :: Compose [Bool])   , value "." ((.) :: Compose [Char])   ]-  where-  err  =  error $ "(-.-): unhandled type " ++ show (typ ex)-type Compose a = (a -> a) -> (a -> a) -> (a -> a)+type Compose a  =  (a -> a) -> (a -> a) -> (a -> a)  -- | 'map' over the 'Int' element type encoded as an 'Expr' --@@ -1815,7 +1799,7 @@ -- > > map' absE (unit one) -- > map abs [1] :: [Int] map' :: Expr -> Expr -> Expr-map' ef exs  =  (:$ exs) . headOr err $ mapMaybe ($$ ef)+map'  =  mk2 "map'"   [ value "map" (map :: Map ())   , value "map" (map :: Map Int)   , value "map" (map :: Map Bool)@@ -1824,9 +1808,7 @@   , value "map" (map :: Map [Bool])   , value "map" (map :: Map [Char])   ]-  where-  err  =  error $ "map': unhandled type " ++ show (typ ef)-type Map a = (a -> a) -> [a] -> [a]+type Map a  =  (a -> a) -> [a] -> [a]  -- | 'enumFrom' lifted over 'Expr's. --@@ -1835,42 +1817,38 @@ -- -- Works for 'Int's, 'Bool's and 'Char's. enumFrom' :: Expr -> Expr-enumFrom' ex  =  headOr err $ mapMaybe ($$ ex)+enumFrom'  =  mk1 "enumFrom'"   [ value "enumFrom" (enumFrom :: EnumFrom Int)   , value "enumFrom" (enumFrom :: EnumFrom Bool)   , value "enumFrom" (enumFrom :: EnumFrom Char)   ]-  where-  err  =  error $ "enumFrom': unhandled type " ++ show (typ ex) type EnumFrom a  =  (a -> [a])  -- | 'enumFrom' lifted over 'Expr's named as @".."@ for pretty-printing. ----- > > (-..) one+-- > > one -.. () -- > [1..] :: [Int] -- -- Works for 'Int's, 'Bool's and 'Char's.-(-..) :: Expr -> Expr-(-..) ex  =  headOr err $ mapMaybe ($$ ex)-  [ value ".." (enumFrom :: EnumFrom Int)-  , value ".." (enumFrom :: EnumFrom Bool)-  , value ".." (enumFrom :: EnumFrom Char)-  ]+(-..) :: Expr -> () -> Expr+e -.. _  =  mk e   where-  err  =  error $ "(-..): unhandled type " ++ show (typ ex)+  mk  =  mk1 "(-..)"+      [ value ".." (enumFrom :: EnumFrom Int)+      , value ".." (enumFrom :: EnumFrom Bool)+      , value ".." (enumFrom :: EnumFrom Char)+      ]  -- | 'enumFromTo' lifted over 'Expr's -- -- > > enumFromTo' zero four -- > enumFromTo 0 4 :: [Int] enumFromTo' :: Expr -> Expr -> Expr-enumFromTo' ex ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+enumFromTo'  =  mk2 "enumFromTo'"   [ value "enumFromTo" (enumFromTo :: EnumFromTo Int)   , value "enumFromTo" (enumFromTo :: EnumFromTo Bool)   , value "enumFromTo" (enumFromTo :: EnumFromTo Char)   ]-  where-  err  =  error $ "enumFromTo': unhandled type " ++ show (typ ex) type EnumFromTo a  =  (a -> a -> [a])  -- | 'enumFromTo' lifted over 'Expr's but named as @".."@ for pretty-printing.@@ -1878,64 +1856,58 @@ -- > > zero -..- four -- > [0..4] :: [Int] (-..-) :: Expr -> Expr -> Expr-ex -..- ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+(-..-)  =  mk2 "(-..-)"   [ value ".." (enumFromTo :: EnumFromTo Int)   , value ".." (enumFromTo :: EnumFromTo Bool)   , value ".." (enumFromTo :: EnumFromTo Char)   ]-  where-  err  =  error $ "-..-: unhandled type " ++ show (typ ex)  -- | 'enumFromThen' lifted over 'Expr's -- -- > > enumFromThen' zero ten -- > enumFromThen 0 10 :: [Int] enumFromThen' :: Expr -> Expr -> Expr-enumFromThen' ex ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)+enumFromThen'  =  mk2 "enumFromThen'"   [ value "enumFromThen" (enumFromThen :: EnumFromThen Int)   , value "enumFromThen" (enumFromThen :: EnumFromThen Bool)   , value "enumFromThen" (enumFromThen :: EnumFromThen Char)   ]-  where-  err  =  error $ "enumFromThen': unhandled type " ++ show (typ ex) type EnumFromThen a  =  (a -> a -> [a])  -- | 'enumFromThen' lifted over 'Expr's but named as @",.."@ for pretty printing. ----- > > zero -... ten+-- > > (zero,ten) --.. () -- > [0,10..] :: [Int]-(-...) :: Expr -> Expr -> Expr-ex -... ey  =  (:$ ey) . headOr err $ mapMaybe ($$ ex)-  [ value ",.." (enumFromThen :: EnumFromThen Int)-  , value ",.." (enumFromThen :: EnumFromThen Bool)-  , value ",.." (enumFromThen :: EnumFromThen Char)-  ]+(--..) :: (Expr,Expr) -> () -> Expr+(e1,e2) --.. _  =  mk e1 e2   where-  err  =  error $ "-..-: unhandled type " ++ show (typ ex)+  mk  =  mk2 "(--..)"+      [ value ",.." (enumFromThen :: EnumFromThen Int)+      , value ",.." (enumFromThen :: EnumFromThen Bool)+      , value ",.." (enumFromThen :: EnumFromThen Char)+      ]  -- | 'enumFromThenTo' lifted over 'Expr's. -- -- > > enumFromThenTo' zero two ten -- > enumFromThenTo 0 2 10 :: [Int] enumFromThenTo' :: Expr -> Expr -> Expr -> Expr-enumFromThenTo' ex ey ez  =  (:$ ez) . (:$ ey) . headOr err $ mapMaybe ($$ ex)+enumFromThenTo'  =  mk3 "enumFromThenTo'"   [ value "enumFromThenTo" (enumFromThenTo :: EnumFromThenTo Int)   , value "enumFromThenTo" (enumFromThenTo :: EnumFromThenTo Bool)   , value "enumFromThenTo" (enumFromThenTo :: EnumFromThenTo Char)   ]-  where-  err  =  error $ "enumFromThenTo': unhandled type " ++ show (typ ex) type EnumFromThenTo a  =  (a -> a -> a -> [a])  -- | 'enumFromThenTo' lifted over 'Expr's but named as @",.."@ for pretty-printing. ----- > > (zero -...- two) ten+-- > > (zero,two) --..- ten -- > [0,2..10] :: [Int]-(-...-) :: Expr -> Expr -> Expr -> Expr-(ex -...- ey) ez  =  (:$ ez) . (:$ ey) . headOr err $ mapMaybe ($$ ex)-  [ value ",.." (enumFromThenTo :: EnumFromThenTo Int)-  , value ",.." (enumFromThenTo :: EnumFromThenTo Bool)-  , value ",.." (enumFromThenTo :: EnumFromThenTo Char)-  ]+(--..-) :: (Expr,Expr) -> Expr -> Expr+(e1, e2) --..- e3  =  mk e1 e2 e3   where-  err  =  error $ "-..-: unhandled type " ++ show (typ ex)+  mk  =  mk3 "(--..-)"+      [ value ",.." (enumFromThenTo :: EnumFromThenTo Int)+      , value ",.." (enumFromThenTo :: EnumFromThenTo Bool)+      , value ",.." (enumFromThenTo :: EnumFromThenTo Char)+      ]
src/Data/Express/Fold.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Fold--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -82,7 +82,7 @@ unfoldPair :: Expr -> (Expr,Expr) unfoldPair (Value "," _ :$ e1 :$ e2) = (e1,e2) unfoldPair (Value "(,)" _ :$ e1 :$ e2) = (e1,e2)-unfoldPair _  =  error "unfoldPair: not an Expr pair"+unfoldPair e  =  errorOn "unfoldPair" $ "not an Expr pair: " ++ show e  data ExprTrio = ExprTrio @@ -125,7 +125,7 @@ unfoldTrio :: Expr -> (Expr,Expr,Expr) unfoldTrio (Value ",," _ :$ e1 :$ e2 :$ e3) = (e1,e2,e3) unfoldTrio (Value "(,,)" _ :$ e1 :$ e2 :$ e3) = (e1,e2,e3)-unfoldTrio _  =  error "unfoldTrio: not an Expr trio"+unfoldTrio e  =  errorOn "unfoldTrio" $ "not an Expr trio: " ++ show e  data ExprList = ExprList @@ -162,12 +162,16 @@ -- > > unfold $ expr [1,2,3::Int] -- > [1 :: Int,2 :: Int,3 :: Int] unfold :: Expr -> [Expr]+unfold (Value "\"\"" _)           =  [] unfold (Value "[]" _)             =  [] unfold (Value ":"  _ :$ e :$ es)  =  e : unfold es-unfold e  =  error $ "unfold: cannot unfold expression: " ++ show e+unfold e  =  errorOn "unfold" $ "cannot unfold expression: " ++ show e  #if __GLASGOW_HASKELL__ == 708 deriving instance Typeable ExprPair deriving instance Typeable ExprTrio deriving instance Typeable ExprList #endif++errorOn :: String -> String -> a+errorOn fn msg  =  error $ "Data.Express." ++ fn ++ ": " ++ msg
src/Data/Express/Hole.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Hole--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -43,14 +43,17 @@ -- > > "p" `varAsTypeOf` val False -- > p :: Bool varAsTypeOf :: String -> Expr -> Expr-varAsTypeOf n = Value ('_':n) . undefine . fromMaybe err . toDynamic+varAsTypeOf n e  =  Value ('_':n) . undefine . fromMaybe err . toDynamic $ e   where-  err = error "varAsTypeOf: could not compile Dynamic value, type error?"+  err  =  error+       $ "Data.Express.varAsTypeOf: could not compile Dynamic value for `"+       ++ show e+       ++ "' with name " ++ n   undefine :: Dynamic -> Dynamic #if __GLASGOW_HASKELL__ >= 806-  undefine (Dynamic t v) = (Dynamic t undefined)+  undefine (Dynamic t v)  =  (Dynamic t undefined) #else-  undefine = id -- there's no way to do this using the old Data.Dynamic API.+  undefine  =  id -- there's no way to do this using the old Data.Dynamic API. #endif  -- | /O(1)/.@@ -62,7 +65,7 @@ -- > > holeAsTypeOf $ val (1::Int) -- > _ :: Int holeAsTypeOf :: Expr -> Expr-holeAsTypeOf = ("" `varAsTypeOf`)+holeAsTypeOf  =  ("" `varAsTypeOf`)  -- | /O(1)/. -- Creates an 'Expr' representing a typed hole of the given argument type.@@ -79,7 +82,7 @@ -- > hole x = var "" x -- > hole x = value "_" x hole :: Typeable a => a -> Expr-hole a = var "" (undefined `asTypeOf` a)+hole a  =  var "" (undefined `asTypeOf` a)  -- | /O(1)/. -- Checks if an 'Expr' represents a typed hole.@@ -259,11 +262,11 @@ -- > > fill (i_ -+- i_ -+- i_) [xx, val 'c', yy] -- > (x + _) + _ :: Int fill :: Expr -> [Expr] -> Expr-fill e = fst . fill' e+fill e  =  fst . fill' e   where   fill' :: Expr -> [Expr] -> (Expr,[Expr])-  fill' (e1 :$ e2) es = let (e1',es')  = fill' e1 es-                            (e2',es'') = fill' e2 es'-                        in (e1' :$ e2', es'')-  fill' eh (e:es) | isHole eh && typ eh == typ e = (e,es)-  fill' e es = (e,es)+  fill' (e1 :$ e2) es  =  let (e1',es')  = fill' e1 es+                              (e2',es'')  =  fill' e2 es'+                          in (e1' :$ e2', es'')+  fill' eh (e:es) | isHole eh && typ eh == typ e  =  (e,es)+  fill' e es  =  (e,es)
src/Data/Express/Instances.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Instances--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -129,7 +129,7 @@   , value "/=" (/=)   ]   where-  x /= y = not (x == y)+  x /= y  =  not (x == y)  -- | /O(1)/. -- Builds a reified 'Ord' instance from the given 'compare' function.@@ -265,7 +265,7 @@   e1e <- findValidApp os e1   e1e $$ e2   where-  os = [eq | eq@(Value n _) <- is, n == n']+  os  =  [eq | eq@(Value n _) <- is, n == n']  -- | /O(n+m)./ -- Returns an equation between two expressions@@ -308,12 +308,12 @@ -- > > lookupName [] (val False) -- > "x" lookupName :: [Expr] -> Expr -> String-lookupName is e  =  fromMaybe d $ eval "x" <$> findValidApp es e+lookupName is e  =  maybe d (eval "x") (findValidApp es e)   where   t  =  typ e   d | isFunTy t  =  "f"     | otherwise  =  'x' : replicate (countListTy t) 's'-  es = [e | e@(Value "name" _) <- is]+  es  =  [e | e@(Value "name" _) <- is]  -- | /O(n+m)./ -- A mix between 'lookupName' and 'names':@@ -352,7 +352,7 @@ -- A list of reified 'Name' instances -- for an arbitrary selection of types from the Haskell "Prelude". preludeNameInstances :: [Expr]-preludeNameInstances = concat+preludeNameInstances  =  concat   [ reifyName (u :: ())   , reifyName (u :: Bool)   , reifyName (u :: Int)
src/Data/Express/Map.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Map--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -185,7 +185,7 @@ -- Given that the argument list has length /m/, -- this function is /O(n*m)/. (//-) :: Expr -> [(Expr,Expr)] -> Expr-e //- s  =  mapValues (flip lookupId s) e+e //- s  =  mapValues (`lookupId` s) e  -- | /O(n*n*m)/. -- Substitute subexpressions in an expression@@ -221,7 +221,7 @@ -- comparing two expressions is /O(n)/ in the worst case, -- and we may need to compare with /n/ subexpressions in the worst case. (//) :: Expr -> [(Expr,Expr)] -> Expr-e // s  =  mapSubexprs (flip lookup s) e+e // s  =  mapSubexprs (`lookup` s) e  -- | Rename variables in an 'Expr'. --@@ -241,5 +241,5 @@ renameVarsBy :: (String -> String) -> Expr -> Expr renameVarsBy f = mapValues f'   where-  f' (Value ('_':n) t) = Value ('_':f n) t-  f' e = e+  f' (Value ('_':n) t)  =  Value ('_':f n) t+  f' e  =  e
src/Data/Express/Match.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Match--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -45,7 +45,7 @@ -- > (zero -+- (one -+- two)) `match` (xx -+- yy)           =  Just [(xx,zero), (yy,one-+-two)] -- > (zero -+- (one -+- two)) `match` (xx -+- (yy -+- yy))  =  Nothing match :: Expr -> Expr -> Maybe [(Expr,Expr)]-match = matchWith []+match  =  matchWith []  -- | -- Like 'match' but allowing predefined bindings.@@ -53,7 +53,7 @@ -- > matchWith [(xx,zero)] (zero -+- one) (xx -+- yy)  =  Just [(xx,zero), (yy,one)] -- > matchWith [(xx,one)]  (zero -+- one) (xx -+- yy)  =  Nothing matchWith :: [(Expr,Expr)] -> Expr -> Expr -> Maybe [(Expr,Expr)]-matchWith bs e1' e2' = m e1' e2' bs+matchWith bs e1' e2'  =  m e1' e2' bs   where   m :: Expr -> Expr -> [(Expr,Expr)] -> Maybe [(Expr,Expr)]   m (f1 :$ x1) (f2 :$ x2)             =  m f1 f2 >=> m x1 x2@@ -63,12 +63,12 @@     | otherwise                       =  const Nothing  updateAssignments :: (Expr,Expr) -> [(Expr,Expr)] -> Maybe [(Expr,Expr)]-updateAssignments (e,e') = \bs ->+updateAssignments (e,e')  =  \bs ->   case lookup e bs of-    Nothing  -> Just ((e,e'):bs)-    Just e'' -> if e'' == e'-                then Just bs-                else Nothing+  Nothing  -> Just ((e,e'):bs)+  Just e'' -> if e'' == e'+              then Just bs+              else Nothing  -- | -- Given two 'Expr's,@@ -94,7 +94,7 @@ -- > (zero -+- (yy -+- xx)) `isInstanceOf` (zero -+- yy)  =  True -- >  (one -+- (yy -+- xx)) `isInstanceOf` (zero -+- yy)  =  False isInstanceOf :: Expr -> Expr -> Bool-e1 `isInstanceOf` e2 = isJust $ e1 `match` e2+e1 `isInstanceOf` e2  =  isJust $ e1 `match` e2   -- |@@ -129,4 +129,4 @@ -- > > xx `isSubexprOf` yy -- > False isSubexprOf :: Expr -> Expr -> Bool-isSubexprOf e = (e `elem`) . subexprs+isSubexprOf e  =  (e `elem`) . subexprs
src/Data/Express/Name.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Name--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -141,10 +141,10 @@ instance (Name a, Name b) => Name (Either a b) where   name exy  =  "e" ++ n ++ m     where-    Left x  = exy-    Right y = exy-    n = name x-    m = head $ names y \\ [n]+    Left x   =  exy+    Right y  =  exy+    n        =  name x+    (m:_)    =  delete n $ names y  -- | -- > names (undefined :: (Int,Int)) = ["xy", "zw", "xy'", ...]@@ -153,8 +153,8 @@   name xy  =  n ++ m     where     (x,y)  =  xy-    n  =  name x-    m  =  head $ names y \\ [n]+    n      =  name x+    (m:_)  =  delete n $ names y  -- | -- > names (undefined :: (Int,Int,Int)) = ["xyz","uvw", ...]@@ -163,9 +163,9 @@   name xyz  =  n ++ m ++ o     where     (x,y,z)  =  xyz-    n  =  name x-    m  =  head $ names y \\ [n]-    o  =  head $ names z \\ [n,m]+    n        =  name x+    (m:_)    =  names y \\ [n]+    (o:_)    =  names z \\ [n,m]  -- | -- > names (undefined :: ((),(),(),())) = ["uuuu", "uuuu1", ...]@@ -177,7 +177,7 @@ -- > names (undefined :: [Int]) = ["xs", "ys", "zs", "xs'", ...] -- > names (undefined :: [Bool]) = ["ps", "qs", "rs", "ps'", ...] instance Name a => Name [a] where-  name xs  =  name (head xs) ++ "s"+  name xs  =  name x ++ "s"  where  (x:_) = xs  -- | -- Returns na infinite list of variable names from the given type:
src/Data/Express/Name/Derive.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE TemplateHaskell, CPP #-} -- | -- Module      : Data.Express.Name.Derive--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --
src/Data/Express/Triexpr.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Triexpr--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -47,7 +47,7 @@ -- -- In the representation, -- 'Nothing' matches an App and 'Just' 'Expr' an expression.-data Triexpr a = Triexpr [(Maybe Expr, Either (Triexpr a) (Expr,a))]+newtype Triexpr a  =  Triexpr [(Maybe Expr, Either (Triexpr a) (Expr,a))]   deriving (Eq, Ord, Show)  -- | An empty 'Triexpr'.
src/Data/Express/Utils.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Utils.List--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --
src/Data/Express/Utils/List.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Utils.List--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -13,6 +13,7 @@   , isPermutationOf   , isSubsetOf   , isNub+  , none   , lookupId   , (+++)   , module Data.List@@ -92,6 +93,16 @@ -- > isNub [2,1,2]  =  False isNub :: Ord a => [a] -> Bool isNub xs  =  length (nubSort xs) == length xs++-- | Determines whether no element of the given list satisfies the predicate.+--+-- > > none even [3,5,7,11,13]+-- > True+--+-- > > none even [7,5,3,2]+-- > False+none :: (a -> Bool) -> [a] -> Bool+none p  =  not . any p  -- | /O(n)/. -- Like 'lookup' but returns the key itself if nothing is found.
src/Data/Express/Utils/String.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Utils.String--- Copyright   : (c) 2016-2021 Rudy Matela+-- Copyright   : (c) 2016-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -22,6 +22,7 @@ where  import Data.Char+import Data.Express.Utils.List  -- | Unquotes a string if possible, otherwise, this is just an identity. --@@ -58,7 +59,7 @@ -- -- but this does not cause problems for (all?) most cases. atomic :: String -> Bool-atomic s | all (not . isSpace) s = True+atomic s        | none isSpace s = True atomic ('\'':s) | last s == '\'' = True atomic ('"':s)  | last s == '"'  = True atomic ('[':s)  | last s == ']'  = True@@ -100,8 +101,8 @@ -- > isInfix "`foo`" == True -- > isInfix "+"     == True isInfix :: String -> Bool-isInfix (c:_) = c `notElem` "()'\"[_" && not (isAlphaNum c)-isInfix "" = error "isInfix: empty string"+isInfix (c:_)  =  c `notElem` "()'\"[_" && not (isAlphaNum c)+isInfix ""     =  False  -- | Returns the precedence of default Haskell operators prec :: String -> Int
src/Data/Express/Utils/TH.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE TemplateHaskell, CPP #-} -- | -- Module      : Data.Express.Name.Derive--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -52,7 +52,7 @@   is <- t `isInstanceOf` cls   if is   then do-    unless (not warnExisting)+    when warnExisting       (reportWarning $ "Instance " ++ showJustName cls ++ " " ++ showJustName t                     ++ " already exists, skipping derivation")     return []@@ -78,40 +78,37 @@ reallyDeriveCascading cls reallyDerive t =       return . concat   =<< mapM reallyDerive-  =<< filterM (liftM not . isTypeSynonym)+  =<< filterM (fmap not . isTypeSynonym)   =<< return . (t:) . delete t   =<< t `typeConCascadingArgsThat` (`isntInstanceOf` cls)  typeConArgs :: Name -> Q [Name]-typeConArgs t = do+typeConArgs t  =  do   is <- isTypeSynonym t   if is-    then liftM typeConTs $ typeSynonymType t-    else liftM (nubMerges . map typeConTs . concat . map snd) $ typeConstructors t+  then typeConTs `fmap` typeSynonymType t+  else (nubMerges . map typeConTs . concatMap snd) `fmap` typeConstructors t   where   typeConTs :: Type -> [Name]-  typeConTs (AppT t1 t2) = typeConTs t1 `nubMerge` typeConTs t2-  typeConTs (SigT t _) = typeConTs t-  typeConTs (VarT _) = []-  typeConTs (ConT n) = [n]+  typeConTs (AppT t1 t2)  =  typeConTs t1 `nubMerge` typeConTs t2+  typeConTs (SigT t _)  =  typeConTs t+  typeConTs (VarT _)  =  []+  typeConTs (ConT n)  =  [n] #if __GLASGOW_HASKELL__ >= 800-  -- typeConTs (PromotedT n) = [n] ?-  typeConTs (InfixT  t1 n t2) = typeConTs t1 `nubMerge` typeConTs t2-  typeConTs (UInfixT t1 n t2) = typeConTs t1 `nubMerge` typeConTs t2-  typeConTs (ParensT t) = typeConTs t+  -- typeConTs (PromotedT n)  =  [n] ?+  typeConTs (InfixT  t1 n t2)  =  typeConTs t1 `nubMerge` typeConTs t2+  typeConTs (UInfixT t1 n t2)  =  typeConTs t1 `nubMerge` typeConTs t2+  typeConTs (ParensT t)  =  typeConTs t #endif-  typeConTs _ = []+  typeConTs _  =  []  typeConArgsThat :: Name -> (Name -> Q Bool) -> Q [Name]-typeConArgsThat t p = do-  targs <- typeConArgs t-  tbs   <- mapM (\t' -> do is <- p t'; return (t',is)) targs-  return [t' | (t',p) <- tbs, p]+t `typeConArgsThat` p  =  filterM p =<< typeConArgs t  typeConCascadingArgsThat :: Name -> (Name -> Q Bool) -> Q [Name]-t `typeConCascadingArgsThat` p = do+t `typeConCascadingArgsThat` p  =  do   ts <- t `typeConArgsThat` p-  let p' t' = do is <- p t'; return $ t' `notElem` (t:ts) && is+  let p' t'  =  (t' `notElem` t:ts &&) `fmap` p t'   tss <- mapM (`typeConCascadingArgsThat` p') ts   return $ nubMerges (ts:tss) @@ -132,22 +129,26 @@ -- > > putStrLn $(stringE . show =<< normalizeType ''[]) -- > (AppT (ConT ''[]) (VarT a),[VarT a]) normalizeType :: Name -> Q (Type, [Type])-normalizeType t = do+normalizeType t  =  do   ar <- typeArity t   vs <- newVarTs ar   return (foldl AppT (ConT t) vs, vs)   where     newNames :: [String] -> Q [Name]-    newNames = mapM newName+    newNames  =  mapM newName     newVarTs :: Int -> Q [Type]-    newVarTs n = liftM (map VarT)-               $ newNames (take n . map (:[]) $ cycle ['a'..'z'])+    newVarTs n  =  map VarT+            `fmap` newNames (take n . map (:[]) $ cycle ['a'..'z'])  -- | -- Normalizes a type by applying it to units to make it star-kinded. -- (cf. 'normalizeType')+--+-- > normalizeTypeUnits ''Int    === [t| Int |]+-- > normalizeTypeUnits ''Maybe  === [t| Maybe () |]+-- > normalizeTypeUnits ''Either === [t| Either () () |] normalizeTypeUnits :: Name -> Q Type-normalizeTypeUnits t = do+normalizeTypeUnits t  =  do   ar <- typeArity t   return (foldl AppT (ConT t) (replicate ar (TupleT 0))) @@ -163,14 +164,14 @@ -- > > putStrLn $(stringE . show =<< ''Int `isInstanceOf` ''Fractional) -- > False isInstanceOf :: Name -> Name -> Q Bool-isInstanceOf tn cl = do+isInstanceOf tn cl  =  do   ty <- normalizeTypeUnits tn   isInstance cl [ty]  -- | -- The negation of 'isInstanceOf'. isntInstanceOf :: Name -> Name -> Q Bool-isntInstanceOf tn cl = liftM not (isInstanceOf tn cl)+isntInstanceOf tn  =  fmap not . isInstanceOf tn  -- | Given a type name, return the number of arguments taken by that type. -- Examples in partially broken TH:@@ -196,22 +197,22 @@ -- > > putStrLn $(stringE . show =<< typeArity ''String) -- > 0 ----- This works for Data's and Newtype's and it is useful when generating--- typeclass instances.+-- This works for data and newtype declarations and+-- it is useful when generating typeclass instances. typeArity :: Name -> Q Int-typeArity t = do-  ti <- reify t-  return . length $ case ti of+typeArity t  =  fmap arity $ reify t+  where+  arity  =  length . args #if __GLASGOW_HASKELL__ < 800-    TyConI (DataD    _ _ ks _ _) -> ks-    TyConI (NewtypeD _ _ ks _ _) -> ks+  args (TyConI (DataD    _ _ ks   _ _))  =  ks+  args (TyConI (NewtypeD _ _ ks   _ _))  =  ks #else-    TyConI (DataD    _ _ ks _ _ _) -> ks-    TyConI (NewtypeD _ _ ks _ _ _) -> ks+  args (TyConI (DataD    _ _ ks _ _ _))  =  ks+  args (TyConI (NewtypeD _ _ ks _ _ _))  =  ks #endif-    TyConI (TySynD _ ks _) -> ks-    _ -> error $ "error (typeArity): symbol " ++ show t-              ++ " is not a newtype, data or type synonym"+  args (TyConI (TySynD _ ks _))          =  ks+  args _  =  errorOn "typeArity"+          $  "neither newtype nor data nor type synonym: " ++ show t  -- | -- Given a type 'Name',@@ -236,23 +237,23 @@ -- > > putStrLn $(stringE . show =<< typeConstructors ''Point) -- > [('Pt,[ConT ''Int, ConT ''Int])] typeConstructors :: Name -> Q [(Name,[Type])]-typeConstructors t = do-  ti <- reify t-  return . map simplify $ case ti of+typeConstructors t  =  fmap (map normalize . cons) $ reify t+  where #if __GLASGOW_HASKELL__ < 800-    TyConI (DataD    _ _ _ cs _) -> cs-    TyConI (NewtypeD _ _ _ c  _) -> [c]+  cons (TyConI (DataD    _ _ _   cs _))  =  cs+  cons (TyConI (NewtypeD _ _ _   c  _))  =  [c] #else-    TyConI (DataD    _ _ _ _ cs _) -> cs-    TyConI (NewtypeD _ _ _ _ c  _) -> [c]+  cons (TyConI (DataD    _ _ _ _ cs _))  =  cs+  cons (TyConI (NewtypeD _ _ _ _ c  _))  =  [c] #endif-    _ -> error $ "error (typeConstructors): symbol " ++ show t-              ++ " is neither newtype nor data"-  where-  simplify (NormalC n ts)  = (n,map snd ts)-  simplify (RecC    n ts)  = (n,map trd ts)-  simplify (InfixC  t1 n t2) = (n,[snd t1,snd t2])-  trd (x,y,z) = z+  cons _  =  errorOn "typeConstructors"+          $  "neither newtype nor data: " ++ show t+  normalize (NormalC n ts)   =  (n,map snd ts)+  normalize (RecC    n ts)   =  (n,map trd ts)+  normalize (InfixC  t1 n t2)  =  (n,[snd t1,snd t2])+  normalize _  =  errorOn "typeConstructors"+               $  "unexpected unhandled case when called with " ++ show t+  trd (x,y,z)  =  z  -- | -- Is the given 'Name' a type synonym?@@ -266,11 +267,10 @@ -- > > putStrLn $(stringE . show =<< isTypeSynonym ''String) -- > True isTypeSynonym :: Name -> Q Bool-isTypeSynonym t = do-  ti <- reify t-  return $ case ti of-    TyConI (TySynD _ _ _) -> True-    _                     -> False+isTypeSynonym  =  fmap is . reify+  where+  is (TyConI (TySynD _ _ _))  =  True+  is _                        =  False  -- | -- Resolves a type synonym.@@ -278,34 +278,30 @@ -- > > putStrLn $(stringE . show =<< typeSynonymType ''String) -- > AppT ListT (ConT ''Char) typeSynonymType :: Name -> Q Type-typeSynonymType t = do-  ti <- reify t-  return $ case ti of-    TyConI (TySynD _ _ t') -> t'-    _ -> error $ "error (typeSynonymType): symbol " ++ show t-              ++ " is not a type synonym"+typeSynonymType t  =  fmap typ $ reify t+  where+  typ (TyConI (TySynD _ _ t'))  =  t'+  typ _  =  errorOn "typeSynonymType" $ "not a type synonym: " ++ show t  -- Append to instance contexts in a declaration. -- -- > sequence [[|Eq b|],[|Eq c|]] |=>| [t|instance Eq a => Cl (Ty a) where f=g|]--- > == [t| instance (Eq a, Eq b, Eq c) => Cl (Ty a) where f = g |]+-- > == [t| instance (Eq a, Eq b, Eq c) => Cl (Ty a) where f  =  g |] (|=>|) :: Cxt -> DecsQ -> DecsQ-c |=>| qds = do ds <- qds-                return $ map (`ac` c) ds+c |=>| qds  =  map (=>++ c) `fmap` qds+  where #if __GLASGOW_HASKELL__ < 800-  where ac (InstanceD c ts ds) c' = InstanceD (c++c') ts ds-        ac d                   _  = d+  (InstanceD   c ts ds) =>++ c'  =  InstanceD   (c++c') ts ds #else-  where ac (InstanceD o c ts ds) c' = InstanceD o (c++c') ts ds-        ac d                     _  = d+  (InstanceD o c ts ds) =>++ c'  =  InstanceD o (c++c') ts ds #endif+  d                     =>++ _   =  d  (|++|) :: DecsQ -> DecsQ -> DecsQ (|++|) = liftM2 (++)  mergeIFns :: DecsQ -> DecsQ-mergeIFns qds = do ds <- qds-                   return $ map m' ds+mergeIFns  =  fmap (map m')   where #if __GLASGOW_HASKELL__ < 800   m' (InstanceD   c ts ds) = InstanceD   c ts [foldr1 m ds]@@ -315,9 +311,7 @@   FunD n cs1 `m` FunD _ cs2 = FunD n (cs1 ++ cs2)  mergeI :: DecsQ -> DecsQ -> DecsQ-qds1 `mergeI` qds2 = do ds1 <- qds1-                        ds2 <- qds2-                        return $ ds1 `m` ds2+mergeI  =  liftM2 m   where #if __GLASGOW_HASKELL__ < 800   [InstanceD   c ts ds1] `m` [InstanceD   _ _ ds2] = [InstanceD   c ts (ds1 ++ ds2)]@@ -326,27 +320,26 @@ #endif  whereI :: DecsQ -> [Dec] -> DecsQ-qds `whereI` w = do ds <- qds-                    return $ map (`aw` w) ds+qds `whereI` w  =  fmap (map (`aw` w)) qds+  where #if __GLASGOW_HASKELL__ < 800-  where aw (InstanceD   c ts ds) w' = InstanceD   c ts (ds++w')-        aw d                     _  = d+  aw (InstanceD   c ts ds) w' = InstanceD   c ts (ds++w') #else-  where aw (InstanceD o c ts ds) w' = InstanceD o c ts (ds++w')-        aw d                     _  = d+  aw (InstanceD o c ts ds) w' = InstanceD o c ts (ds++w') #endif+  aw d                     _  = d  -- > nubMerge xs ys == nub (merge xs ys) -- > nubMerge xs ys == nub (sort (xs ++ ys)) nubMerge :: Ord a => [a] -> [a] -> [a]-nubMerge [] ys = ys-nubMerge xs [] = xs-nubMerge (x:xs) (y:ys) | x < y     = x :    xs  `nubMerge` (y:ys)-                       | x > y     = y : (x:xs) `nubMerge`    ys-                       | otherwise = x :    xs  `nubMerge`    ys+nubMerge [] ys  =  ys+nubMerge xs []  =  xs+nubMerge (x:xs) (y:ys) | x < y      =  x :    xs  `nubMerge` (y:ys)+                       | x > y      =  y : (x:xs) `nubMerge`    ys+                       | otherwise  =  x :    xs  `nubMerge`    ys  nubMerges :: Ord a => [[a]] -> [a]-nubMerges = foldr nubMerge []+nubMerges  =  foldr nubMerge []  typeConstructorsArgNames :: Name -> Q [(Name,[Name])] typeConstructorsArgNames t = do@@ -398,4 +391,7 @@  -- | Same as toBounded but lifted over 'Q' toBoundedQ :: TypeQ -> TypeQ-toBoundedQ  =  liftM toBounded+toBoundedQ  =  fmap toBounded++errorOn :: String -> String -> a+errorOn fn msg  =  error $ "Data.Express.Derive.Utils." ++ fn ++ ": " ++ msg
src/Data/Express/Utils/Typeable.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Data.Express.Utils.Typeable--- Copyright   : (c) 2016-2021 Rudy Matela+-- Copyright   : (c) 2016-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -76,11 +76,27 @@ -- > > showTyCon listTyCon -- > "[]" --+-- On GHC <= 9.6:+--+-- > > show unitTyCon+-- > "()"+--+-- On GHC >= 9.8:+--+-- > > show unitTyCon+-- > "Unit"+--+-- On all GHCs:+--+-- > > showTyCon unitTyCon+-- > "()"+-- -- Further exceptions to `show :: TyCon -> String` may be added here -- on future versions. showTyCon :: TyCon -> String showTyCon con   | con == listTyCon  =  "[]"+  | con == unitTyCon  =  "()"   | otherwise         =  show con  -- | Returns the functional arity of the given 'TypeRep'.@@ -124,7 +140,7 @@ unFunTy :: TypeRep -> (TypeRep,TypeRep) unFunTy t   | isFunTy t = let (f,[a,b]) = splitTyConApp t in (a,b)-  | otherwise = error $ "error (unFunTy): `" ++ show t ++ "` is not a function type"+  | otherwise = errorOn "unFunTy" $ "`" ++ show t ++ "' is not a function type"  -- | Returns the argument 'TypeRep' of a given functional 'TypeRep'. --@@ -161,11 +177,11 @@ --   > > > elementTy $ typeOf (undefined :: [Bool]) --   > Bool --   > > > elementTy $ typeOf (undefined :: Bool)---   > *** Exception: error (elementTy): `Bool' is not a list type+--   > *** Exception: Data.Express.Utils.Typeable.elementTy: `Bool' is not a list type elementTy :: TypeRep -> TypeRep elementTy t   | isListTy t = let (_,[a]) = splitTyConApp t in a-  | otherwise = error $ "error (elementTy): `" ++ show t ++ "' is not a list type"+  | otherwise = errorOn "elementTy" $ "`" ++ show t ++ "' is not a list type"  -- | The 'Bool' type encoded as a 'TypeRep'. boolTy :: TypeRep@@ -187,6 +203,10 @@ listTyCon :: TyCon listTyCon = typeRepTyCon $ typeOf (undefined :: [()]) +-- | The unit type constructor as a 'TyCon'+unitTyCon :: TyCon+unitTyCon = typeRepTyCon $ typeOf (undefined :: ())+ -- | Returns whether a 'TypeRep' is functional. -- -- > > isFunTy $ typeOf (undefined :: Int -> Int)@@ -293,9 +313,12 @@ typesInList ts  =  nubSortBy compareTy $ tins ts []   where   tin t  =  (t:) . tins (typeRepArgs t)-  tins ts  =  foldr (.) id (map tin ts)+  tins  =  foldr ((.) . tin) id  -- | An infix alias for 'mkFunTy'.  It is right associative. (->::) :: TypeRep -> TypeRep -> TypeRep (->::) = mkFunTy infixr 9 ->::++errorOn :: String -> String -> a+errorOn fn msg  =  error $ "Data.Express.Utils.Typeable." ++ fn ++ ": " ++ msg
test/Test.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Test--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -33,7 +33,7 @@   ) where -import System.Environment (getArgs)+import System.Environment (getArgs, getProgName) import System.Exit (exitFailure) import Data.List (elemIndices) import Data.Typeable (TypeRep, typeOf)@@ -49,24 +49,25 @@ import Data.Express.Utils.List import Data.Express.Utils.Typeable -reportTests :: [Bool] -> IO ()-reportTests tests =+reportTests :: String -> [Bool] -> IO ()+reportTests s tests =   case elemIndices False tests of-    [] -> putStrLn "+++ Tests passed!"-    is -> do putStrLn ("*** Failed tests:" ++ show is)+    [] -> putStrLn $ s ++ ": tests passed"+    is -> do putStrLn (s ++ ": failed tests:" ++ show is)              exitFailure  getMaxTestsFromArgs :: Int -> IO Int-getMaxTestsFromArgs n = do+getMaxTestsFromArgs n  =  do   as <- getArgs   return $ case as of              (s:_) -> read s              _     -> n  mainTest :: (Int -> [Bool]) -> Int -> IO ()-mainTest tests n' = do+mainTest tests n'  =  do+  pn <- getProgName   n <- getMaxTestsFromArgs n'-  reportTests (tests n)+  reportTests pn (tests n)  tyBool :: TypeRep tyBool  =  typeOf (undefined :: Bool)@@ -216,5 +217,5 @@   ]  (-=-) :: Expr -> Expr -> (Expr,Expr)-e1 -=- e2 = (e1, e2)+e1 -=- e2  =  (e1, e2) infix 0 -=-
test/Test/ListableExpr.hs view
@@ -1,6 +1,6 @@ -- | -- Module      : Test.ListableExpr--- Copyright   : (c) 2019-2021 Rudy Matela+-- Copyright   : (c) 2019-2024 Rudy Matela -- License     : 3-Clause BSD  (see the file LICENSE) -- Maintainer  : Rudy Matela <rudy@matela.com.br> --@@ -98,42 +98,42 @@ unSameTypeE :: SameTypeE -> (Expr,Expr) unSameTypeE (SameTypeE e1 e2)  =  (e1,e2) -data SameTypedPairsE  =  SameTypedPairsE { unSameTypedPairsE :: [(Expr,Expr)] }+newtype SameTypedPairsE  =  SameTypedPairsE { unSameTypedPairsE :: [(Expr,Expr)] }  -- | Ill typed expressions. newtype Ill  =  Ill { unIll :: Expr }  -instance Show E0  where  show (E0 e) = show e-instance Show EV  where  show (EV e) = show e+instance Show E0  where  show (E0 e)  =  show e+instance Show EV  where  show (EV e)  =  show e -instance Show IntE  where  show (IntE e) = show e+instance Show IntE  where  show (IntE e)  =  show e -instance Show IntE0  where  show (IntE0 e) = show e-instance Show IntEV  where  show (IntEV e) = show e+instance Show IntE0  where  show (IntE0 e)  =  show e+instance Show IntEV  where  show (IntEV e)  =  show e -instance Show IntToIntE  where  show (IntToIntE e) = show e-instance Show IntToIntToIntE  where  show (IntToIntToIntE e) = show e+instance Show IntToIntE  where  show (IntToIntE e)  =  show e+instance Show IntToIntToIntE  where  show (IntToIntToIntE e)  =  show e -instance Show BoolE  where  show (BoolE e) = show e+instance Show BoolE  where  show (BoolE e)  =  show e -instance Show BoolE0  where  show (BoolE0 e) = show e-instance Show BoolEV  where  show (BoolEV e) = show e+instance Show BoolE0  where  show (BoolE0 e)  =  show e+instance Show BoolEV  where  show (BoolEV e)  =  show e -instance Show BoolToBoolE  where  show (BoolToBoolE e) = show e-instance Show BoolToBoolToBoolE  where  show (BoolToBoolToBoolE e) = show e+instance Show BoolToBoolE  where  show (BoolToBoolE e)  =  show e+instance Show BoolToBoolToBoolE  where  show (BoolToBoolToBoolE e)  =  show e -instance Show IntsE  where  show (IntsE e) = show e+instance Show IntsE  where  show (IntsE e)  =  show e -instance Show IntsE0  where  show (IntsE0 e) = show e-instance Show IntsEV  where  show (IntsEV e) = show e+instance Show IntsE0  where  show (IntsE0 e)  =  show e+instance Show IntsEV  where  show (IntsEV e)  =  show e -instance Show CharE  where  show (CharE e) = show e+instance Show CharE  where  show (CharE e)  =  show e -instance Show CharE0  where  show (CharE0 e) = show e-instance Show CharEV  where  show (CharEV e) = show e+instance Show CharE0  where  show (CharE0 e)  =  show e+instance Show CharEV  where  show (CharEV e)  =  show e -instance Show SameTypeE  where  show (SameTypeE e1 e2) = show (e1,e2)+instance Show SameTypeE  where  show (SameTypeE e1 e2)  =  show (e1,e2)  instance Show SameTypedPairsE  where  show (SameTypedPairsE ees)  =  show ees @@ -146,7 +146,7 @@ -- | Varialbe of 'Ints' type. newtype IntsEV  =  IntsEV { unIntsEV :: Expr } -instance Show Ill where  show (Ill e) = show e+instance Show Ill where  show (Ill e)  =  show e  instance Listable IntE  where   tiers  =  mapT IntE@@ -235,17 +235,17 @@   tiers  =  (CharE0 . val) `mapT` (tiers :: [[Char]])  instance Listable SameTypeE where-  tiers = cons1 (\(IntE  e1, IntE  e2) -> SameTypeE e1 e2) `ofWeight` 0-       \/ cons1 (\(BoolE e1, BoolE e2) -> SameTypeE e1 e2) `ofWeight` 1-       \/ cons1 (\(IntsE e1, IntsE e2) -> SameTypeE e1 e2) `ofWeight` 1-       \/ cons1 (\(CharE e1, CharE e2) -> SameTypeE e1 e2) `ofWeight` 2-       \/ cons1 (\(IntToIntE e1, IntToIntE e2)     -> SameTypeE e1 e2) `ofWeight` 2-       \/ cons1 (\(BoolToBoolE e1, BoolToBoolE e2) -> SameTypeE e1 e2) `ofWeight` 2-       \/ cons1 (\(BoolToBoolToBoolE e1, BoolToBoolToBoolE e2) -> SameTypeE e1 e2) `ofWeight` 2-       \/ cons1 (\(IntToIntToIntE e1, IntToIntToIntE e2)       -> SameTypeE e1 e2) `ofWeight` 2+  tiers  =  cons1 (\(IntE  e1, IntE  e2) -> SameTypeE e1 e2) `ofWeight` 0+        \/ cons1 (\(BoolE e1, BoolE e2) -> SameTypeE e1 e2) `ofWeight` 1+        \/ cons1 (\(IntsE e1, IntsE e2) -> SameTypeE e1 e2) `ofWeight` 1+        \/ cons1 (\(CharE e1, CharE e2) -> SameTypeE e1 e2) `ofWeight` 2+        \/ cons1 (\(IntToIntE e1, IntToIntE e2)     -> SameTypeE e1 e2) `ofWeight` 2+        \/ cons1 (\(BoolToBoolE e1, BoolToBoolE e2) -> SameTypeE e1 e2) `ofWeight` 2+        \/ cons1 (\(BoolToBoolToBoolE e1, BoolToBoolToBoolE e2) -> SameTypeE e1 e2) `ofWeight` 2+        \/ cons1 (\(IntToIntToIntE e1, IntToIntToIntE e2)       -> SameTypeE e1 e2) `ofWeight` 2  instance Listable SameTypedPairsE where-  tiers = cons1 (SameTypedPairsE . map unSameTypeE) `ofWeight` 0+  tiers  =  cons1 (SameTypedPairsE . map unSameTypeE) `ofWeight` 0  instance Listable E0 where   tiers  =  mapT E0
+ test/basic.hs view
@@ -0,0 +1,49 @@+-- Copyright (c) 2024 Rudy Matela.+-- Distributed under the 3-Clause BSD licence (see the file LICENSE).+{-# LANGUAGE CPP #-}+import Test++main :: IO ()+main  =  mainTest tests 5040++tests :: Int -> [Bool]+tests n  =+  [ True++  , holds n $ \es e -> es >$$ e == es >$$< [e]+  , holds n $ \es e -> e $$< es == [e] >$$< es++  , [false, true, zero, one] >$$< [notE, andE, orE, plus, times] == []++  , [notE, andE, orE, plus, times] >$$< [false, true, zero, one]+    == [ not' false+       , not' true+       , andE :$ false+       , andE :$ true+       , orE :$ false+       , orE :$ true+       , plus :$ zero+       , plus :$ one+       , times :$ zero+       , times :$ one+       ]++  , [notE, andE, orE, plus, times] >$$< [false, true, zero, one] >$$< [false, true, zero, one]+    == [ false -&&- false+       , false -&&- true+       , true -&&- false+       , true -&&- true+       , false -||- false+       , false -||- true+       , true -||- false+       , true -||- true+       , zero -+- zero+       , zero -+- one+       , one -+- zero+       , one -+- one+       , zero -*- zero+       , zero -*- one+       , one -*- zero+       , one -*- one+       ]+  ]
test/canon.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2017-2021 Rudy Matela.+-- Copyright (c) 2017-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test 
test/core.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test @@ -6,10 +6,10 @@ import Test.LeanCheck.Error (errorToNothing)  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    -- smart constructors and evaluation
test/express-derive.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE DeriveDataTypeable #-}@@ -26,8 +26,8 @@  -- Nested datatype cascade data Nested  =  Nested N0 (N1 Int) (N2 Int Int) deriving (Eq, Show, Typeable)-data N0      =  R0 Int deriving (Eq, Show, Typeable)-data N1 a    =  R1 a   deriving (Eq, Show, Typeable)+newtype N0   =  R0 Int deriving (Eq, Show, Typeable)+newtype N1 a =  R1 a   deriving (Eq, Show, Typeable) data N2 a b  =  R2 a b deriving (Eq, Show, Typeable)  deriveExpressCascading ''Nested
test/express.hs view
@@ -1,13 +1,13 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). {-# LANGUAGE CPP #-} import Test  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , holds n $ \x -> expr x == val (x :: Int)
test/fixtures.hs view
@@ -1,14 +1,14 @@--- Copyright (c) 2017-2021 Rudy Matela.+-- Copyright (c) 2017-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test  import Test.LeanCheck.Error (errorToNothing)  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    -- Bool --@@ -201,10 +201,10 @@   , evl  (enumFromTo' zero four) == [0,1,2,3,4 :: Int]    -- [<n> .. <m>] ---  , show ((-..) false) == "[False ..] :: [Bool]"-  , evl  ((-..) false) == [False,True]-  , show ((-..) true)  == "[True ..] :: [Bool]"-  , evl  ((-..) true)  == [True]+  , show (false -.. ()) == "[False ..] :: [Bool]"+  , evl  (false -.. ()) == [False,True]+  , show (true  -.. ())  == "[True ..] :: [Bool]"+  , evl  (true  -.. ())  == [True]   , show (false -..- false) == "[False .. False] :: [Bool]"   , evl  (false -..- false) == [False]   , show (false -..- true)  == "[False .. True] :: [Bool]"@@ -214,7 +214,7 @@   , show (true  -..- true)  == "[True .. True] :: [Bool]"   , evl  (true  -..- true)  == [True] -  , show ((-..) zero) == "[0..] :: [Int]"+  , show (zero -.. ()) == "[0..] :: [Int]"   , show (zero -..- four) == "[0..4] :: [Int]"   , evl  (zero -..- four) == [0,1,2,3,4 :: Int]   , show (minusTwo -..- minusOne) == "[-2 .. -1] :: [Int]"@@ -222,7 +222,7 @@   , show (minusTwo -..- two) == "[-2 .. 2] :: [Int]"   , evl  (minusTwo -..- two) == [-2,-1,0,1,2 :: Int] -  , show ((-..) ae) == "['a'..] :: [Char]"+  , show (ae -.. ()) == "['a'..] :: [Char]"   , show (ae -..- dee) == "['a'..'d'] :: [Char]"   , evl  (ae -..- dee) == "abcd" @@ -242,36 +242,36 @@   , evl  (enumFromThenTo' zero two four) == [0,2,4 :: Int]    -- [<n>, <m> .. <o>] ---  , show ((-...) false true) == "[False, True ..] :: [Bool]"-  , evl  ((-...) false true) == [False,True]-  , show ((-...) true false)  == "[True, False ..] :: [Bool]"-  , evl  ((-...) true false)  == [True,False]-  , show ((false -...- false) true) == "[False, False .. True] :: [Bool]"-  , show ((false -...- true)  true) == "[False, True .. True] :: [Bool]"-  , evl  ((false -...- true)  true) == [False,True]+  , show ((false,true) --.. ()) == "[False, True ..] :: [Bool]"+  , evl  ((false,true) --.. ()) == [False,True]+  , show ((true,false) --.. ()) == "[True, False ..] :: [Bool]"+  , evl  ((true,false) --.. ()) == [True,False]+  , show ((false,false) --..- true) == "[False, False .. True] :: [Bool]"+  , show ((false,true)  --..- true) == "[False, True .. True] :: [Bool]"+  , evl  ((false,true)  --..- true) == [False,True] -  , show ((-...) zero one) == "[0,1..] :: [Int]"-  , show ((zero -...- two) four) == "[0,2..4] :: [Int]"-  , evl  ((zero -...- two) four) == [0,2,4 :: Int]-  , show ((minusTwo -...- one) minusOne)  == "[-2, 1 .. -1] :: [Int]"-  , evl  ((minusTwo -...- one) minusOne) == [-2 :: Int]-  , show ((minusTwo -...- zero) two) == "[-2, 0 .. 2] :: [Int]"-  , evl  ((minusTwo -...- zero) two) == [-2,0,2 :: Int]+  , show ((zero,one) --.. ()) == "[0,1..] :: [Int]"+  , show ((zero,two) --..- four) == "[0,2..4] :: [Int]"+  , evl  ((zero,two) --..- four) == [0,2,4 :: Int]+  , show ((minusTwo,one) --..- minusOne)  == "[-2, 1 .. -1] :: [Int]"+  , evl  ((minusTwo,one) --..- minusOne) == [-2 :: Int]+  , show ((minusTwo,zero) --..- two) == "[-2, 0 .. 2] :: [Int]"+  , evl  ((minusTwo,zero) --..- two) == [-2,0,2 :: Int] -  , show ((-...) ae bee) == "['a','b'..] :: [Char]"-  , show ((ae -...- bee) dee) == "['a','b'..'d'] :: [Char]"-  , evl  ((ae -...- bee) dee) == "abcd"-  , show ((ae -...- dee) zed) == "['a','d'..'z'] :: [Char]"-  , evl  ((ae -...- dee) zed) == "adgjmpsvy"+  , show ((ae,bee) --.. ()) == "['a','b'..] :: [Char]"+  , show ((ae,bee) --..- dee) == "['a','b'..'d'] :: [Char]"+  , evl  ((ae,bee) --..- dee) == "abcd"+  , show ((ae,dee) --..- zed) == "['a','d'..'z'] :: [Char]"+  , evl  ((ae,dee) --..- zed) == "adgjmpsvy" -  , show ((xx -...- yy) zz) == "[x,y..z] :: [Int]"-  , show ((pp -...- qq) rr) == "[p,q..r] :: [Bool]"-  , show ((cc -...- dd) cc) == "[c,d..c] :: [Char]"+  , show ((xx,yy) --..- zz) == "[x,y..z] :: [Int]"+  , show ((pp,qq) --..- rr) == "[p,q..r] :: [Bool]"+  , show ((cc,dd) --..- cc) == "[c,d..c] :: [Char]" -  , show ((zero -...- yy) zz) == "[0,y..z] :: [Int]"-  , show ((pp -...- true) true) == "[p, True .. True] :: [Bool]"-  , show ((cc -...- dd) zed) == "[c,d..'z'] :: [Char]"-  , show ((ae -...- dd) cc)  == "['a',d..c] :: [Char]"+  , show ((zero,yy) --..- zz) == "[0,y..z] :: [Int]"+  , show ((pp,true) --..- true) == "[p, True .. True] :: [Bool]"+  , show ((cc,dd) --..- zed) == "[c,d..'z'] :: [Char]"+  , show ((ae,dd) --..- cc)  == "['a',d..c] :: [Char]"    , show (twelve `div'`  five) == "12 `div` 5 :: Int"   , show (twelve `mod'`  five) == "12 `mod` 5 :: Int"
test/fold.hs view
@@ -1,12 +1,12 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , holds n $ \e1 e2 -> (e1,e2) == unfoldPair (foldPair (e1,e2))
test/hole.hs view
@@ -1,12 +1,12 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , isHole (hole (undefined :: Int))  == True
test/instances.hs view
@@ -1,13 +1,13 @@--- Copyright (c) 2017-2021 Rudy Matela.+-- Copyright (c) 2017-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). {-# LANGUAGE NoMonomorphismRestriction #-} -- ACK! import Test  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , eval undefined (eqFor (undefined :: Int) :$ one :$ one) == True@@ -62,11 +62,11 @@   , lookupName preludeNameInstances (val [[[0::A]]]) == "xsss"   ]   where-  eqFor = head . reifyEq-  lessEqFor = head . reifyOrd-  lessFor = head . tail . reifyOrd---compareFor = head . reifyOrd-  nameFor = head . reifyName+  eqFor  =  head . reifyEq+  lessEqFor  =  head . reifyOrd+  lessFor  =  head . tail . reifyOrd+--compareFor  =  head . reifyOrd+  nameFor  =  head . reifyName  functions :: [Expr] functions  =  concat
test/listable.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2017-2021 Rudy Matela.+-- Copyright (c) 2017-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test @@ -56,7 +56,7 @@   , holds n $ isVar . unCharEV    -- counter-examples are of the right type-  , (counterExample n $ \(IntE xx) -> False) == Just ["_ :: Int"]+  , counterExample n (\(IntE xx) -> False) == Just ["_ :: Int"]    , isNub (take (n`div`10) list :: [Expr])   , isNub (take (n`div`10) $ map unSameTypeE list)@@ -64,16 +64,16 @@   ]  evaluateInt :: Expr -> Maybe Int-evaluateInt = evaluate+evaluateInt  =  evaluate  evaluateBool :: Expr -> Maybe Bool-evaluateBool = evaluate+evaluateBool  =  evaluate  evaluateInts :: Expr -> Maybe [Int]-evaluateInts = evaluate+evaluateInts  =  evaluate  evaluateIntToInt :: Expr -> Maybe (Int -> Int)-evaluateIntToInt = evaluate+evaluateIntToInt  =  evaluate  evaluateChar :: Expr -> Maybe Char-evaluateChar = evaluate+evaluateChar  =  evaluate
test/main.hs view
@@ -1,14 +1,14 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test  import Data.Express.Utils.List  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , evl (val (10 :: Int)) == (10 :: Int)
test/map.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test import Test.LeanCheck.Function@@ -6,10 +6,10 @@ import Data.Express.Utils.List (isNub)  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    -- the order should not matter for //
test/match.hs view
@@ -1,12 +1,12 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , holds n $ \(IntE e)            -> e `isInstanceOf` xx
− test/model/bench/compare.out
@@ -1,5041 +0,0 @@-_ :: Int `compare` _ :: Int  =  EQ-_ :: Int `compare` x :: Int  =  LT-_ :: Int `compare` 0 :: Int  =  LT-_ :: Int `compare` id _ :: Int  =  LT-_ :: Int `compare` _ :: Bool  =  GT-_ :: Int `compare` _ :: Char  =  GT-_ :: Int `compare` _ :: [Int]  =  LT-x :: Int `compare` _ :: Int  =  GT-0 :: Int `compare` _ :: Int  =  GT-id _ :: Int `compare` _ :: Int  =  GT-_ :: Bool `compare` _ :: Int  =  LT-_ :: Char `compare` _ :: Int  =  LT-_ :: [Int] `compare` _ :: Int  =  GT-_ :: Int `compare` y :: Int  =  LT-_ :: Int `compare` 1 :: Int  =  LT-_ :: Int `compare` id x :: Int  =  LT-_ :: Int `compare` id 0 :: Int  =  LT-_ :: Int `compare` id (id _) :: Int  =  LT-_ :: Int `compare` negate _ :: Int  =  LT-_ :: Int `compare` abs _ :: Int  =  LT-_ :: Int `compare` _ + _ :: Int  =  LT-_ :: Int `compare` head _ :: Int  =  LT-_ :: Int `compare` ord _ :: Int  =  LT-_ :: Int `compare` p :: Bool  =  GT-_ :: Int `compare` False :: Bool  =  LT-_ :: Int `compare` True :: Bool  =  LT-_ :: Int `compare` not _ :: Bool  =  LT-_ :: Int `compare` c :: Char  =  GT-_ :: Int `compare` 'a' :: Char  =  LT-_ :: Int `compare` xs :: [Int]  =  LT-_ :: Int `compare` [] :: [Int]  =  LT-_ :: Int `compare` _:_ :: [Int]  =  LT-_ :: Int `compare` id :: Int -> Int  =  LT-_ :: Int `compare` (+) :: Int -> Int -> Int  =  LT-x :: Int `compare` x :: Int  =  EQ-x :: Int `compare` 0 :: Int  =  LT-x :: Int `compare` id _ :: Int  =  LT-x :: Int `compare` _ :: Bool  =  GT-x :: Int `compare` _ :: Char  =  GT-x :: Int `compare` _ :: [Int]  =  LT-0 :: Int `compare` x :: Int  =  GT-0 :: Int `compare` 0 :: Int  =  EQ-0 :: Int `compare` id _ :: Int  =  LT-0 :: Int `compare` _ :: Bool  =  GT-0 :: Int `compare` _ :: Char  =  GT-0 :: Int `compare` _ :: [Int]  =  GT-id _ :: Int `compare` x :: Int  =  GT-id _ :: Int `compare` 0 :: Int  =  GT-id _ :: Int `compare` id _ :: Int  =  EQ-id _ :: Int `compare` _ :: Bool  =  GT-id _ :: Int `compare` _ :: Char  =  GT-id _ :: Int `compare` _ :: [Int]  =  GT-_ :: Bool `compare` x :: Int  =  LT-_ :: Bool `compare` 0 :: Int  =  LT-_ :: Bool `compare` id _ :: Int  =  LT-_ :: Bool `compare` _ :: Bool  =  EQ-_ :: Bool `compare` _ :: Char  =  LT-_ :: Bool `compare` _ :: [Int]  =  LT-_ :: Char `compare` x :: Int  =  LT-_ :: Char `compare` 0 :: Int  =  LT-_ :: Char `compare` id _ :: Int  =  LT-_ :: Char `compare` _ :: Bool  =  GT-_ :: Char `compare` _ :: Char  =  EQ-_ :: Char `compare` _ :: [Int]  =  LT-_ :: [Int] `compare` x :: Int  =  GT-_ :: [Int] `compare` 0 :: Int  =  LT-_ :: [Int] `compare` id _ :: Int  =  LT-_ :: [Int] `compare` _ :: Bool  =  GT-_ :: [Int] `compare` _ :: Char  =  GT-_ :: [Int] `compare` _ :: [Int]  =  EQ-y :: Int `compare` _ :: Int  =  GT-1 :: Int `compare` _ :: Int  =  GT-id x :: Int `compare` _ :: Int  =  GT-id 0 :: Int `compare` _ :: Int  =  GT-id (id _) :: Int `compare` _ :: Int  =  GT-negate _ :: Int `compare` _ :: Int  =  GT-abs _ :: Int `compare` _ :: Int  =  GT-_ + _ :: Int `compare` _ :: Int  =  GT-head _ :: Int `compare` _ :: Int  =  GT-ord _ :: Int `compare` _ :: Int  =  GT-p :: Bool `compare` _ :: Int  =  LT-False :: Bool `compare` _ :: Int  =  GT-True :: Bool `compare` _ :: Int  =  GT-not _ :: Bool `compare` _ :: Int  =  GT-c :: Char `compare` _ :: Int  =  LT-'a' :: Char `compare` _ :: Int  =  GT-xs :: [Int] `compare` _ :: Int  =  GT-[] :: [Int] `compare` _ :: Int  =  GT-_:_ :: [Int] `compare` _ :: Int  =  GT-id :: Int -> Int `compare` _ :: Int  =  GT-(+) :: Int -> Int -> Int `compare` _ :: Int  =  GT-_ :: Int `compare` z :: Int  =  LT-_ :: Int `compare` -1 :: Int  =  LT-_ :: Int `compare` id y :: Int  =  LT-_ :: Int `compare` id 1 :: Int  =  LT-_ :: Int `compare` id (id x) :: Int  =  LT-_ :: Int `compare` id (id 0) :: Int  =  LT-_ :: Int `compare` id (id (id _)) :: Int  =  LT-_ :: Int `compare` id (negate _) :: Int  =  LT-_ :: Int `compare` id (abs _) :: Int  =  LT-_ :: Int `compare` id (_ + _) :: Int  =  LT-_ :: Int `compare` id (head _) :: Int  =  LT-_ :: Int `compare` id (ord _) :: Int  =  LT-_ :: Int `compare` negate x :: Int  =  LT-_ :: Int `compare` negate 0 :: Int  =  LT-_ :: Int `compare` negate (id _) :: Int  =  LT-_ :: Int `compare` abs x :: Int  =  LT-_ :: Int `compare` abs 0 :: Int  =  LT-_ :: Int `compare` abs (id _) :: Int  =  LT-_ :: Int `compare` _ + x :: Int  =  LT-_ :: Int `compare` _ + 0 :: Int  =  LT-_ :: Int `compare` _ + id _ :: Int  =  LT-_ :: Int `compare` x + _ :: Int  =  LT-_ :: Int `compare` 0 + _ :: Int  =  LT-_ :: Int `compare` id _ + _ :: Int  =  LT-_ :: Int `compare` _ * _ :: Int  =  LT-_ :: Int `compare` f _ :: Int  =  LT-_ :: Int `compare` head xs :: Int  =  LT-_ :: Int `compare` head [] :: Int  =  LT-_ :: Int `compare` head (_:_) :: Int  =  LT-_ :: Int `compare` ord c :: Int  =  LT-_ :: Int `compare` ord 'a' :: Int  =  LT-_ :: Int `compare` q :: Bool  =  GT-_ :: Int `compare` not p :: Bool  =  LT-_ :: Int `compare` not False :: Bool  =  LT-_ :: Int `compare` not True :: Bool  =  LT-_ :: Int `compare` not (not _) :: Bool  =  LT-_ :: Int `compare` _ || _ :: Bool  =  LT-_ :: Int `compare` d :: Char  =  GT-_ :: Int `compare` ' ' :: Char  =  LT-_ :: Int `compare` ys :: [Int]  =  LT-_ :: Int `compare` [0] :: [Int]  =  LT-_ :: Int `compare` _:xs :: [Int]  =  LT-_ :: Int `compare` [_] :: [Int]  =  LT-_ :: Int `compare` _:_:_ :: [Int]  =  LT-_ :: Int `compare` x:_ :: [Int]  =  LT-_ :: Int `compare` 0:_ :: [Int]  =  LT-_ :: Int `compare` id _:_ :: [Int]  =  LT-_ :: Int `compare` tail _ :: [Int]  =  LT-_ :: Int `compare` _ ++ _ :: [Int]  =  LT-_ :: Int `compare` negate :: Int -> Int  =  LT-_ :: Int `compare` abs :: Int -> Int  =  LT-_ :: Int `compare` (_ +) :: Int -> Int  =  LT-_ :: Int `compare` (*) :: Int -> Int -> Int  =  LT-_ :: Int `compare` not :: Bool -> Bool  =  LT-_ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT-x :: Int `compare` y :: Int  =  LT-x :: Int `compare` 1 :: Int  =  LT-x :: Int `compare` id x :: Int  =  LT-x :: Int `compare` id 0 :: Int  =  LT-x :: Int `compare` id (id _) :: Int  =  LT-x :: Int `compare` negate _ :: Int  =  LT-x :: Int `compare` abs _ :: Int  =  LT-x :: Int `compare` _ + _ :: Int  =  LT-x :: Int `compare` head _ :: Int  =  LT-x :: Int `compare` ord _ :: Int  =  LT-x :: Int `compare` p :: Bool  =  GT-x :: Int `compare` False :: Bool  =  LT-x :: Int `compare` True :: Bool  =  LT-x :: Int `compare` not _ :: Bool  =  LT-x :: Int `compare` c :: Char  =  GT-x :: Int `compare` 'a' :: Char  =  LT-x :: Int `compare` xs :: [Int]  =  LT-x :: Int `compare` [] :: [Int]  =  LT-x :: Int `compare` _:_ :: [Int]  =  LT-x :: Int `compare` id :: Int -> Int  =  LT-x :: Int `compare` (+) :: Int -> Int -> Int  =  LT-0 :: Int `compare` y :: Int  =  GT-0 :: Int `compare` 1 :: Int  =  LT-0 :: Int `compare` id x :: Int  =  LT-0 :: Int `compare` id 0 :: Int  =  LT-0 :: Int `compare` id (id _) :: Int  =  LT-0 :: Int `compare` negate _ :: Int  =  LT-0 :: Int `compare` abs _ :: Int  =  LT-0 :: Int `compare` _ + _ :: Int  =  LT-0 :: Int `compare` head _ :: Int  =  LT-0 :: Int `compare` ord _ :: Int  =  LT-0 :: Int `compare` p :: Bool  =  GT-0 :: Int `compare` False :: Bool  =  GT-0 :: Int `compare` True :: Bool  =  GT-0 :: Int `compare` not _ :: Bool  =  LT-0 :: Int `compare` c :: Char  =  GT-0 :: Int `compare` 'a' :: Char  =  GT-0 :: Int `compare` xs :: [Int]  =  GT-0 :: Int `compare` [] :: [Int]  =  LT-0 :: Int `compare` _:_ :: [Int]  =  LT-0 :: Int `compare` id :: Int -> Int  =  LT-0 :: Int `compare` (+) :: Int -> Int -> Int  =  LT-id _ :: Int `compare` y :: Int  =  GT-id _ :: Int `compare` 1 :: Int  =  GT-id _ :: Int `compare` id x :: Int  =  LT-id _ :: Int `compare` id 0 :: Int  =  LT-id _ :: Int `compare` id (id _) :: Int  =  LT-id _ :: Int `compare` negate _ :: Int  =  LT-id _ :: Int `compare` abs _ :: Int  =  LT-id _ :: Int `compare` _ + _ :: Int  =  LT-id _ :: Int `compare` head _ :: Int  =  LT-id _ :: Int `compare` ord _ :: Int  =  GT-id _ :: Int `compare` p :: Bool  =  GT-id _ :: Int `compare` False :: Bool  =  GT-id _ :: Int `compare` True :: Bool  =  GT-id _ :: Int `compare` not _ :: Bool  =  GT-id _ :: Int `compare` c :: Char  =  GT-id _ :: Int `compare` 'a' :: Char  =  GT-id _ :: Int `compare` xs :: [Int]  =  GT-id _ :: Int `compare` [] :: [Int]  =  GT-id _ :: Int `compare` _:_ :: [Int]  =  LT-id _ :: Int `compare` id :: Int -> Int  =  GT-id _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT-_ :: Bool `compare` y :: Int  =  LT-_ :: Bool `compare` 1 :: Int  =  LT-_ :: Bool `compare` id x :: Int  =  LT-_ :: Bool `compare` id 0 :: Int  =  LT-_ :: Bool `compare` id (id _) :: Int  =  LT-_ :: Bool `compare` negate _ :: Int  =  LT-_ :: Bool `compare` abs _ :: Int  =  LT-_ :: Bool `compare` _ + _ :: Int  =  LT-_ :: Bool `compare` head _ :: Int  =  LT-_ :: Bool `compare` ord _ :: Int  =  LT-_ :: Bool `compare` p :: Bool  =  LT-_ :: Bool `compare` False :: Bool  =  LT-_ :: Bool `compare` True :: Bool  =  LT-_ :: Bool `compare` not _ :: Bool  =  LT-_ :: Bool `compare` c :: Char  =  LT-_ :: Bool `compare` 'a' :: Char  =  LT-_ :: Bool `compare` xs :: [Int]  =  LT-_ :: Bool `compare` [] :: [Int]  =  LT-_ :: Bool `compare` _:_ :: [Int]  =  LT-_ :: Bool `compare` id :: Int -> Int  =  LT-_ :: Bool `compare` (+) :: Int -> Int -> Int  =  LT-_ :: Char `compare` y :: Int  =  LT-_ :: Char `compare` 1 :: Int  =  LT-_ :: Char `compare` id x :: Int  =  LT-_ :: Char `compare` id 0 :: Int  =  LT-_ :: Char `compare` id (id _) :: Int  =  LT-_ :: Char `compare` negate _ :: Int  =  LT-_ :: Char `compare` abs _ :: Int  =  LT-_ :: Char `compare` _ + _ :: Int  =  LT-_ :: Char `compare` head _ :: Int  =  LT-_ :: Char `compare` ord _ :: Int  =  LT-_ :: Char `compare` p :: Bool  =  GT-_ :: Char `compare` False :: Bool  =  LT-_ :: Char `compare` True :: Bool  =  LT-_ :: Char `compare` not _ :: Bool  =  LT-_ :: Char `compare` c :: Char  =  LT-_ :: Char `compare` 'a' :: Char  =  LT-_ :: Char `compare` xs :: [Int]  =  LT-_ :: Char `compare` [] :: [Int]  =  LT-_ :: Char `compare` _:_ :: [Int]  =  LT-_ :: Char `compare` id :: Int -> Int  =  LT-_ :: Char `compare` (+) :: Int -> Int -> Int  =  LT-_ :: [Int] `compare` y :: Int  =  GT-_ :: [Int] `compare` 1 :: Int  =  LT-_ :: [Int] `compare` id x :: Int  =  LT-_ :: [Int] `compare` id 0 :: Int  =  LT-_ :: [Int] `compare` id (id _) :: Int  =  LT-_ :: [Int] `compare` negate _ :: Int  =  LT-_ :: [Int] `compare` abs _ :: Int  =  LT-_ :: [Int] `compare` _ + _ :: Int  =  LT-_ :: [Int] `compare` head _ :: Int  =  LT-_ :: [Int] `compare` ord _ :: Int  =  LT-_ :: [Int] `compare` p :: Bool  =  GT-_ :: [Int] `compare` False :: Bool  =  LT-_ :: [Int] `compare` True :: Bool  =  LT-_ :: [Int] `compare` not _ :: Bool  =  LT-_ :: [Int] `compare` c :: Char  =  GT-_ :: [Int] `compare` 'a' :: Char  =  LT-_ :: [Int] `compare` xs :: [Int]  =  LT-_ :: [Int] `compare` [] :: [Int]  =  LT-_ :: [Int] `compare` _:_ :: [Int]  =  LT-_ :: [Int] `compare` id :: Int -> Int  =  LT-_ :: [Int] `compare` (+) :: Int -> Int -> Int  =  LT-y :: Int `compare` x :: Int  =  GT-y :: Int `compare` 0 :: Int  =  LT-y :: Int `compare` id _ :: Int  =  LT-y :: Int `compare` _ :: Bool  =  GT-y :: Int `compare` _ :: Char  =  GT-y :: Int `compare` _ :: [Int]  =  LT-1 :: Int `compare` x :: Int  =  GT-1 :: Int `compare` 0 :: Int  =  GT-1 :: Int `compare` id _ :: Int  =  LT-1 :: Int `compare` _ :: Bool  =  GT-1 :: Int `compare` _ :: Char  =  GT-1 :: Int `compare` _ :: [Int]  =  GT-id x :: Int `compare` x :: Int  =  GT-id x :: Int `compare` 0 :: Int  =  GT-id x :: Int `compare` id _ :: Int  =  GT-id x :: Int `compare` _ :: Bool  =  GT-id x :: Int `compare` _ :: Char  =  GT-id x :: Int `compare` _ :: [Int]  =  GT-id 0 :: Int `compare` x :: Int  =  GT-id 0 :: Int `compare` 0 :: Int  =  GT-id 0 :: Int `compare` id _ :: Int  =  GT-id 0 :: Int `compare` _ :: Bool  =  GT-id 0 :: Int `compare` _ :: Char  =  GT-id 0 :: Int `compare` _ :: [Int]  =  GT-id (id _) :: Int `compare` x :: Int  =  GT-id (id _) :: Int `compare` 0 :: Int  =  GT-id (id _) :: Int `compare` id _ :: Int  =  GT-id (id _) :: Int `compare` _ :: Bool  =  GT-id (id _) :: Int `compare` _ :: Char  =  GT-id (id _) :: Int `compare` _ :: [Int]  =  GT-negate _ :: Int `compare` x :: Int  =  GT-negate _ :: Int `compare` 0 :: Int  =  GT-negate _ :: Int `compare` id _ :: Int  =  GT-negate _ :: Int `compare` _ :: Bool  =  GT-negate _ :: Int `compare` _ :: Char  =  GT-negate _ :: Int `compare` _ :: [Int]  =  GT-abs _ :: Int `compare` x :: Int  =  GT-abs _ :: Int `compare` 0 :: Int  =  GT-abs _ :: Int `compare` id _ :: Int  =  GT-abs _ :: Int `compare` _ :: Bool  =  GT-abs _ :: Int `compare` _ :: Char  =  GT-abs _ :: Int `compare` _ :: [Int]  =  GT-_ + _ :: Int `compare` x :: Int  =  GT-_ + _ :: Int `compare` 0 :: Int  =  GT-_ + _ :: Int `compare` id _ :: Int  =  GT-_ + _ :: Int `compare` _ :: Bool  =  GT-_ + _ :: Int `compare` _ :: Char  =  GT-_ + _ :: Int `compare` _ :: [Int]  =  GT-head _ :: Int `compare` x :: Int  =  GT-head _ :: Int `compare` 0 :: Int  =  GT-head _ :: Int `compare` id _ :: Int  =  GT-head _ :: Int `compare` _ :: Bool  =  GT-head _ :: Int `compare` _ :: Char  =  GT-head _ :: Int `compare` _ :: [Int]  =  GT-ord _ :: Int `compare` x :: Int  =  GT-ord _ :: Int `compare` 0 :: Int  =  GT-ord _ :: Int `compare` id _ :: Int  =  LT-ord _ :: Int `compare` _ :: Bool  =  GT-ord _ :: Int `compare` _ :: Char  =  GT-ord _ :: Int `compare` _ :: [Int]  =  GT-p :: Bool `compare` x :: Int  =  LT-p :: Bool `compare` 0 :: Int  =  LT-p :: Bool `compare` id _ :: Int  =  LT-p :: Bool `compare` _ :: Bool  =  GT-p :: Bool `compare` _ :: Char  =  LT-p :: Bool `compare` _ :: [Int]  =  LT-False :: Bool `compare` x :: Int  =  GT-False :: Bool `compare` 0 :: Int  =  LT-False :: Bool `compare` id _ :: Int  =  LT-False :: Bool `compare` _ :: Bool  =  GT-False :: Bool `compare` _ :: Char  =  GT-False :: Bool `compare` _ :: [Int]  =  GT-True :: Bool `compare` x :: Int  =  GT-True :: Bool `compare` 0 :: Int  =  LT-True :: Bool `compare` id _ :: Int  =  LT-True :: Bool `compare` _ :: Bool  =  GT-True :: Bool `compare` _ :: Char  =  GT-True :: Bool `compare` _ :: [Int]  =  GT-not _ :: Bool `compare` x :: Int  =  GT-not _ :: Bool `compare` 0 :: Int  =  GT-not _ :: Bool `compare` id _ :: Int  =  LT-not _ :: Bool `compare` _ :: Bool  =  GT-not _ :: Bool `compare` _ :: Char  =  GT-not _ :: Bool `compare` _ :: [Int]  =  GT-c :: Char `compare` x :: Int  =  LT-c :: Char `compare` 0 :: Int  =  LT-c :: Char `compare` id _ :: Int  =  LT-c :: Char `compare` _ :: Bool  =  GT-c :: Char `compare` _ :: Char  =  GT-c :: Char `compare` _ :: [Int]  =  LT-'a' :: Char `compare` x :: Int  =  GT-'a' :: Char `compare` 0 :: Int  =  LT-'a' :: Char `compare` id _ :: Int  =  LT-'a' :: Char `compare` _ :: Bool  =  GT-'a' :: Char `compare` _ :: Char  =  GT-'a' :: Char `compare` _ :: [Int]  =  GT-xs :: [Int] `compare` x :: Int  =  GT-xs :: [Int] `compare` 0 :: Int  =  LT-xs :: [Int] `compare` id _ :: Int  =  LT-xs :: [Int] `compare` _ :: Bool  =  GT-xs :: [Int] `compare` _ :: Char  =  GT-xs :: [Int] `compare` _ :: [Int]  =  GT-[] :: [Int] `compare` x :: Int  =  GT-[] :: [Int] `compare` 0 :: Int  =  GT-[] :: [Int] `compare` id _ :: Int  =  LT-[] :: [Int] `compare` _ :: Bool  =  GT-[] :: [Int] `compare` _ :: Char  =  GT-[] :: [Int] `compare` _ :: [Int]  =  GT-_:_ :: [Int] `compare` x :: Int  =  GT-_:_ :: [Int] `compare` 0 :: Int  =  GT-_:_ :: [Int] `compare` id _ :: Int  =  GT-_:_ :: [Int] `compare` _ :: Bool  =  GT-_:_ :: [Int] `compare` _ :: Char  =  GT-_:_ :: [Int] `compare` _ :: [Int]  =  GT-id :: Int -> Int `compare` x :: Int  =  GT-id :: Int -> Int `compare` 0 :: Int  =  GT-id :: Int -> Int `compare` id _ :: Int  =  LT-id :: Int -> Int `compare` _ :: Bool  =  GT-id :: Int -> Int `compare` _ :: Char  =  GT-id :: Int -> Int `compare` _ :: [Int]  =  GT-(+) :: Int -> Int -> Int `compare` x :: Int  =  GT-(+) :: Int -> Int -> Int `compare` 0 :: Int  =  GT-(+) :: Int -> Int -> Int `compare` id _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` _ :: Bool  =  GT-(+) :: Int -> Int -> Int `compare` _ :: Char  =  GT-(+) :: Int -> Int -> Int `compare` _ :: [Int]  =  GT-z :: Int `compare` _ :: Int  =  GT--1 :: Int `compare` _ :: Int  =  GT-id y :: Int `compare` _ :: Int  =  GT-id 1 :: Int `compare` _ :: Int  =  GT-id (id x) :: Int `compare` _ :: Int  =  GT-id (id 0) :: Int `compare` _ :: Int  =  GT-id (id (id _)) :: Int `compare` _ :: Int  =  GT-id (negate _) :: Int `compare` _ :: Int  =  GT-id (abs _) :: Int `compare` _ :: Int  =  GT-id (_ + _) :: Int `compare` _ :: Int  =  GT-id (head _) :: Int `compare` _ :: Int  =  GT-id (ord _) :: Int `compare` _ :: Int  =  GT-negate x :: Int `compare` _ :: Int  =  GT-negate 0 :: Int `compare` _ :: Int  =  GT-negate (id _) :: Int `compare` _ :: Int  =  GT-abs x :: Int `compare` _ :: Int  =  GT-abs 0 :: Int `compare` _ :: Int  =  GT-abs (id _) :: Int `compare` _ :: Int  =  GT-_ + x :: Int `compare` _ :: Int  =  GT-_ + 0 :: Int `compare` _ :: Int  =  GT-_ + id _ :: Int `compare` _ :: Int  =  GT-x + _ :: Int `compare` _ :: Int  =  GT-0 + _ :: Int `compare` _ :: Int  =  GT-id _ + _ :: Int `compare` _ :: Int  =  GT-_ * _ :: Int `compare` _ :: Int  =  GT-f _ :: Int `compare` _ :: Int  =  GT-head xs :: Int `compare` _ :: Int  =  GT-head [] :: Int `compare` _ :: Int  =  GT-head (_:_) :: Int `compare` _ :: Int  =  GT-ord c :: Int `compare` _ :: Int  =  GT-ord 'a' :: Int `compare` _ :: Int  =  GT-q :: Bool `compare` _ :: Int  =  LT-not p :: Bool `compare` _ :: Int  =  GT-not False :: Bool `compare` _ :: Int  =  GT-not True :: Bool `compare` _ :: Int  =  GT-not (not _) :: Bool `compare` _ :: Int  =  GT-_ || _ :: Bool `compare` _ :: Int  =  GT-d :: Char `compare` _ :: Int  =  LT-' ' :: Char `compare` _ :: Int  =  GT-ys :: [Int] `compare` _ :: Int  =  GT-[0] :: [Int] `compare` _ :: Int  =  GT-_:xs :: [Int] `compare` _ :: Int  =  GT-[_] :: [Int] `compare` _ :: Int  =  GT-_:_:_ :: [Int] `compare` _ :: Int  =  GT-x:_ :: [Int] `compare` _ :: Int  =  GT-0:_ :: [Int] `compare` _ :: Int  =  GT-id _:_ :: [Int] `compare` _ :: Int  =  GT-tail _ :: [Int] `compare` _ :: Int  =  GT-_ ++ _ :: [Int] `compare` _ :: Int  =  GT-negate :: Int -> Int `compare` _ :: Int  =  GT-abs :: Int -> Int `compare` _ :: Int  =  GT-(_ +) :: Int -> Int `compare` _ :: Int  =  GT-(*) :: Int -> Int -> Int `compare` _ :: Int  =  GT-not :: Bool -> Bool `compare` _ :: Int  =  GT-(||) :: Bool -> Bool -> Bool `compare` _ :: Int  =  GT-_ :: Int `compare` x' :: Int  =  LT-_ :: Int `compare` 2 :: Int  =  LT-_ :: Int `compare` id z :: Int  =  LT-_ :: Int `compare` id (-1) :: Int  =  LT-_ :: Int `compare` id (id y) :: Int  =  LT-_ :: Int `compare` id (id 1) :: Int  =  LT-_ :: Int `compare` id (id (id x)) :: Int  =  LT-_ :: Int `compare` id (id (id 0)) :: Int  =  LT-_ :: Int `compare` id (id (id (id _))) :: Int  =  LT-_ :: Int `compare` id (id (negate _)) :: Int  =  LT-_ :: Int `compare` id (id (abs _)) :: Int  =  LT-_ :: Int `compare` id (id (_ + _)) :: Int  =  LT-_ :: Int `compare` id (id (head _)) :: Int  =  LT-_ :: Int `compare` id (id (ord _)) :: Int  =  LT-_ :: Int `compare` id (negate x) :: Int  =  LT-_ :: Int `compare` id (negate 0) :: Int  =  LT-_ :: Int `compare` id (negate (id _)) :: Int  =  LT-_ :: Int `compare` id (abs x) :: Int  =  LT-_ :: Int `compare` id (abs 0) :: Int  =  LT-_ :: Int `compare` id (abs (id _)) :: Int  =  LT-_ :: Int `compare` id (_ + x) :: Int  =  LT-_ :: Int `compare` id (_ + 0) :: Int  =  LT-_ :: Int `compare` id (_ + id _) :: Int  =  LT-_ :: Int `compare` id (x + _) :: Int  =  LT-_ :: Int `compare` id (0 + _) :: Int  =  LT-_ :: Int `compare` id (id _ + _) :: Int  =  LT-_ :: Int `compare` id (_ * _) :: Int  =  LT-_ :: Int `compare` id (f _) :: Int  =  LT-_ :: Int `compare` id (head xs) :: Int  =  LT-_ :: Int `compare` id (head []) :: Int  =  LT-_ :: Int `compare` id (head (_:_)) :: Int  =  LT-_ :: Int `compare` id (ord c) :: Int  =  LT-_ :: Int `compare` id (ord 'a') :: Int  =  LT-_ :: Int `compare` negate y :: Int  =  LT-_ :: Int `compare` negate 1 :: Int  =  LT-_ :: Int `compare` negate (id x) :: Int  =  LT-_ :: Int `compare` negate (id 0) :: Int  =  LT-_ :: Int `compare` negate (id (id _)) :: Int  =  LT-_ :: Int `compare` negate (negate _) :: Int  =  LT-_ :: Int `compare` negate (abs _) :: Int  =  LT-_ :: Int `compare` negate (_ + _) :: Int  =  LT-_ :: Int `compare` negate (head _) :: Int  =  LT-_ :: Int `compare` negate (ord _) :: Int  =  LT-_ :: Int `compare` abs y :: Int  =  LT-_ :: Int `compare` abs 1 :: Int  =  LT-_ :: Int `compare` abs (id x) :: Int  =  LT-_ :: Int `compare` abs (id 0) :: Int  =  LT-_ :: Int `compare` abs (id (id _)) :: Int  =  LT-_ :: Int `compare` abs (negate _) :: Int  =  LT-_ :: Int `compare` abs (abs _) :: Int  =  LT-_ :: Int `compare` abs (_ + _) :: Int  =  LT-_ :: Int `compare` abs (head _) :: Int  =  LT-_ :: Int `compare` abs (ord _) :: Int  =  LT-_ :: Int `compare` _ + y :: Int  =  LT-_ :: Int `compare` _ + 1 :: Int  =  LT-_ :: Int `compare` _ + id x :: Int  =  LT-_ :: Int `compare` _ + id 0 :: Int  =  LT-_ :: Int `compare` _ + id (id _) :: Int  =  LT-_ :: Int `compare` _ + negate _ :: Int  =  LT-_ :: Int `compare` _ + abs _ :: Int  =  LT-_ :: Int `compare` _ + (_ + _) :: Int  =  LT-_ :: Int `compare` _ + head _ :: Int  =  LT-_ :: Int `compare` _ + ord _ :: Int  =  LT-_ :: Int `compare` x + x :: Int  =  LT-_ :: Int `compare` x + 0 :: Int  =  LT-_ :: Int `compare` x + id _ :: Int  =  LT-_ :: Int `compare` 0 + x :: Int  =  LT-_ :: Int `compare` 0 + 0 :: Int  =  LT-_ :: Int `compare` 0 + id _ :: Int  =  LT-_ :: Int `compare` id _ + x :: Int  =  LT-_ :: Int `compare` id _ + 0 :: Int  =  LT-_ :: Int `compare` id _ + id _ :: Int  =  LT-_ :: Int `compare` _ * x :: Int  =  LT-_ :: Int `compare` _ * 0 :: Int  =  LT-_ :: Int `compare` _ * id _ :: Int  =  LT-_ :: Int `compare` f x :: Int  =  LT-_ :: Int `compare` f 0 :: Int  =  LT-_ :: Int `compare` f (id _) :: Int  =  LT-_ :: Int `compare` y + _ :: Int  =  LT-_ :: Int `compare` 1 + _ :: Int  =  LT-_ :: Int `compare` id x + _ :: Int  =  LT-_ :: Int `compare` id 0 + _ :: Int  =  LT-_ :: Int `compare` id (id _) + _ :: Int  =  LT-_ :: Int `compare` negate _ + _ :: Int  =  LT-_ :: Int `compare` abs _ + _ :: Int  =  LT-_ :: Int `compare` (_ + _) + _ :: Int  =  LT-_ :: Int `compare` head _ + _ :: Int  =  LT-_ :: Int `compare` ord _ + _ :: Int  =  LT-_ :: Int `compare` x * _ :: Int  =  LT-_ :: Int `compare` 0 * _ :: Int  =  LT-_ :: Int `compare` id _ * _ :: Int  =  LT-_ :: Int `compare` g _ :: Int  =  LT-_ :: Int `compare` head ys :: Int  =  LT-_ :: Int `compare` head [0] :: Int  =  LT-_ :: Int `compare` head (_:xs) :: Int  =  LT-_ :: Int `compare` head [_] :: Int  =  LT-_ :: Int `compare` head (_:_:_) :: Int  =  LT-_ :: Int `compare` head (x:_) :: Int  =  LT-_ :: Int `compare` head (0:_) :: Int  =  LT-_ :: Int `compare` head (id _:_) :: Int  =  LT-_ :: Int `compare` head (tail _) :: Int  =  LT-_ :: Int `compare` head (_ ++ _) :: Int  =  LT-_ :: Int `compare` ord d :: Int  =  LT-_ :: Int `compare` ord ' ' :: Int  =  LT-_ :: Int `compare` r :: Bool  =  GT-_ :: Int `compare` not q :: Bool  =  LT-_ :: Int `compare` not (not p) :: Bool  =  LT-_ :: Int `compare` not (not False) :: Bool  =  LT-_ :: Int `compare` not (not True) :: Bool  =  LT-_ :: Int `compare` not (not (not _)) :: Bool  =  LT-_ :: Int `compare` not (_ || _) :: Bool  =  LT-_ :: Int `compare` _ || p :: Bool  =  LT-_ :: Int `compare` _ || False :: Bool  =  LT-_ :: Int `compare` _ || True :: Bool  =  LT-_ :: Int `compare` _ || not _ :: Bool  =  LT-_ :: Int `compare` p || _ :: Bool  =  LT-_ :: Int `compare` False || _ :: Bool  =  LT-_ :: Int `compare` True || _ :: Bool  =  LT-_ :: Int `compare` not _ || _ :: Bool  =  LT-_ :: Int `compare` _ && _ :: Bool  =  LT-_ :: Int `compare` _ == _ :: Bool  =  LT-_ :: Int `compare` _ == _ :: Bool  =  LT-_ :: Int `compare` odd _ :: Bool  =  LT-_ :: Int `compare` even _ :: Bool  =  LT-_ :: Int `compare` elem _ _ :: Bool  =  LT-_ :: Int `compare` e :: Char  =  GT-_ :: Int `compare` 'b' :: Char  =  LT-_ :: Int `compare` zs :: [Int]  =  LT-_ :: Int `compare` [0,0] :: [Int]  =  LT-_ :: Int `compare` [1] :: [Int]  =  LT-_ :: Int `compare` _:ys :: [Int]  =  LT-_ :: Int `compare` [_,0] :: [Int]  =  LT-_ :: Int `compare` _:_:xs :: [Int]  =  LT-_ :: Int `compare` [_,_] :: [Int]  =  LT-_ :: Int `compare` _:_:_:_ :: [Int]  =  LT-_ :: Int `compare` _:x:_ :: [Int]  =  LT-_ :: Int `compare` _:0:_ :: [Int]  =  LT-_ :: Int `compare` _:id _:_ :: [Int]  =  LT-_ :: Int `compare` _:tail _ :: [Int]  =  LT-_ :: Int `compare` _:(_ ++ _) :: [Int]  =  LT-_ :: Int `compare` x:xs :: [Int]  =  LT-_ :: Int `compare` [x] :: [Int]  =  LT-_ :: Int `compare` x:_:_ :: [Int]  =  LT-_ :: Int `compare` 0:xs :: [Int]  =  LT-_ :: Int `compare` [0] :: [Int]  =  LT-_ :: Int `compare` 0:_:_ :: [Int]  =  LT-_ :: Int `compare` id _:xs :: [Int]  =  LT-_ :: Int `compare` [id _] :: [Int]  =  LT-_ :: Int `compare` id _:_:_ :: [Int]  =  LT-_ :: Int `compare` y:_ :: [Int]  =  LT-_ :: Int `compare` 1:_ :: [Int]  =  LT-_ :: Int `compare` id x:_ :: [Int]  =  LT-_ :: Int `compare` id 0:_ :: [Int]  =  LT-_ :: Int `compare` id (id _):_ :: [Int]  =  LT-_ :: Int `compare` negate _:_ :: [Int]  =  LT-_ :: Int `compare` abs _:_ :: [Int]  =  LT-_ :: Int `compare` _ + _:_ :: [Int]  =  LT-_ :: Int `compare` head _:_ :: [Int]  =  LT-_ :: Int `compare` ord _:_ :: [Int]  =  LT-_ :: Int `compare` tail xs :: [Int]  =  LT-_ :: Int `compare` tail [] :: [Int]  =  LT-_ :: Int `compare` tail (_:_) :: [Int]  =  LT-_ :: Int `compare` _ ++ xs :: [Int]  =  LT-_ :: Int `compare` _ ++ [] :: [Int]  =  LT-_ :: Int `compare` _ ++ (_:_) :: [Int]  =  LT-_ :: Int `compare` xs ++ _ :: [Int]  =  LT-_ :: Int `compare` [] ++ _ :: [Int]  =  LT-_ :: Int `compare` (_:_) ++ _ :: [Int]  =  LT-_ :: Int `compare` sort _ :: [Int]  =  LT-_ :: Int `compare` insert _ _ :: [Int]  =  LT-_ :: Int `compare` (x +) :: Int -> Int  =  LT-_ :: Int `compare` (0 +) :: Int -> Int  =  LT-_ :: Int `compare` (id _ +) :: Int -> Int  =  LT-_ :: Int `compare` (_ *) :: Int -> Int  =  LT-_ :: Int `compare` f :: Int -> Int  =  LT-_ :: Int `compare` (_ ||) :: Bool -> Bool  =  LT-_ :: Int `compare` (&&) :: Bool -> Bool -> Bool  =  LT-x :: Int `compare` z :: Int  =  LT-x :: Int `compare` -1 :: Int  =  LT-x :: Int `compare` id y :: Int  =  LT-x :: Int `compare` id 1 :: Int  =  LT-x :: Int `compare` id (id x) :: Int  =  LT-x :: Int `compare` id (id 0) :: Int  =  LT-x :: Int `compare` id (id (id _)) :: Int  =  LT-x :: Int `compare` id (negate _) :: Int  =  LT-x :: Int `compare` id (abs _) :: Int  =  LT-x :: Int `compare` id (_ + _) :: Int  =  LT-x :: Int `compare` id (head _) :: Int  =  LT-x :: Int `compare` id (ord _) :: Int  =  LT-x :: Int `compare` negate x :: Int  =  LT-x :: Int `compare` negate 0 :: Int  =  LT-x :: Int `compare` negate (id _) :: Int  =  LT-x :: Int `compare` abs x :: Int  =  LT-x :: Int `compare` abs 0 :: Int  =  LT-x :: Int `compare` abs (id _) :: Int  =  LT-x :: Int `compare` _ + x :: Int  =  LT-x :: Int `compare` _ + 0 :: Int  =  LT-x :: Int `compare` _ + id _ :: Int  =  LT-x :: Int `compare` x + _ :: Int  =  LT-x :: Int `compare` 0 + _ :: Int  =  LT-x :: Int `compare` id _ + _ :: Int  =  LT-x :: Int `compare` _ * _ :: Int  =  LT-x :: Int `compare` f _ :: Int  =  LT-x :: Int `compare` head xs :: Int  =  LT-x :: Int `compare` head [] :: Int  =  LT-x :: Int `compare` head (_:_) :: Int  =  LT-x :: Int `compare` ord c :: Int  =  LT-x :: Int `compare` ord 'a' :: Int  =  LT-x :: Int `compare` q :: Bool  =  GT-x :: Int `compare` not p :: Bool  =  LT-x :: Int `compare` not False :: Bool  =  LT-x :: Int `compare` not True :: Bool  =  LT-x :: Int `compare` not (not _) :: Bool  =  LT-x :: Int `compare` _ || _ :: Bool  =  LT-x :: Int `compare` d :: Char  =  GT-x :: Int `compare` ' ' :: Char  =  LT-x :: Int `compare` ys :: [Int]  =  LT-x :: Int `compare` [0] :: [Int]  =  LT-x :: Int `compare` _:xs :: [Int]  =  LT-x :: Int `compare` [_] :: [Int]  =  LT-x :: Int `compare` _:_:_ :: [Int]  =  LT-x :: Int `compare` x:_ :: [Int]  =  LT-x :: Int `compare` 0:_ :: [Int]  =  LT-x :: Int `compare` id _:_ :: [Int]  =  LT-x :: Int `compare` tail _ :: [Int]  =  LT-x :: Int `compare` _ ++ _ :: [Int]  =  LT-x :: Int `compare` negate :: Int -> Int  =  LT-x :: Int `compare` abs :: Int -> Int  =  LT-x :: Int `compare` (_ +) :: Int -> Int  =  LT-x :: Int `compare` (*) :: Int -> Int -> Int  =  LT-x :: Int `compare` not :: Bool -> Bool  =  LT-x :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT-0 :: Int `compare` z :: Int  =  GT-0 :: Int `compare` -1 :: Int  =  LT-0 :: Int `compare` id y :: Int  =  LT-0 :: Int `compare` id 1 :: Int  =  LT-0 :: Int `compare` id (id x) :: Int  =  LT-0 :: Int `compare` id (id 0) :: Int  =  LT-0 :: Int `compare` id (id (id _)) :: Int  =  LT-0 :: Int `compare` id (negate _) :: Int  =  LT-0 :: Int `compare` id (abs _) :: Int  =  LT-0 :: Int `compare` id (_ + _) :: Int  =  LT-0 :: Int `compare` id (head _) :: Int  =  LT-0 :: Int `compare` id (ord _) :: Int  =  LT-0 :: Int `compare` negate x :: Int  =  LT-0 :: Int `compare` negate 0 :: Int  =  LT-0 :: Int `compare` negate (id _) :: Int  =  LT-0 :: Int `compare` abs x :: Int  =  LT-0 :: Int `compare` abs 0 :: Int  =  LT-0 :: Int `compare` abs (id _) :: Int  =  LT-0 :: Int `compare` _ + x :: Int  =  LT-0 :: Int `compare` _ + 0 :: Int  =  LT-0 :: Int `compare` _ + id _ :: Int  =  LT-0 :: Int `compare` x + _ :: Int  =  LT-0 :: Int `compare` 0 + _ :: Int  =  LT-0 :: Int `compare` id _ + _ :: Int  =  LT-0 :: Int `compare` _ * _ :: Int  =  LT-0 :: Int `compare` f _ :: Int  =  LT-0 :: Int `compare` head xs :: Int  =  LT-0 :: Int `compare` head [] :: Int  =  LT-0 :: Int `compare` head (_:_) :: Int  =  LT-0 :: Int `compare` ord c :: Int  =  LT-0 :: Int `compare` ord 'a' :: Int  =  LT-0 :: Int `compare` q :: Bool  =  GT-0 :: Int `compare` not p :: Bool  =  LT-0 :: Int `compare` not False :: Bool  =  LT-0 :: Int `compare` not True :: Bool  =  LT-0 :: Int `compare` not (not _) :: Bool  =  LT-0 :: Int `compare` _ || _ :: Bool  =  LT-0 :: Int `compare` d :: Char  =  GT-0 :: Int `compare` ' ' :: Char  =  GT-0 :: Int `compare` ys :: [Int]  =  GT-0 :: Int `compare` [0] :: [Int]  =  LT-0 :: Int `compare` _:xs :: [Int]  =  LT-0 :: Int `compare` [_] :: [Int]  =  LT-0 :: Int `compare` _:_:_ :: [Int]  =  LT-0 :: Int `compare` x:_ :: [Int]  =  LT-0 :: Int `compare` 0:_ :: [Int]  =  LT-0 :: Int `compare` id _:_ :: [Int]  =  LT-0 :: Int `compare` tail _ :: [Int]  =  LT-0 :: Int `compare` _ ++ _ :: [Int]  =  LT-0 :: Int `compare` negate :: Int -> Int  =  LT-0 :: Int `compare` abs :: Int -> Int  =  LT-0 :: Int `compare` (_ +) :: Int -> Int  =  LT-0 :: Int `compare` (*) :: Int -> Int -> Int  =  LT-0 :: Int `compare` not :: Bool -> Bool  =  LT-0 :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT-id _ :: Int `compare` z :: Int  =  GT-id _ :: Int `compare` -1 :: Int  =  GT-id _ :: Int `compare` id y :: Int  =  LT-id _ :: Int `compare` id 1 :: Int  =  LT-id _ :: Int `compare` id (id x) :: Int  =  LT-id _ :: Int `compare` id (id 0) :: Int  =  LT-id _ :: Int `compare` id (id (id _)) :: Int  =  LT-id _ :: Int `compare` id (negate _) :: Int  =  LT-id _ :: Int `compare` id (abs _) :: Int  =  LT-id _ :: Int `compare` id (_ + _) :: Int  =  LT-id _ :: Int `compare` id (head _) :: Int  =  LT-id _ :: Int `compare` id (ord _) :: Int  =  LT-id _ :: Int `compare` negate x :: Int  =  LT-id _ :: Int `compare` negate 0 :: Int  =  LT-id _ :: Int `compare` negate (id _) :: Int  =  LT-id _ :: Int `compare` abs x :: Int  =  LT-id _ :: Int `compare` abs 0 :: Int  =  LT-id _ :: Int `compare` abs (id _) :: Int  =  LT-id _ :: Int `compare` _ + x :: Int  =  LT-id _ :: Int `compare` _ + 0 :: Int  =  LT-id _ :: Int `compare` _ + id _ :: Int  =  LT-id _ :: Int `compare` x + _ :: Int  =  LT-id _ :: Int `compare` 0 + _ :: Int  =  LT-id _ :: Int `compare` id _ + _ :: Int  =  LT-id _ :: Int `compare` _ * _ :: Int  =  LT-id _ :: Int `compare` f _ :: Int  =  GT-id _ :: Int `compare` head xs :: Int  =  LT-id _ :: Int `compare` head [] :: Int  =  LT-id _ :: Int `compare` head (_:_) :: Int  =  LT-id _ :: Int `compare` ord c :: Int  =  GT-id _ :: Int `compare` ord 'a' :: Int  =  LT-id _ :: Int `compare` q :: Bool  =  GT-id _ :: Int `compare` not p :: Bool  =  GT-id _ :: Int `compare` not False :: Bool  =  LT-id _ :: Int `compare` not True :: Bool  =  LT-id _ :: Int `compare` not (not _) :: Bool  =  LT-id _ :: Int `compare` _ || _ :: Bool  =  LT-id _ :: Int `compare` d :: Char  =  GT-id _ :: Int `compare` ' ' :: Char  =  GT-id _ :: Int `compare` ys :: [Int]  =  GT-id _ :: Int `compare` [0] :: [Int]  =  GT-id _ :: Int `compare` _:xs :: [Int]  =  LT-id _ :: Int `compare` [_] :: [Int]  =  LT-id _ :: Int `compare` _:_:_ :: [Int]  =  LT-id _ :: Int `compare` x:_ :: [Int]  =  LT-id _ :: Int `compare` 0:_ :: [Int]  =  LT-id _ :: Int `compare` id _:_ :: [Int]  =  LT-id _ :: Int `compare` tail _ :: [Int]  =  LT-id _ :: Int `compare` _ ++ _ :: [Int]  =  LT-id _ :: Int `compare` negate :: Int -> Int  =  GT-id _ :: Int `compare` abs :: Int -> Int  =  GT-id _ :: Int `compare` (_ +) :: Int -> Int  =  LT-id _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT-id _ :: Int `compare` not :: Bool -> Bool  =  GT-id _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-_ :: Bool `compare` z :: Int  =  LT-_ :: Bool `compare` -1 :: Int  =  LT-_ :: Bool `compare` id y :: Int  =  LT-_ :: Bool `compare` id 1 :: Int  =  LT-_ :: Bool `compare` id (id x) :: Int  =  LT-_ :: Bool `compare` id (id 0) :: Int  =  LT-_ :: Bool `compare` id (id (id _)) :: Int  =  LT-_ :: Bool `compare` id (negate _) :: Int  =  LT-_ :: Bool `compare` id (abs _) :: Int  =  LT-_ :: Bool `compare` id (_ + _) :: Int  =  LT-_ :: Bool `compare` id (head _) :: Int  =  LT-_ :: Bool `compare` id (ord _) :: Int  =  LT-_ :: Bool `compare` negate x :: Int  =  LT-_ :: Bool `compare` negate 0 :: Int  =  LT-_ :: Bool `compare` negate (id _) :: Int  =  LT-_ :: Bool `compare` abs x :: Int  =  LT-_ :: Bool `compare` abs 0 :: Int  =  LT-_ :: Bool `compare` abs (id _) :: Int  =  LT-_ :: Bool `compare` _ + x :: Int  =  LT-_ :: Bool `compare` _ + 0 :: Int  =  LT-_ :: Bool `compare` _ + id _ :: Int  =  LT-_ :: Bool `compare` x + _ :: Int  =  LT-_ :: Bool `compare` 0 + _ :: Int  =  LT-_ :: Bool `compare` id _ + _ :: Int  =  LT-_ :: Bool `compare` _ * _ :: Int  =  LT-_ :: Bool `compare` f _ :: Int  =  LT-_ :: Bool `compare` head xs :: Int  =  LT-_ :: Bool `compare` head [] :: Int  =  LT-_ :: Bool `compare` head (_:_) :: Int  =  LT-_ :: Bool `compare` ord c :: Int  =  LT-_ :: Bool `compare` ord 'a' :: Int  =  LT-_ :: Bool `compare` q :: Bool  =  LT-_ :: Bool `compare` not p :: Bool  =  LT-_ :: Bool `compare` not False :: Bool  =  LT-_ :: Bool `compare` not True :: Bool  =  LT-_ :: Bool `compare` not (not _) :: Bool  =  LT-_ :: Bool `compare` _ || _ :: Bool  =  LT-_ :: Bool `compare` d :: Char  =  LT-_ :: Bool `compare` ' ' :: Char  =  LT-_ :: Bool `compare` ys :: [Int]  =  LT-_ :: Bool `compare` [0] :: [Int]  =  LT-_ :: Bool `compare` _:xs :: [Int]  =  LT-_ :: Bool `compare` [_] :: [Int]  =  LT-_ :: Bool `compare` _:_:_ :: [Int]  =  LT-_ :: Bool `compare` x:_ :: [Int]  =  LT-_ :: Bool `compare` 0:_ :: [Int]  =  LT-_ :: Bool `compare` id _:_ :: [Int]  =  LT-_ :: Bool `compare` tail _ :: [Int]  =  LT-_ :: Bool `compare` _ ++ _ :: [Int]  =  LT-_ :: Bool `compare` negate :: Int -> Int  =  LT-_ :: Bool `compare` abs :: Int -> Int  =  LT-_ :: Bool `compare` (_ +) :: Int -> Int  =  LT-_ :: Bool `compare` (*) :: Int -> Int -> Int  =  LT-_ :: Bool `compare` not :: Bool -> Bool  =  LT-_ :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  LT-_ :: Char `compare` z :: Int  =  LT-_ :: Char `compare` -1 :: Int  =  LT-_ :: Char `compare` id y :: Int  =  LT-_ :: Char `compare` id 1 :: Int  =  LT-_ :: Char `compare` id (id x) :: Int  =  LT-_ :: Char `compare` id (id 0) :: Int  =  LT-_ :: Char `compare` id (id (id _)) :: Int  =  LT-_ :: Char `compare` id (negate _) :: Int  =  LT-_ :: Char `compare` id (abs _) :: Int  =  LT-_ :: Char `compare` id (_ + _) :: Int  =  LT-_ :: Char `compare` id (head _) :: Int  =  LT-_ :: Char `compare` id (ord _) :: Int  =  LT-_ :: Char `compare` negate x :: Int  =  LT-_ :: Char `compare` negate 0 :: Int  =  LT-_ :: Char `compare` negate (id _) :: Int  =  LT-_ :: Char `compare` abs x :: Int  =  LT-_ :: Char `compare` abs 0 :: Int  =  LT-_ :: Char `compare` abs (id _) :: Int  =  LT-_ :: Char `compare` _ + x :: Int  =  LT-_ :: Char `compare` _ + 0 :: Int  =  LT-_ :: Char `compare` _ + id _ :: Int  =  LT-_ :: Char `compare` x + _ :: Int  =  LT-_ :: Char `compare` 0 + _ :: Int  =  LT-_ :: Char `compare` id _ + _ :: Int  =  LT-_ :: Char `compare` _ * _ :: Int  =  LT-_ :: Char `compare` f _ :: Int  =  LT-_ :: Char `compare` head xs :: Int  =  LT-_ :: Char `compare` head [] :: Int  =  LT-_ :: Char `compare` head (_:_) :: Int  =  LT-_ :: Char `compare` ord c :: Int  =  LT-_ :: Char `compare` ord 'a' :: Int  =  LT-_ :: Char `compare` q :: Bool  =  GT-_ :: Char `compare` not p :: Bool  =  LT-_ :: Char `compare` not False :: Bool  =  LT-_ :: Char `compare` not True :: Bool  =  LT-_ :: Char `compare` not (not _) :: Bool  =  LT-_ :: Char `compare` _ || _ :: Bool  =  LT-_ :: Char `compare` d :: Char  =  LT-_ :: Char `compare` ' ' :: Char  =  LT-_ :: Char `compare` ys :: [Int]  =  LT-_ :: Char `compare` [0] :: [Int]  =  LT-_ :: Char `compare` _:xs :: [Int]  =  LT-_ :: Char `compare` [_] :: [Int]  =  LT-_ :: Char `compare` _:_:_ :: [Int]  =  LT-_ :: Char `compare` x:_ :: [Int]  =  LT-_ :: Char `compare` 0:_ :: [Int]  =  LT-_ :: Char `compare` id _:_ :: [Int]  =  LT-_ :: Char `compare` tail _ :: [Int]  =  LT-_ :: Char `compare` _ ++ _ :: [Int]  =  LT-_ :: Char `compare` negate :: Int -> Int  =  LT-_ :: Char `compare` abs :: Int -> Int  =  LT-_ :: Char `compare` (_ +) :: Int -> Int  =  LT-_ :: Char `compare` (*) :: Int -> Int -> Int  =  LT-_ :: Char `compare` not :: Bool -> Bool  =  LT-_ :: Char `compare` (||) :: Bool -> Bool -> Bool  =  LT-_ :: [Int] `compare` z :: Int  =  GT-_ :: [Int] `compare` -1 :: Int  =  LT-_ :: [Int] `compare` id y :: Int  =  LT-_ :: [Int] `compare` id 1 :: Int  =  LT-_ :: [Int] `compare` id (id x) :: Int  =  LT-_ :: [Int] `compare` id (id 0) :: Int  =  LT-_ :: [Int] `compare` id (id (id _)) :: Int  =  LT-_ :: [Int] `compare` id (negate _) :: Int  =  LT-_ :: [Int] `compare` id (abs _) :: Int  =  LT-_ :: [Int] `compare` id (_ + _) :: Int  =  LT-_ :: [Int] `compare` id (head _) :: Int  =  LT-_ :: [Int] `compare` id (ord _) :: Int  =  LT-_ :: [Int] `compare` negate x :: Int  =  LT-_ :: [Int] `compare` negate 0 :: Int  =  LT-_ :: [Int] `compare` negate (id _) :: Int  =  LT-_ :: [Int] `compare` abs x :: Int  =  LT-_ :: [Int] `compare` abs 0 :: Int  =  LT-_ :: [Int] `compare` abs (id _) :: Int  =  LT-_ :: [Int] `compare` _ + x :: Int  =  LT-_ :: [Int] `compare` _ + 0 :: Int  =  LT-_ :: [Int] `compare` _ + id _ :: Int  =  LT-_ :: [Int] `compare` x + _ :: Int  =  LT-_ :: [Int] `compare` 0 + _ :: Int  =  LT-_ :: [Int] `compare` id _ + _ :: Int  =  LT-_ :: [Int] `compare` _ * _ :: Int  =  LT-_ :: [Int] `compare` f _ :: Int  =  LT-_ :: [Int] `compare` head xs :: Int  =  LT-_ :: [Int] `compare` head [] :: Int  =  LT-_ :: [Int] `compare` head (_:_) :: Int  =  LT-_ :: [Int] `compare` ord c :: Int  =  LT-_ :: [Int] `compare` ord 'a' :: Int  =  LT-_ :: [Int] `compare` q :: Bool  =  GT-_ :: [Int] `compare` not p :: Bool  =  LT-_ :: [Int] `compare` not False :: Bool  =  LT-_ :: [Int] `compare` not True :: Bool  =  LT-_ :: [Int] `compare` not (not _) :: Bool  =  LT-_ :: [Int] `compare` _ || _ :: Bool  =  LT-_ :: [Int] `compare` d :: Char  =  GT-_ :: [Int] `compare` ' ' :: Char  =  LT-_ :: [Int] `compare` ys :: [Int]  =  LT-_ :: [Int] `compare` [0] :: [Int]  =  LT-_ :: [Int] `compare` _:xs :: [Int]  =  LT-_ :: [Int] `compare` [_] :: [Int]  =  LT-_ :: [Int] `compare` _:_:_ :: [Int]  =  LT-_ :: [Int] `compare` x:_ :: [Int]  =  LT-_ :: [Int] `compare` 0:_ :: [Int]  =  LT-_ :: [Int] `compare` id _:_ :: [Int]  =  LT-_ :: [Int] `compare` tail _ :: [Int]  =  LT-_ :: [Int] `compare` _ ++ _ :: [Int]  =  LT-_ :: [Int] `compare` negate :: Int -> Int  =  LT-_ :: [Int] `compare` abs :: Int -> Int  =  LT-_ :: [Int] `compare` (_ +) :: Int -> Int  =  LT-_ :: [Int] `compare` (*) :: Int -> Int -> Int  =  LT-_ :: [Int] `compare` not :: Bool -> Bool  =  LT-_ :: [Int] `compare` (||) :: Bool -> Bool -> Bool  =  LT-y :: Int `compare` y :: Int  =  EQ-y :: Int `compare` 1 :: Int  =  LT-y :: Int `compare` id x :: Int  =  LT-y :: Int `compare` id 0 :: Int  =  LT-y :: Int `compare` id (id _) :: Int  =  LT-y :: Int `compare` negate _ :: Int  =  LT-y :: Int `compare` abs _ :: Int  =  LT-y :: Int `compare` _ + _ :: Int  =  LT-y :: Int `compare` head _ :: Int  =  LT-y :: Int `compare` ord _ :: Int  =  LT-y :: Int `compare` p :: Bool  =  GT-y :: Int `compare` False :: Bool  =  LT-y :: Int `compare` True :: Bool  =  LT-y :: Int `compare` not _ :: Bool  =  LT-y :: Int `compare` c :: Char  =  GT-y :: Int `compare` 'a' :: Char  =  LT-y :: Int `compare` xs :: [Int]  =  LT-y :: Int `compare` [] :: [Int]  =  LT-y :: Int `compare` _:_ :: [Int]  =  LT-y :: Int `compare` id :: Int -> Int  =  LT-y :: Int `compare` (+) :: Int -> Int -> Int  =  LT-1 :: Int `compare` y :: Int  =  GT-1 :: Int `compare` 1 :: Int  =  EQ-1 :: Int `compare` id x :: Int  =  LT-1 :: Int `compare` id 0 :: Int  =  LT-1 :: Int `compare` id (id _) :: Int  =  LT-1 :: Int `compare` negate _ :: Int  =  LT-1 :: Int `compare` abs _ :: Int  =  LT-1 :: Int `compare` _ + _ :: Int  =  LT-1 :: Int `compare` head _ :: Int  =  LT-1 :: Int `compare` ord _ :: Int  =  LT-1 :: Int `compare` p :: Bool  =  GT-1 :: Int `compare` False :: Bool  =  GT-1 :: Int `compare` True :: Bool  =  GT-1 :: Int `compare` not _ :: Bool  =  LT-1 :: Int `compare` c :: Char  =  GT-1 :: Int `compare` 'a' :: Char  =  GT-1 :: Int `compare` xs :: [Int]  =  GT-1 :: Int `compare` [] :: [Int]  =  LT-1 :: Int `compare` _:_ :: [Int]  =  LT-1 :: Int `compare` id :: Int -> Int  =  LT-1 :: Int `compare` (+) :: Int -> Int -> Int  =  LT-id x :: Int `compare` y :: Int  =  GT-id x :: Int `compare` 1 :: Int  =  GT-id x :: Int `compare` id x :: Int  =  EQ-id x :: Int `compare` id 0 :: Int  =  LT-id x :: Int `compare` id (id _) :: Int  =  LT-id x :: Int `compare` negate _ :: Int  =  LT-id x :: Int `compare` abs _ :: Int  =  LT-id x :: Int `compare` _ + _ :: Int  =  LT-id x :: Int `compare` head _ :: Int  =  LT-id x :: Int `compare` ord _ :: Int  =  GT-id x :: Int `compare` p :: Bool  =  GT-id x :: Int `compare` False :: Bool  =  GT-id x :: Int `compare` True :: Bool  =  GT-id x :: Int `compare` not _ :: Bool  =  GT-id x :: Int `compare` c :: Char  =  GT-id x :: Int `compare` 'a' :: Char  =  GT-id x :: Int `compare` xs :: [Int]  =  GT-id x :: Int `compare` [] :: [Int]  =  GT-id x :: Int `compare` _:_ :: [Int]  =  LT-id x :: Int `compare` id :: Int -> Int  =  GT-id x :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id 0 :: Int `compare` y :: Int  =  GT-id 0 :: Int `compare` 1 :: Int  =  GT-id 0 :: Int `compare` id x :: Int  =  GT-id 0 :: Int `compare` id 0 :: Int  =  EQ-id 0 :: Int `compare` id (id _) :: Int  =  LT-id 0 :: Int `compare` negate _ :: Int  =  GT-id 0 :: Int `compare` abs _ :: Int  =  GT-id 0 :: Int `compare` _ + _ :: Int  =  LT-id 0 :: Int `compare` head _ :: Int  =  GT-id 0 :: Int `compare` ord _ :: Int  =  GT-id 0 :: Int `compare` p :: Bool  =  GT-id 0 :: Int `compare` False :: Bool  =  GT-id 0 :: Int `compare` True :: Bool  =  GT-id 0 :: Int `compare` not _ :: Bool  =  GT-id 0 :: Int `compare` c :: Char  =  GT-id 0 :: Int `compare` 'a' :: Char  =  GT-id 0 :: Int `compare` xs :: [Int]  =  GT-id 0 :: Int `compare` [] :: [Int]  =  GT-id 0 :: Int `compare` _:_ :: [Int]  =  LT-id 0 :: Int `compare` id :: Int -> Int  =  GT-id 0 :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (id _) :: Int `compare` y :: Int  =  GT-id (id _) :: Int `compare` 1 :: Int  =  GT-id (id _) :: Int `compare` id x :: Int  =  GT-id (id _) :: Int `compare` id 0 :: Int  =  GT-id (id _) :: Int `compare` id (id _) :: Int  =  EQ-id (id _) :: Int `compare` negate _ :: Int  =  GT-id (id _) :: Int `compare` abs _ :: Int  =  GT-id (id _) :: Int `compare` _ + _ :: Int  =  GT-id (id _) :: Int `compare` head _ :: Int  =  GT-id (id _) :: Int `compare` ord _ :: Int  =  GT-id (id _) :: Int `compare` p :: Bool  =  GT-id (id _) :: Int `compare` False :: Bool  =  GT-id (id _) :: Int `compare` True :: Bool  =  GT-id (id _) :: Int `compare` not _ :: Bool  =  GT-id (id _) :: Int `compare` c :: Char  =  GT-id (id _) :: Int `compare` 'a' :: Char  =  GT-id (id _) :: Int `compare` xs :: [Int]  =  GT-id (id _) :: Int `compare` [] :: [Int]  =  GT-id (id _) :: Int `compare` _:_ :: [Int]  =  GT-id (id _) :: Int `compare` id :: Int -> Int  =  GT-id (id _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT-negate _ :: Int `compare` y :: Int  =  GT-negate _ :: Int `compare` 1 :: Int  =  GT-negate _ :: Int `compare` id x :: Int  =  GT-negate _ :: Int `compare` id 0 :: Int  =  LT-negate _ :: Int `compare` id (id _) :: Int  =  LT-negate _ :: Int `compare` negate _ :: Int  =  EQ-negate _ :: Int `compare` abs _ :: Int  =  GT-negate _ :: Int `compare` _ + _ :: Int  =  LT-negate _ :: Int `compare` head _ :: Int  =  LT-negate _ :: Int `compare` ord _ :: Int  =  GT-negate _ :: Int `compare` p :: Bool  =  GT-negate _ :: Int `compare` False :: Bool  =  GT-negate _ :: Int `compare` True :: Bool  =  GT-negate _ :: Int `compare` not _ :: Bool  =  GT-negate _ :: Int `compare` c :: Char  =  GT-negate _ :: Int `compare` 'a' :: Char  =  GT-negate _ :: Int `compare` xs :: [Int]  =  GT-negate _ :: Int `compare` [] :: [Int]  =  GT-negate _ :: Int `compare` _:_ :: [Int]  =  LT-negate _ :: Int `compare` id :: Int -> Int  =  GT-negate _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT-abs _ :: Int `compare` y :: Int  =  GT-abs _ :: Int `compare` 1 :: Int  =  GT-abs _ :: Int `compare` id x :: Int  =  GT-abs _ :: Int `compare` id 0 :: Int  =  LT-abs _ :: Int `compare` id (id _) :: Int  =  LT-abs _ :: Int `compare` negate _ :: Int  =  LT-abs _ :: Int `compare` abs _ :: Int  =  EQ-abs _ :: Int `compare` _ + _ :: Int  =  LT-abs _ :: Int `compare` head _ :: Int  =  LT-abs _ :: Int `compare` ord _ :: Int  =  GT-abs _ :: Int `compare` p :: Bool  =  GT-abs _ :: Int `compare` False :: Bool  =  GT-abs _ :: Int `compare` True :: Bool  =  GT-abs _ :: Int `compare` not _ :: Bool  =  GT-abs _ :: Int `compare` c :: Char  =  GT-abs _ :: Int `compare` 'a' :: Char  =  GT-abs _ :: Int `compare` xs :: [Int]  =  GT-abs _ :: Int `compare` [] :: [Int]  =  GT-abs _ :: Int `compare` _:_ :: [Int]  =  LT-abs _ :: Int `compare` id :: Int -> Int  =  GT-abs _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT-_ + _ :: Int `compare` y :: Int  =  GT-_ + _ :: Int `compare` 1 :: Int  =  GT-_ + _ :: Int `compare` id x :: Int  =  GT-_ + _ :: Int `compare` id 0 :: Int  =  GT-_ + _ :: Int `compare` id (id _) :: Int  =  LT-_ + _ :: Int `compare` negate _ :: Int  =  GT-_ + _ :: Int `compare` abs _ :: Int  =  GT-_ + _ :: Int `compare` _ + _ :: Int  =  EQ-_ + _ :: Int `compare` head _ :: Int  =  GT-_ + _ :: Int `compare` ord _ :: Int  =  GT-_ + _ :: Int `compare` p :: Bool  =  GT-_ + _ :: Int `compare` False :: Bool  =  GT-_ + _ :: Int `compare` True :: Bool  =  GT-_ + _ :: Int `compare` not _ :: Bool  =  GT-_ + _ :: Int `compare` c :: Char  =  GT-_ + _ :: Int `compare` 'a' :: Char  =  GT-_ + _ :: Int `compare` xs :: [Int]  =  GT-_ + _ :: Int `compare` [] :: [Int]  =  GT-_ + _ :: Int `compare` _:_ :: [Int]  =  GT-_ + _ :: Int `compare` id :: Int -> Int  =  GT-_ + _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT-head _ :: Int `compare` y :: Int  =  GT-head _ :: Int `compare` 1 :: Int  =  GT-head _ :: Int `compare` id x :: Int  =  GT-head _ :: Int `compare` id 0 :: Int  =  LT-head _ :: Int `compare` id (id _) :: Int  =  LT-head _ :: Int `compare` negate _ :: Int  =  GT-head _ :: Int `compare` abs _ :: Int  =  GT-head _ :: Int `compare` _ + _ :: Int  =  LT-head _ :: Int `compare` head _ :: Int  =  EQ-head _ :: Int `compare` ord _ :: Int  =  GT-head _ :: Int `compare` p :: Bool  =  GT-head _ :: Int `compare` False :: Bool  =  GT-head _ :: Int `compare` True :: Bool  =  GT-head _ :: Int `compare` not _ :: Bool  =  GT-head _ :: Int `compare` c :: Char  =  GT-head _ :: Int `compare` 'a' :: Char  =  GT-head _ :: Int `compare` xs :: [Int]  =  GT-head _ :: Int `compare` [] :: [Int]  =  GT-head _ :: Int `compare` _:_ :: [Int]  =  LT-head _ :: Int `compare` id :: Int -> Int  =  GT-head _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT-ord _ :: Int `compare` y :: Int  =  GT-ord _ :: Int `compare` 1 :: Int  =  GT-ord _ :: Int `compare` id x :: Int  =  LT-ord _ :: Int `compare` id 0 :: Int  =  LT-ord _ :: Int `compare` id (id _) :: Int  =  LT-ord _ :: Int `compare` negate _ :: Int  =  LT-ord _ :: Int `compare` abs _ :: Int  =  LT-ord _ :: Int `compare` _ + _ :: Int  =  LT-ord _ :: Int `compare` head _ :: Int  =  LT-ord _ :: Int `compare` ord _ :: Int  =  EQ-ord _ :: Int `compare` p :: Bool  =  GT-ord _ :: Int `compare` False :: Bool  =  GT-ord _ :: Int `compare` True :: Bool  =  GT-ord _ :: Int `compare` not _ :: Bool  =  GT-ord _ :: Int `compare` c :: Char  =  GT-ord _ :: Int `compare` 'a' :: Char  =  GT-ord _ :: Int `compare` xs :: [Int]  =  GT-ord _ :: Int `compare` [] :: [Int]  =  GT-ord _ :: Int `compare` _:_ :: [Int]  =  LT-ord _ :: Int `compare` id :: Int -> Int  =  GT-ord _ :: Int `compare` (+) :: Int -> Int -> Int  =  GT-p :: Bool `compare` y :: Int  =  LT-p :: Bool `compare` 1 :: Int  =  LT-p :: Bool `compare` id x :: Int  =  LT-p :: Bool `compare` id 0 :: Int  =  LT-p :: Bool `compare` id (id _) :: Int  =  LT-p :: Bool `compare` negate _ :: Int  =  LT-p :: Bool `compare` abs _ :: Int  =  LT-p :: Bool `compare` _ + _ :: Int  =  LT-p :: Bool `compare` head _ :: Int  =  LT-p :: Bool `compare` ord _ :: Int  =  LT-p :: Bool `compare` p :: Bool  =  EQ-p :: Bool `compare` False :: Bool  =  LT-p :: Bool `compare` True :: Bool  =  LT-p :: Bool `compare` not _ :: Bool  =  LT-p :: Bool `compare` c :: Char  =  LT-p :: Bool `compare` 'a' :: Char  =  LT-p :: Bool `compare` xs :: [Int]  =  LT-p :: Bool `compare` [] :: [Int]  =  LT-p :: Bool `compare` _:_ :: [Int]  =  LT-p :: Bool `compare` id :: Int -> Int  =  LT-p :: Bool `compare` (+) :: Int -> Int -> Int  =  LT-False :: Bool `compare` y :: Int  =  GT-False :: Bool `compare` 1 :: Int  =  LT-False :: Bool `compare` id x :: Int  =  LT-False :: Bool `compare` id 0 :: Int  =  LT-False :: Bool `compare` id (id _) :: Int  =  LT-False :: Bool `compare` negate _ :: Int  =  LT-False :: Bool `compare` abs _ :: Int  =  LT-False :: Bool `compare` _ + _ :: Int  =  LT-False :: Bool `compare` head _ :: Int  =  LT-False :: Bool `compare` ord _ :: Int  =  LT-False :: Bool `compare` p :: Bool  =  GT-False :: Bool `compare` False :: Bool  =  EQ-False :: Bool `compare` True :: Bool  =  LT-False :: Bool `compare` not _ :: Bool  =  LT-False :: Bool `compare` c :: Char  =  GT-False :: Bool `compare` 'a' :: Char  =  LT-False :: Bool `compare` xs :: [Int]  =  GT-False :: Bool `compare` [] :: [Int]  =  LT-False :: Bool `compare` _:_ :: [Int]  =  LT-False :: Bool `compare` id :: Int -> Int  =  LT-False :: Bool `compare` (+) :: Int -> Int -> Int  =  LT-True :: Bool `compare` y :: Int  =  GT-True :: Bool `compare` 1 :: Int  =  LT-True :: Bool `compare` id x :: Int  =  LT-True :: Bool `compare` id 0 :: Int  =  LT-True :: Bool `compare` id (id _) :: Int  =  LT-True :: Bool `compare` negate _ :: Int  =  LT-True :: Bool `compare` abs _ :: Int  =  LT-True :: Bool `compare` _ + _ :: Int  =  LT-True :: Bool `compare` head _ :: Int  =  LT-True :: Bool `compare` ord _ :: Int  =  LT-True :: Bool `compare` p :: Bool  =  GT-True :: Bool `compare` False :: Bool  =  GT-True :: Bool `compare` True :: Bool  =  EQ-True :: Bool `compare` not _ :: Bool  =  LT-True :: Bool `compare` c :: Char  =  GT-True :: Bool `compare` 'a' :: Char  =  LT-True :: Bool `compare` xs :: [Int]  =  GT-True :: Bool `compare` [] :: [Int]  =  LT-True :: Bool `compare` _:_ :: [Int]  =  LT-True :: Bool `compare` id :: Int -> Int  =  LT-True :: Bool `compare` (+) :: Int -> Int -> Int  =  LT-not _ :: Bool `compare` y :: Int  =  GT-not _ :: Bool `compare` 1 :: Int  =  GT-not _ :: Bool `compare` id x :: Int  =  LT-not _ :: Bool `compare` id 0 :: Int  =  LT-not _ :: Bool `compare` id (id _) :: Int  =  LT-not _ :: Bool `compare` negate _ :: Int  =  LT-not _ :: Bool `compare` abs _ :: Int  =  LT-not _ :: Bool `compare` _ + _ :: Int  =  LT-not _ :: Bool `compare` head _ :: Int  =  LT-not _ :: Bool `compare` ord _ :: Int  =  LT-not _ :: Bool `compare` p :: Bool  =  GT-not _ :: Bool `compare` False :: Bool  =  GT-not _ :: Bool `compare` True :: Bool  =  GT-not _ :: Bool `compare` not _ :: Bool  =  EQ-not _ :: Bool `compare` c :: Char  =  GT-not _ :: Bool `compare` 'a' :: Char  =  GT-not _ :: Bool `compare` xs :: [Int]  =  GT-not _ :: Bool `compare` [] :: [Int]  =  GT-not _ :: Bool `compare` _:_ :: [Int]  =  LT-not _ :: Bool `compare` id :: Int -> Int  =  GT-not _ :: Bool `compare` (+) :: Int -> Int -> Int  =  GT-c :: Char `compare` y :: Int  =  LT-c :: Char `compare` 1 :: Int  =  LT-c :: Char `compare` id x :: Int  =  LT-c :: Char `compare` id 0 :: Int  =  LT-c :: Char `compare` id (id _) :: Int  =  LT-c :: Char `compare` negate _ :: Int  =  LT-c :: Char `compare` abs _ :: Int  =  LT-c :: Char `compare` _ + _ :: Int  =  LT-c :: Char `compare` head _ :: Int  =  LT-c :: Char `compare` ord _ :: Int  =  LT-c :: Char `compare` p :: Bool  =  GT-c :: Char `compare` False :: Bool  =  LT-c :: Char `compare` True :: Bool  =  LT-c :: Char `compare` not _ :: Bool  =  LT-c :: Char `compare` c :: Char  =  EQ-c :: Char `compare` 'a' :: Char  =  LT-c :: Char `compare` xs :: [Int]  =  LT-c :: Char `compare` [] :: [Int]  =  LT-c :: Char `compare` _:_ :: [Int]  =  LT-c :: Char `compare` id :: Int -> Int  =  LT-c :: Char `compare` (+) :: Int -> Int -> Int  =  LT-'a' :: Char `compare` y :: Int  =  GT-'a' :: Char `compare` 1 :: Int  =  LT-'a' :: Char `compare` id x :: Int  =  LT-'a' :: Char `compare` id 0 :: Int  =  LT-'a' :: Char `compare` id (id _) :: Int  =  LT-'a' :: Char `compare` negate _ :: Int  =  LT-'a' :: Char `compare` abs _ :: Int  =  LT-'a' :: Char `compare` _ + _ :: Int  =  LT-'a' :: Char `compare` head _ :: Int  =  LT-'a' :: Char `compare` ord _ :: Int  =  LT-'a' :: Char `compare` p :: Bool  =  GT-'a' :: Char `compare` False :: Bool  =  GT-'a' :: Char `compare` True :: Bool  =  GT-'a' :: Char `compare` not _ :: Bool  =  LT-'a' :: Char `compare` c :: Char  =  GT-'a' :: Char `compare` 'a' :: Char  =  EQ-'a' :: Char `compare` xs :: [Int]  =  GT-'a' :: Char `compare` [] :: [Int]  =  LT-'a' :: Char `compare` _:_ :: [Int]  =  LT-'a' :: Char `compare` id :: Int -> Int  =  LT-'a' :: Char `compare` (+) :: Int -> Int -> Int  =  LT-xs :: [Int] `compare` y :: Int  =  GT-xs :: [Int] `compare` 1 :: Int  =  LT-xs :: [Int] `compare` id x :: Int  =  LT-xs :: [Int] `compare` id 0 :: Int  =  LT-xs :: [Int] `compare` id (id _) :: Int  =  LT-xs :: [Int] `compare` negate _ :: Int  =  LT-xs :: [Int] `compare` abs _ :: Int  =  LT-xs :: [Int] `compare` _ + _ :: Int  =  LT-xs :: [Int] `compare` head _ :: Int  =  LT-xs :: [Int] `compare` ord _ :: Int  =  LT-xs :: [Int] `compare` p :: Bool  =  GT-xs :: [Int] `compare` False :: Bool  =  LT-xs :: [Int] `compare` True :: Bool  =  LT-xs :: [Int] `compare` not _ :: Bool  =  LT-xs :: [Int] `compare` c :: Char  =  GT-xs :: [Int] `compare` 'a' :: Char  =  LT-xs :: [Int] `compare` xs :: [Int]  =  EQ-xs :: [Int] `compare` [] :: [Int]  =  LT-xs :: [Int] `compare` _:_ :: [Int]  =  LT-xs :: [Int] `compare` id :: Int -> Int  =  LT-xs :: [Int] `compare` (+) :: Int -> Int -> Int  =  LT-[] :: [Int] `compare` y :: Int  =  GT-[] :: [Int] `compare` 1 :: Int  =  GT-[] :: [Int] `compare` id x :: Int  =  LT-[] :: [Int] `compare` id 0 :: Int  =  LT-[] :: [Int] `compare` id (id _) :: Int  =  LT-[] :: [Int] `compare` negate _ :: Int  =  LT-[] :: [Int] `compare` abs _ :: Int  =  LT-[] :: [Int] `compare` _ + _ :: Int  =  LT-[] :: [Int] `compare` head _ :: Int  =  LT-[] :: [Int] `compare` ord _ :: Int  =  LT-[] :: [Int] `compare` p :: Bool  =  GT-[] :: [Int] `compare` False :: Bool  =  GT-[] :: [Int] `compare` True :: Bool  =  GT-[] :: [Int] `compare` not _ :: Bool  =  LT-[] :: [Int] `compare` c :: Char  =  GT-[] :: [Int] `compare` 'a' :: Char  =  GT-[] :: [Int] `compare` xs :: [Int]  =  GT-[] :: [Int] `compare` [] :: [Int]  =  EQ-[] :: [Int] `compare` _:_ :: [Int]  =  LT-[] :: [Int] `compare` id :: Int -> Int  =  LT-[] :: [Int] `compare` (+) :: Int -> Int -> Int  =  LT-_:_ :: [Int] `compare` y :: Int  =  GT-_:_ :: [Int] `compare` 1 :: Int  =  GT-_:_ :: [Int] `compare` id x :: Int  =  GT-_:_ :: [Int] `compare` id 0 :: Int  =  GT-_:_ :: [Int] `compare` id (id _) :: Int  =  LT-_:_ :: [Int] `compare` negate _ :: Int  =  GT-_:_ :: [Int] `compare` abs _ :: Int  =  GT-_:_ :: [Int] `compare` _ + _ :: Int  =  LT-_:_ :: [Int] `compare` head _ :: Int  =  GT-_:_ :: [Int] `compare` ord _ :: Int  =  GT-_:_ :: [Int] `compare` p :: Bool  =  GT-_:_ :: [Int] `compare` False :: Bool  =  GT-_:_ :: [Int] `compare` True :: Bool  =  GT-_:_ :: [Int] `compare` not _ :: Bool  =  GT-_:_ :: [Int] `compare` c :: Char  =  GT-_:_ :: [Int] `compare` 'a' :: Char  =  GT-_:_ :: [Int] `compare` xs :: [Int]  =  GT-_:_ :: [Int] `compare` [] :: [Int]  =  GT-_:_ :: [Int] `compare` _:_ :: [Int]  =  EQ-_:_ :: [Int] `compare` id :: Int -> Int  =  GT-_:_ :: [Int] `compare` (+) :: Int -> Int -> Int  =  GT-id :: Int -> Int `compare` y :: Int  =  GT-id :: Int -> Int `compare` 1 :: Int  =  GT-id :: Int -> Int `compare` id x :: Int  =  LT-id :: Int -> Int `compare` id 0 :: Int  =  LT-id :: Int -> Int `compare` id (id _) :: Int  =  LT-id :: Int -> Int `compare` negate _ :: Int  =  LT-id :: Int -> Int `compare` abs _ :: Int  =  LT-id :: Int -> Int `compare` _ + _ :: Int  =  LT-id :: Int -> Int `compare` head _ :: Int  =  LT-id :: Int -> Int `compare` ord _ :: Int  =  LT-id :: Int -> Int `compare` p :: Bool  =  GT-id :: Int -> Int `compare` False :: Bool  =  GT-id :: Int -> Int `compare` True :: Bool  =  GT-id :: Int -> Int `compare` not _ :: Bool  =  LT-id :: Int -> Int `compare` c :: Char  =  GT-id :: Int -> Int `compare` 'a' :: Char  =  GT-id :: Int -> Int `compare` xs :: [Int]  =  GT-id :: Int -> Int `compare` [] :: [Int]  =  GT-id :: Int -> Int `compare` _:_ :: [Int]  =  LT-id :: Int -> Int `compare` id :: Int -> Int  =  EQ-id :: Int -> Int `compare` (+) :: Int -> Int -> Int  =  LT-(+) :: Int -> Int -> Int `compare` y :: Int  =  GT-(+) :: Int -> Int -> Int `compare` 1 :: Int  =  GT-(+) :: Int -> Int -> Int `compare` id x :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id 0 :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (id _) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` negate _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` abs _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` _ + _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` head _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` ord _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` p :: Bool  =  GT-(+) :: Int -> Int -> Int `compare` False :: Bool  =  GT-(+) :: Int -> Int -> Int `compare` True :: Bool  =  GT-(+) :: Int -> Int -> Int `compare` not _ :: Bool  =  LT-(+) :: Int -> Int -> Int `compare` c :: Char  =  GT-(+) :: Int -> Int -> Int `compare` 'a' :: Char  =  GT-(+) :: Int -> Int -> Int `compare` xs :: [Int]  =  GT-(+) :: Int -> Int -> Int `compare` [] :: [Int]  =  GT-(+) :: Int -> Int -> Int `compare` _:_ :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` id :: Int -> Int  =  GT-(+) :: Int -> Int -> Int `compare` (+) :: Int -> Int -> Int  =  EQ-z :: Int `compare` x :: Int  =  GT-z :: Int `compare` 0 :: Int  =  LT-z :: Int `compare` id _ :: Int  =  LT-z :: Int `compare` _ :: Bool  =  GT-z :: Int `compare` _ :: Char  =  GT-z :: Int `compare` _ :: [Int]  =  LT--1 :: Int `compare` x :: Int  =  GT--1 :: Int `compare` 0 :: Int  =  GT--1 :: Int `compare` id _ :: Int  =  LT--1 :: Int `compare` _ :: Bool  =  GT--1 :: Int `compare` _ :: Char  =  GT--1 :: Int `compare` _ :: [Int]  =  GT-id y :: Int `compare` x :: Int  =  GT-id y :: Int `compare` 0 :: Int  =  GT-id y :: Int `compare` id _ :: Int  =  GT-id y :: Int `compare` _ :: Bool  =  GT-id y :: Int `compare` _ :: Char  =  GT-id y :: Int `compare` _ :: [Int]  =  GT-id 1 :: Int `compare` x :: Int  =  GT-id 1 :: Int `compare` 0 :: Int  =  GT-id 1 :: Int `compare` id _ :: Int  =  GT-id 1 :: Int `compare` _ :: Bool  =  GT-id 1 :: Int `compare` _ :: Char  =  GT-id 1 :: Int `compare` _ :: [Int]  =  GT-id (id x) :: Int `compare` x :: Int  =  GT-id (id x) :: Int `compare` 0 :: Int  =  GT-id (id x) :: Int `compare` id _ :: Int  =  GT-id (id x) :: Int `compare` _ :: Bool  =  GT-id (id x) :: Int `compare` _ :: Char  =  GT-id (id x) :: Int `compare` _ :: [Int]  =  GT-id (id 0) :: Int `compare` x :: Int  =  GT-id (id 0) :: Int `compare` 0 :: Int  =  GT-id (id 0) :: Int `compare` id _ :: Int  =  GT-id (id 0) :: Int `compare` _ :: Bool  =  GT-id (id 0) :: Int `compare` _ :: Char  =  GT-id (id 0) :: Int `compare` _ :: [Int]  =  GT-id (id (id _)) :: Int `compare` x :: Int  =  GT-id (id (id _)) :: Int `compare` 0 :: Int  =  GT-id (id (id _)) :: Int `compare` id _ :: Int  =  GT-id (id (id _)) :: Int `compare` _ :: Bool  =  GT-id (id (id _)) :: Int `compare` _ :: Char  =  GT-id (id (id _)) :: Int `compare` _ :: [Int]  =  GT-id (negate _) :: Int `compare` x :: Int  =  GT-id (negate _) :: Int `compare` 0 :: Int  =  GT-id (negate _) :: Int `compare` id _ :: Int  =  GT-id (negate _) :: Int `compare` _ :: Bool  =  GT-id (negate _) :: Int `compare` _ :: Char  =  GT-id (negate _) :: Int `compare` _ :: [Int]  =  GT-id (abs _) :: Int `compare` x :: Int  =  GT-id (abs _) :: Int `compare` 0 :: Int  =  GT-id (abs _) :: Int `compare` id _ :: Int  =  GT-id (abs _) :: Int `compare` _ :: Bool  =  GT-id (abs _) :: Int `compare` _ :: Char  =  GT-id (abs _) :: Int `compare` _ :: [Int]  =  GT-id (_ + _) :: Int `compare` x :: Int  =  GT-id (_ + _) :: Int `compare` 0 :: Int  =  GT-id (_ + _) :: Int `compare` id _ :: Int  =  GT-id (_ + _) :: Int `compare` _ :: Bool  =  GT-id (_ + _) :: Int `compare` _ :: Char  =  GT-id (_ + _) :: Int `compare` _ :: [Int]  =  GT-id (head _) :: Int `compare` x :: Int  =  GT-id (head _) :: Int `compare` 0 :: Int  =  GT-id (head _) :: Int `compare` id _ :: Int  =  GT-id (head _) :: Int `compare` _ :: Bool  =  GT-id (head _) :: Int `compare` _ :: Char  =  GT-id (head _) :: Int `compare` _ :: [Int]  =  GT-id (ord _) :: Int `compare` x :: Int  =  GT-id (ord _) :: Int `compare` 0 :: Int  =  GT-id (ord _) :: Int `compare` id _ :: Int  =  GT-id (ord _) :: Int `compare` _ :: Bool  =  GT-id (ord _) :: Int `compare` _ :: Char  =  GT-id (ord _) :: Int `compare` _ :: [Int]  =  GT-negate x :: Int `compare` x :: Int  =  GT-negate x :: Int `compare` 0 :: Int  =  GT-negate x :: Int `compare` id _ :: Int  =  GT-negate x :: Int `compare` _ :: Bool  =  GT-negate x :: Int `compare` _ :: Char  =  GT-negate x :: Int `compare` _ :: [Int]  =  GT-negate 0 :: Int `compare` x :: Int  =  GT-negate 0 :: Int `compare` 0 :: Int  =  GT-negate 0 :: Int `compare` id _ :: Int  =  GT-negate 0 :: Int `compare` _ :: Bool  =  GT-negate 0 :: Int `compare` _ :: Char  =  GT-negate 0 :: Int `compare` _ :: [Int]  =  GT-negate (id _) :: Int `compare` x :: Int  =  GT-negate (id _) :: Int `compare` 0 :: Int  =  GT-negate (id _) :: Int `compare` id _ :: Int  =  GT-negate (id _) :: Int `compare` _ :: Bool  =  GT-negate (id _) :: Int `compare` _ :: Char  =  GT-negate (id _) :: Int `compare` _ :: [Int]  =  GT-abs x :: Int `compare` x :: Int  =  GT-abs x :: Int `compare` 0 :: Int  =  GT-abs x :: Int `compare` id _ :: Int  =  GT-abs x :: Int `compare` _ :: Bool  =  GT-abs x :: Int `compare` _ :: Char  =  GT-abs x :: Int `compare` _ :: [Int]  =  GT-abs 0 :: Int `compare` x :: Int  =  GT-abs 0 :: Int `compare` 0 :: Int  =  GT-abs 0 :: Int `compare` id _ :: Int  =  GT-abs 0 :: Int `compare` _ :: Bool  =  GT-abs 0 :: Int `compare` _ :: Char  =  GT-abs 0 :: Int `compare` _ :: [Int]  =  GT-abs (id _) :: Int `compare` x :: Int  =  GT-abs (id _) :: Int `compare` 0 :: Int  =  GT-abs (id _) :: Int `compare` id _ :: Int  =  GT-abs (id _) :: Int `compare` _ :: Bool  =  GT-abs (id _) :: Int `compare` _ :: Char  =  GT-abs (id _) :: Int `compare` _ :: [Int]  =  GT-_ + x :: Int `compare` x :: Int  =  GT-_ + x :: Int `compare` 0 :: Int  =  GT-_ + x :: Int `compare` id _ :: Int  =  GT-_ + x :: Int `compare` _ :: Bool  =  GT-_ + x :: Int `compare` _ :: Char  =  GT-_ + x :: Int `compare` _ :: [Int]  =  GT-_ + 0 :: Int `compare` x :: Int  =  GT-_ + 0 :: Int `compare` 0 :: Int  =  GT-_ + 0 :: Int `compare` id _ :: Int  =  GT-_ + 0 :: Int `compare` _ :: Bool  =  GT-_ + 0 :: Int `compare` _ :: Char  =  GT-_ + 0 :: Int `compare` _ :: [Int]  =  GT-_ + id _ :: Int `compare` x :: Int  =  GT-_ + id _ :: Int `compare` 0 :: Int  =  GT-_ + id _ :: Int `compare` id _ :: Int  =  GT-_ + id _ :: Int `compare` _ :: Bool  =  GT-_ + id _ :: Int `compare` _ :: Char  =  GT-_ + id _ :: Int `compare` _ :: [Int]  =  GT-x + _ :: Int `compare` x :: Int  =  GT-x + _ :: Int `compare` 0 :: Int  =  GT-x + _ :: Int `compare` id _ :: Int  =  GT-x + _ :: Int `compare` _ :: Bool  =  GT-x + _ :: Int `compare` _ :: Char  =  GT-x + _ :: Int `compare` _ :: [Int]  =  GT-0 + _ :: Int `compare` x :: Int  =  GT-0 + _ :: Int `compare` 0 :: Int  =  GT-0 + _ :: Int `compare` id _ :: Int  =  GT-0 + _ :: Int `compare` _ :: Bool  =  GT-0 + _ :: Int `compare` _ :: Char  =  GT-0 + _ :: Int `compare` _ :: [Int]  =  GT-id _ + _ :: Int `compare` x :: Int  =  GT-id _ + _ :: Int `compare` 0 :: Int  =  GT-id _ + _ :: Int `compare` id _ :: Int  =  GT-id _ + _ :: Int `compare` _ :: Bool  =  GT-id _ + _ :: Int `compare` _ :: Char  =  GT-id _ + _ :: Int `compare` _ :: [Int]  =  GT-_ * _ :: Int `compare` x :: Int  =  GT-_ * _ :: Int `compare` 0 :: Int  =  GT-_ * _ :: Int `compare` id _ :: Int  =  GT-_ * _ :: Int `compare` _ :: Bool  =  GT-_ * _ :: Int `compare` _ :: Char  =  GT-_ * _ :: Int `compare` _ :: [Int]  =  GT-f _ :: Int `compare` x :: Int  =  GT-f _ :: Int `compare` 0 :: Int  =  GT-f _ :: Int `compare` id _ :: Int  =  LT-f _ :: Int `compare` _ :: Bool  =  GT-f _ :: Int `compare` _ :: Char  =  GT-f _ :: Int `compare` _ :: [Int]  =  GT-head xs :: Int `compare` x :: Int  =  GT-head xs :: Int `compare` 0 :: Int  =  GT-head xs :: Int `compare` id _ :: Int  =  GT-head xs :: Int `compare` _ :: Bool  =  GT-head xs :: Int `compare` _ :: Char  =  GT-head xs :: Int `compare` _ :: [Int]  =  GT-head [] :: Int `compare` x :: Int  =  GT-head [] :: Int `compare` 0 :: Int  =  GT-head [] :: Int `compare` id _ :: Int  =  GT-head [] :: Int `compare` _ :: Bool  =  GT-head [] :: Int `compare` _ :: Char  =  GT-head [] :: Int `compare` _ :: [Int]  =  GT-head (_:_) :: Int `compare` x :: Int  =  GT-head (_:_) :: Int `compare` 0 :: Int  =  GT-head (_:_) :: Int `compare` id _ :: Int  =  GT-head (_:_) :: Int `compare` _ :: Bool  =  GT-head (_:_) :: Int `compare` _ :: Char  =  GT-head (_:_) :: Int `compare` _ :: [Int]  =  GT-ord c :: Int `compare` x :: Int  =  GT-ord c :: Int `compare` 0 :: Int  =  GT-ord c :: Int `compare` id _ :: Int  =  LT-ord c :: Int `compare` _ :: Bool  =  GT-ord c :: Int `compare` _ :: Char  =  GT-ord c :: Int `compare` _ :: [Int]  =  GT-ord 'a' :: Int `compare` x :: Int  =  GT-ord 'a' :: Int `compare` 0 :: Int  =  GT-ord 'a' :: Int `compare` id _ :: Int  =  GT-ord 'a' :: Int `compare` _ :: Bool  =  GT-ord 'a' :: Int `compare` _ :: Char  =  GT-ord 'a' :: Int `compare` _ :: [Int]  =  GT-q :: Bool `compare` x :: Int  =  LT-q :: Bool `compare` 0 :: Int  =  LT-q :: Bool `compare` id _ :: Int  =  LT-q :: Bool `compare` _ :: Bool  =  GT-q :: Bool `compare` _ :: Char  =  LT-q :: Bool `compare` _ :: [Int]  =  LT-not p :: Bool `compare` x :: Int  =  GT-not p :: Bool `compare` 0 :: Int  =  GT-not p :: Bool `compare` id _ :: Int  =  LT-not p :: Bool `compare` _ :: Bool  =  GT-not p :: Bool `compare` _ :: Char  =  GT-not p :: Bool `compare` _ :: [Int]  =  GT-not False :: Bool `compare` x :: Int  =  GT-not False :: Bool `compare` 0 :: Int  =  GT-not False :: Bool `compare` id _ :: Int  =  GT-not False :: Bool `compare` _ :: Bool  =  GT-not False :: Bool `compare` _ :: Char  =  GT-not False :: Bool `compare` _ :: [Int]  =  GT-not True :: Bool `compare` x :: Int  =  GT-not True :: Bool `compare` 0 :: Int  =  GT-not True :: Bool `compare` id _ :: Int  =  GT-not True :: Bool `compare` _ :: Bool  =  GT-not True :: Bool `compare` _ :: Char  =  GT-not True :: Bool `compare` _ :: [Int]  =  GT-not (not _) :: Bool `compare` x :: Int  =  GT-not (not _) :: Bool `compare` 0 :: Int  =  GT-not (not _) :: Bool `compare` id _ :: Int  =  GT-not (not _) :: Bool `compare` _ :: Bool  =  GT-not (not _) :: Bool `compare` _ :: Char  =  GT-not (not _) :: Bool `compare` _ :: [Int]  =  GT-_ || _ :: Bool `compare` x :: Int  =  GT-_ || _ :: Bool `compare` 0 :: Int  =  GT-_ || _ :: Bool `compare` id _ :: Int  =  GT-_ || _ :: Bool `compare` _ :: Bool  =  GT-_ || _ :: Bool `compare` _ :: Char  =  GT-_ || _ :: Bool `compare` _ :: [Int]  =  GT-d :: Char `compare` x :: Int  =  LT-d :: Char `compare` 0 :: Int  =  LT-d :: Char `compare` id _ :: Int  =  LT-d :: Char `compare` _ :: Bool  =  GT-d :: Char `compare` _ :: Char  =  GT-d :: Char `compare` _ :: [Int]  =  LT-' ' :: Char `compare` x :: Int  =  GT-' ' :: Char `compare` 0 :: Int  =  LT-' ' :: Char `compare` id _ :: Int  =  LT-' ' :: Char `compare` _ :: Bool  =  GT-' ' :: Char `compare` _ :: Char  =  GT-' ' :: Char `compare` _ :: [Int]  =  GT-ys :: [Int] `compare` x :: Int  =  GT-ys :: [Int] `compare` 0 :: Int  =  LT-ys :: [Int] `compare` id _ :: Int  =  LT-ys :: [Int] `compare` _ :: Bool  =  GT-ys :: [Int] `compare` _ :: Char  =  GT-ys :: [Int] `compare` _ :: [Int]  =  GT-[0] :: [Int] `compare` x :: Int  =  GT-[0] :: [Int] `compare` 0 :: Int  =  GT-[0] :: [Int] `compare` id _ :: Int  =  LT-[0] :: [Int] `compare` _ :: Bool  =  GT-[0] :: [Int] `compare` _ :: Char  =  GT-[0] :: [Int] `compare` _ :: [Int]  =  GT-_:xs :: [Int] `compare` x :: Int  =  GT-_:xs :: [Int] `compare` 0 :: Int  =  GT-_:xs :: [Int] `compare` id _ :: Int  =  GT-_:xs :: [Int] `compare` _ :: Bool  =  GT-_:xs :: [Int] `compare` _ :: Char  =  GT-_:xs :: [Int] `compare` _ :: [Int]  =  GT-[_] :: [Int] `compare` x :: Int  =  GT-[_] :: [Int] `compare` 0 :: Int  =  GT-[_] :: [Int] `compare` id _ :: Int  =  GT-[_] :: [Int] `compare` _ :: Bool  =  GT-[_] :: [Int] `compare` _ :: Char  =  GT-[_] :: [Int] `compare` _ :: [Int]  =  GT-_:_:_ :: [Int] `compare` x :: Int  =  GT-_:_:_ :: [Int] `compare` 0 :: Int  =  GT-_:_:_ :: [Int] `compare` id _ :: Int  =  GT-_:_:_ :: [Int] `compare` _ :: Bool  =  GT-_:_:_ :: [Int] `compare` _ :: Char  =  GT-_:_:_ :: [Int] `compare` _ :: [Int]  =  GT-x:_ :: [Int] `compare` x :: Int  =  GT-x:_ :: [Int] `compare` 0 :: Int  =  GT-x:_ :: [Int] `compare` id _ :: Int  =  GT-x:_ :: [Int] `compare` _ :: Bool  =  GT-x:_ :: [Int] `compare` _ :: Char  =  GT-x:_ :: [Int] `compare` _ :: [Int]  =  GT-0:_ :: [Int] `compare` x :: Int  =  GT-0:_ :: [Int] `compare` 0 :: Int  =  GT-0:_ :: [Int] `compare` id _ :: Int  =  GT-0:_ :: [Int] `compare` _ :: Bool  =  GT-0:_ :: [Int] `compare` _ :: Char  =  GT-0:_ :: [Int] `compare` _ :: [Int]  =  GT-id _:_ :: [Int] `compare` x :: Int  =  GT-id _:_ :: [Int] `compare` 0 :: Int  =  GT-id _:_ :: [Int] `compare` id _ :: Int  =  GT-id _:_ :: [Int] `compare` _ :: Bool  =  GT-id _:_ :: [Int] `compare` _ :: Char  =  GT-id _:_ :: [Int] `compare` _ :: [Int]  =  GT-tail _ :: [Int] `compare` x :: Int  =  GT-tail _ :: [Int] `compare` 0 :: Int  =  GT-tail _ :: [Int] `compare` id _ :: Int  =  GT-tail _ :: [Int] `compare` _ :: Bool  =  GT-tail _ :: [Int] `compare` _ :: Char  =  GT-tail _ :: [Int] `compare` _ :: [Int]  =  GT-_ ++ _ :: [Int] `compare` x :: Int  =  GT-_ ++ _ :: [Int] `compare` 0 :: Int  =  GT-_ ++ _ :: [Int] `compare` id _ :: Int  =  GT-_ ++ _ :: [Int] `compare` _ :: Bool  =  GT-_ ++ _ :: [Int] `compare` _ :: Char  =  GT-_ ++ _ :: [Int] `compare` _ :: [Int]  =  GT-negate :: Int -> Int `compare` x :: Int  =  GT-negate :: Int -> Int `compare` 0 :: Int  =  GT-negate :: Int -> Int `compare` id _ :: Int  =  LT-negate :: Int -> Int `compare` _ :: Bool  =  GT-negate :: Int -> Int `compare` _ :: Char  =  GT-negate :: Int -> Int `compare` _ :: [Int]  =  GT-abs :: Int -> Int `compare` x :: Int  =  GT-abs :: Int -> Int `compare` 0 :: Int  =  GT-abs :: Int -> Int `compare` id _ :: Int  =  LT-abs :: Int -> Int `compare` _ :: Bool  =  GT-abs :: Int -> Int `compare` _ :: Char  =  GT-abs :: Int -> Int `compare` _ :: [Int]  =  GT-(_ +) :: Int -> Int `compare` x :: Int  =  GT-(_ +) :: Int -> Int `compare` 0 :: Int  =  GT-(_ +) :: Int -> Int `compare` id _ :: Int  =  GT-(_ +) :: Int -> Int `compare` _ :: Bool  =  GT-(_ +) :: Int -> Int `compare` _ :: Char  =  GT-(_ +) :: Int -> Int `compare` _ :: [Int]  =  GT-(*) :: Int -> Int -> Int `compare` x :: Int  =  GT-(*) :: Int -> Int -> Int `compare` 0 :: Int  =  GT-(*) :: Int -> Int -> Int `compare` id _ :: Int  =  LT-(*) :: Int -> Int -> Int `compare` _ :: Bool  =  GT-(*) :: Int -> Int -> Int `compare` _ :: Char  =  GT-(*) :: Int -> Int -> Int `compare` _ :: [Int]  =  GT-not :: Bool -> Bool `compare` x :: Int  =  GT-not :: Bool -> Bool `compare` 0 :: Int  =  GT-not :: Bool -> Bool `compare` id _ :: Int  =  LT-not :: Bool -> Bool `compare` _ :: Bool  =  GT-not :: Bool -> Bool `compare` _ :: Char  =  GT-not :: Bool -> Bool `compare` _ :: [Int]  =  GT-(||) :: Bool -> Bool -> Bool `compare` x :: Int  =  GT-(||) :: Bool -> Bool -> Bool `compare` 0 :: Int  =  GT-(||) :: Bool -> Bool -> Bool `compare` id _ :: Int  =  LT-(||) :: Bool -> Bool -> Bool `compare` _ :: Bool  =  GT-(||) :: Bool -> Bool -> Bool `compare` _ :: Char  =  GT-(||) :: Bool -> Bool -> Bool `compare` _ :: [Int]  =  GT-x' :: Int `compare` _ :: Int  =  GT-2 :: Int `compare` _ :: Int  =  GT-id z :: Int `compare` _ :: Int  =  GT-id (-1) :: Int `compare` _ :: Int  =  GT-id (id y) :: Int `compare` _ :: Int  =  GT-id (id 1) :: Int `compare` _ :: Int  =  GT-id (id (id x)) :: Int `compare` _ :: Int  =  GT-id (id (id 0)) :: Int `compare` _ :: Int  =  GT-id (id (id (id _))) :: Int `compare` _ :: Int  =  GT-id (id (negate _)) :: Int `compare` _ :: Int  =  GT-id (id (abs _)) :: Int `compare` _ :: Int  =  GT-id (id (_ + _)) :: Int `compare` _ :: Int  =  GT-id (id (head _)) :: Int `compare` _ :: Int  =  GT-id (id (ord _)) :: Int `compare` _ :: Int  =  GT-id (negate x) :: Int `compare` _ :: Int  =  GT-id (negate 0) :: Int `compare` _ :: Int  =  GT-id (negate (id _)) :: Int `compare` _ :: Int  =  GT-id (abs x) :: Int `compare` _ :: Int  =  GT-id (abs 0) :: Int `compare` _ :: Int  =  GT-id (abs (id _)) :: Int `compare` _ :: Int  =  GT-id (_ + x) :: Int `compare` _ :: Int  =  GT-id (_ + 0) :: Int `compare` _ :: Int  =  GT-id (_ + id _) :: Int `compare` _ :: Int  =  GT-id (x + _) :: Int `compare` _ :: Int  =  GT-id (0 + _) :: Int `compare` _ :: Int  =  GT-id (id _ + _) :: Int `compare` _ :: Int  =  GT-id (_ * _) :: Int `compare` _ :: Int  =  GT-id (f _) :: Int `compare` _ :: Int  =  GT-id (head xs) :: Int `compare` _ :: Int  =  GT-id (head []) :: Int `compare` _ :: Int  =  GT-id (head (_:_)) :: Int `compare` _ :: Int  =  GT-id (ord c) :: Int `compare` _ :: Int  =  GT-id (ord 'a') :: Int `compare` _ :: Int  =  GT-negate y :: Int `compare` _ :: Int  =  GT-negate 1 :: Int `compare` _ :: Int  =  GT-negate (id x) :: Int `compare` _ :: Int  =  GT-negate (id 0) :: Int `compare` _ :: Int  =  GT-negate (id (id _)) :: Int `compare` _ :: Int  =  GT-negate (negate _) :: Int `compare` _ :: Int  =  GT-negate (abs _) :: Int `compare` _ :: Int  =  GT-negate (_ + _) :: Int `compare` _ :: Int  =  GT-negate (head _) :: Int `compare` _ :: Int  =  GT-negate (ord _) :: Int `compare` _ :: Int  =  GT-abs y :: Int `compare` _ :: Int  =  GT-abs 1 :: Int `compare` _ :: Int  =  GT-abs (id x) :: Int `compare` _ :: Int  =  GT-abs (id 0) :: Int `compare` _ :: Int  =  GT-abs (id (id _)) :: Int `compare` _ :: Int  =  GT-abs (negate _) :: Int `compare` _ :: Int  =  GT-abs (abs _) :: Int `compare` _ :: Int  =  GT-abs (_ + _) :: Int `compare` _ :: Int  =  GT-abs (head _) :: Int `compare` _ :: Int  =  GT-abs (ord _) :: Int `compare` _ :: Int  =  GT-_ + y :: Int `compare` _ :: Int  =  GT-_ + 1 :: Int `compare` _ :: Int  =  GT-_ + id x :: Int `compare` _ :: Int  =  GT-_ + id 0 :: Int `compare` _ :: Int  =  GT-_ + id (id _) :: Int `compare` _ :: Int  =  GT-_ + negate _ :: Int `compare` _ :: Int  =  GT-_ + abs _ :: Int `compare` _ :: Int  =  GT-_ + (_ + _) :: Int `compare` _ :: Int  =  GT-_ + head _ :: Int `compare` _ :: Int  =  GT-_ + ord _ :: Int `compare` _ :: Int  =  GT-x + x :: Int `compare` _ :: Int  =  GT-x + 0 :: Int `compare` _ :: Int  =  GT-x + id _ :: Int `compare` _ :: Int  =  GT-0 + x :: Int `compare` _ :: Int  =  GT-0 + 0 :: Int `compare` _ :: Int  =  GT-0 + id _ :: Int `compare` _ :: Int  =  GT-id _ + x :: Int `compare` _ :: Int  =  GT-id _ + 0 :: Int `compare` _ :: Int  =  GT-id _ + id _ :: Int `compare` _ :: Int  =  GT-_ * x :: Int `compare` _ :: Int  =  GT-_ * 0 :: Int `compare` _ :: Int  =  GT-_ * id _ :: Int `compare` _ :: Int  =  GT-f x :: Int `compare` _ :: Int  =  GT-f 0 :: Int `compare` _ :: Int  =  GT-f (id _) :: Int `compare` _ :: Int  =  GT-y + _ :: Int `compare` _ :: Int  =  GT-1 + _ :: Int `compare` _ :: Int  =  GT-id x + _ :: Int `compare` _ :: Int  =  GT-id 0 + _ :: Int `compare` _ :: Int  =  GT-id (id _) + _ :: Int `compare` _ :: Int  =  GT-negate _ + _ :: Int `compare` _ :: Int  =  GT-abs _ + _ :: Int `compare` _ :: Int  =  GT-(_ + _) + _ :: Int `compare` _ :: Int  =  GT-head _ + _ :: Int `compare` _ :: Int  =  GT-ord _ + _ :: Int `compare` _ :: Int  =  GT-x * _ :: Int `compare` _ :: Int  =  GT-0 * _ :: Int `compare` _ :: Int  =  GT-id _ * _ :: Int `compare` _ :: Int  =  GT-g _ :: Int `compare` _ :: Int  =  GT-head ys :: Int `compare` _ :: Int  =  GT-head [0] :: Int `compare` _ :: Int  =  GT-head (_:xs) :: Int `compare` _ :: Int  =  GT-head [_] :: Int `compare` _ :: Int  =  GT-head (_:_:_) :: Int `compare` _ :: Int  =  GT-head (x:_) :: Int `compare` _ :: Int  =  GT-head (0:_) :: Int `compare` _ :: Int  =  GT-head (id _:_) :: Int `compare` _ :: Int  =  GT-head (tail _) :: Int `compare` _ :: Int  =  GT-head (_ ++ _) :: Int `compare` _ :: Int  =  GT-ord d :: Int `compare` _ :: Int  =  GT-ord ' ' :: Int `compare` _ :: Int  =  GT-r :: Bool `compare` _ :: Int  =  LT-not q :: Bool `compare` _ :: Int  =  GT-not (not p) :: Bool `compare` _ :: Int  =  GT-not (not False) :: Bool `compare` _ :: Int  =  GT-not (not True) :: Bool `compare` _ :: Int  =  GT-not (not (not _)) :: Bool `compare` _ :: Int  =  GT-not (_ || _) :: Bool `compare` _ :: Int  =  GT-_ || p :: Bool `compare` _ :: Int  =  GT-_ || False :: Bool `compare` _ :: Int  =  GT-_ || True :: Bool `compare` _ :: Int  =  GT-_ || not _ :: Bool `compare` _ :: Int  =  GT-p || _ :: Bool `compare` _ :: Int  =  GT-False || _ :: Bool `compare` _ :: Int  =  GT-True || _ :: Bool `compare` _ :: Int  =  GT-not _ || _ :: Bool `compare` _ :: Int  =  GT-_ && _ :: Bool `compare` _ :: Int  =  GT-_ == _ :: Bool `compare` _ :: Int  =  GT-_ == _ :: Bool `compare` _ :: Int  =  GT-odd _ :: Bool `compare` _ :: Int  =  GT-even _ :: Bool `compare` _ :: Int  =  GT-elem _ _ :: Bool `compare` _ :: Int  =  GT-e :: Char `compare` _ :: Int  =  LT-'b' :: Char `compare` _ :: Int  =  GT-zs :: [Int] `compare` _ :: Int  =  GT-[0,0] :: [Int] `compare` _ :: Int  =  GT-[1] :: [Int] `compare` _ :: Int  =  GT-_:ys :: [Int] `compare` _ :: Int  =  GT-[_,0] :: [Int] `compare` _ :: Int  =  GT-_:_:xs :: [Int] `compare` _ :: Int  =  GT-[_,_] :: [Int] `compare` _ :: Int  =  GT-_:_:_:_ :: [Int] `compare` _ :: Int  =  GT-_:x:_ :: [Int] `compare` _ :: Int  =  GT-_:0:_ :: [Int] `compare` _ :: Int  =  GT-_:id _:_ :: [Int] `compare` _ :: Int  =  GT-_:tail _ :: [Int] `compare` _ :: Int  =  GT-_:(_ ++ _) :: [Int] `compare` _ :: Int  =  GT-x:xs :: [Int] `compare` _ :: Int  =  GT-[x] :: [Int] `compare` _ :: Int  =  GT-x:_:_ :: [Int] `compare` _ :: Int  =  GT-0:xs :: [Int] `compare` _ :: Int  =  GT-[0] :: [Int] `compare` _ :: Int  =  GT-0:_:_ :: [Int] `compare` _ :: Int  =  GT-id _:xs :: [Int] `compare` _ :: Int  =  GT-[id _] :: [Int] `compare` _ :: Int  =  GT-id _:_:_ :: [Int] `compare` _ :: Int  =  GT-y:_ :: [Int] `compare` _ :: Int  =  GT-1:_ :: [Int] `compare` _ :: Int  =  GT-id x:_ :: [Int] `compare` _ :: Int  =  GT-id 0:_ :: [Int] `compare` _ :: Int  =  GT-id (id _):_ :: [Int] `compare` _ :: Int  =  GT-negate _:_ :: [Int] `compare` _ :: Int  =  GT-abs _:_ :: [Int] `compare` _ :: Int  =  GT-_ + _:_ :: [Int] `compare` _ :: Int  =  GT-head _:_ :: [Int] `compare` _ :: Int  =  GT-ord _:_ :: [Int] `compare` _ :: Int  =  GT-tail xs :: [Int] `compare` _ :: Int  =  GT-tail [] :: [Int] `compare` _ :: Int  =  GT-tail (_:_) :: [Int] `compare` _ :: Int  =  GT-_ ++ xs :: [Int] `compare` _ :: Int  =  GT-_ ++ [] :: [Int] `compare` _ :: Int  =  GT-_ ++ (_:_) :: [Int] `compare` _ :: Int  =  GT-xs ++ _ :: [Int] `compare` _ :: Int  =  GT-[] ++ _ :: [Int] `compare` _ :: Int  =  GT-(_:_) ++ _ :: [Int] `compare` _ :: Int  =  GT-sort _ :: [Int] `compare` _ :: Int  =  GT-insert _ _ :: [Int] `compare` _ :: Int  =  GT-(x +) :: Int -> Int `compare` _ :: Int  =  GT-(0 +) :: Int -> Int `compare` _ :: Int  =  GT-(id _ +) :: Int -> Int `compare` _ :: Int  =  GT-(_ *) :: Int -> Int `compare` _ :: Int  =  GT-f :: Int -> Int `compare` _ :: Int  =  GT-(_ ||) :: Bool -> Bool `compare` _ :: Int  =  GT-(&&) :: Bool -> Bool -> Bool `compare` _ :: Int  =  GT-_ :: Int `compare` y' :: Int  =  LT-_ :: Int `compare` -2 :: Int  =  LT-_ :: Int `compare` id x' :: Int  =  LT-_ :: Int `compare` id 2 :: Int  =  LT-_ :: Int `compare` id (id z) :: Int  =  LT-_ :: Int `compare` id (id (-1)) :: Int  =  LT-_ :: Int `compare` id (id (id y)) :: Int  =  LT-_ :: Int `compare` id (id (id 1)) :: Int  =  LT-_ :: Int `compare` id (id (id (id x))) :: Int  =  LT-_ :: Int `compare` id (id (id (id 0))) :: Int  =  LT-_ :: Int `compare` id (id (id (id (id _)))) :: Int  =  LT-_ :: Int `compare` id (id (id (negate _))) :: Int  =  LT-_ :: Int `compare` id (id (id (abs _))) :: Int  =  LT-_ :: Int `compare` id (id (id (_ + _))) :: Int  =  LT-_ :: Int `compare` id (id (id (head _))) :: Int  =  LT-_ :: Int `compare` id (id (id (ord _))) :: Int  =  LT-_ :: Int `compare` id (id (negate x)) :: Int  =  LT-_ :: Int `compare` id (id (negate 0)) :: Int  =  LT-_ :: Int `compare` id (id (negate (id _))) :: Int  =  LT-_ :: Int `compare` id (id (abs x)) :: Int  =  LT-_ :: Int `compare` id (id (abs 0)) :: Int  =  LT-_ :: Int `compare` id (id (abs (id _))) :: Int  =  LT-_ :: Int `compare` id (id (_ + x)) :: Int  =  LT-_ :: Int `compare` id (id (_ + 0)) :: Int  =  LT-_ :: Int `compare` id (id (_ + id _)) :: Int  =  LT-_ :: Int `compare` id (id (x + _)) :: Int  =  LT-_ :: Int `compare` id (id (0 + _)) :: Int  =  LT-_ :: Int `compare` id (id (id _ + _)) :: Int  =  LT-_ :: Int `compare` id (id (_ * _)) :: Int  =  LT-_ :: Int `compare` id (id (f _)) :: Int  =  LT-_ :: Int `compare` id (id (head xs)) :: Int  =  LT-_ :: Int `compare` id (id (head [])) :: Int  =  LT-_ :: Int `compare` id (id (head (_:_))) :: Int  =  LT-_ :: Int `compare` id (id (ord c)) :: Int  =  LT-_ :: Int `compare` id (id (ord 'a')) :: Int  =  LT-_ :: Int `compare` id (negate y) :: Int  =  LT-_ :: Int `compare` id (negate 1) :: Int  =  LT-_ :: Int `compare` id (negate (id x)) :: Int  =  LT-_ :: Int `compare` id (negate (id 0)) :: Int  =  LT-_ :: Int `compare` id (negate (id (id _))) :: Int  =  LT-_ :: Int `compare` id (negate (negate _)) :: Int  =  LT-_ :: Int `compare` id (negate (abs _)) :: Int  =  LT-_ :: Int `compare` id (negate (_ + _)) :: Int  =  LT-_ :: Int `compare` id (negate (head _)) :: Int  =  LT-_ :: Int `compare` id (negate (ord _)) :: Int  =  LT-_ :: Int `compare` id (abs y) :: Int  =  LT-_ :: Int `compare` id (abs 1) :: Int  =  LT-_ :: Int `compare` id (abs (id x)) :: Int  =  LT-_ :: Int `compare` id (abs (id 0)) :: Int  =  LT-_ :: Int `compare` id (abs (id (id _))) :: Int  =  LT-_ :: Int `compare` id (abs (negate _)) :: Int  =  LT-_ :: Int `compare` id (abs (abs _)) :: Int  =  LT-_ :: Int `compare` id (abs (_ + _)) :: Int  =  LT-_ :: Int `compare` id (abs (head _)) :: Int  =  LT-_ :: Int `compare` id (abs (ord _)) :: Int  =  LT-_ :: Int `compare` id (_ + y) :: Int  =  LT-_ :: Int `compare` id (_ + 1) :: Int  =  LT-_ :: Int `compare` id (_ + id x) :: Int  =  LT-_ :: Int `compare` id (_ + id 0) :: Int  =  LT-_ :: Int `compare` id (_ + id (id _)) :: Int  =  LT-_ :: Int `compare` id (_ + negate _) :: Int  =  LT-_ :: Int `compare` id (_ + abs _) :: Int  =  LT-_ :: Int `compare` id (_ + (_ + _)) :: Int  =  LT-_ :: Int `compare` id (_ + head _) :: Int  =  LT-_ :: Int `compare` id (_ + ord _) :: Int  =  LT-_ :: Int `compare` id (x + x) :: Int  =  LT-_ :: Int `compare` id (x + 0) :: Int  =  LT-_ :: Int `compare` id (x + id _) :: Int  =  LT-_ :: Int `compare` id (0 + x) :: Int  =  LT-_ :: Int `compare` id (0 + 0) :: Int  =  LT-_ :: Int `compare` id (0 + id _) :: Int  =  LT-_ :: Int `compare` id (id _ + x) :: Int  =  LT-_ :: Int `compare` id (id _ + 0) :: Int  =  LT-_ :: Int `compare` id (id _ + id _) :: Int  =  LT-_ :: Int `compare` id (_ * x) :: Int  =  LT-_ :: Int `compare` id (_ * 0) :: Int  =  LT-_ :: Int `compare` id (_ * id _) :: Int  =  LT-_ :: Int `compare` id (f x) :: Int  =  LT-_ :: Int `compare` id (f 0) :: Int  =  LT-_ :: Int `compare` id (f (id _)) :: Int  =  LT-_ :: Int `compare` id (y + _) :: Int  =  LT-_ :: Int `compare` id (1 + _) :: Int  =  LT-_ :: Int `compare` id (id x + _) :: Int  =  LT-_ :: Int `compare` id (id 0 + _) :: Int  =  LT-_ :: Int `compare` id (id (id _) + _) :: Int  =  LT-_ :: Int `compare` id (negate _ + _) :: Int  =  LT-_ :: Int `compare` id (abs _ + _) :: Int  =  LT-_ :: Int `compare` id ((_ + _) + _) :: Int  =  LT-_ :: Int `compare` id (head _ + _) :: Int  =  LT-_ :: Int `compare` id (ord _ + _) :: Int  =  LT-_ :: Int `compare` id (x * _) :: Int  =  LT-_ :: Int `compare` id (0 * _) :: Int  =  LT-_ :: Int `compare` id (id _ * _) :: Int  =  LT-_ :: Int `compare` id (g _) :: Int  =  LT-_ :: Int `compare` id (head ys) :: Int  =  LT-_ :: Int `compare` id (head [0]) :: Int  =  LT-_ :: Int `compare` id (head (_:xs)) :: Int  =  LT-_ :: Int `compare` id (head [_]) :: Int  =  LT-_ :: Int `compare` id (head (_:_:_)) :: Int  =  LT-_ :: Int `compare` id (head (x:_)) :: Int  =  LT-_ :: Int `compare` id (head (0:_)) :: Int  =  LT-_ :: Int `compare` id (head (id _:_)) :: Int  =  LT-_ :: Int `compare` id (head (tail _)) :: Int  =  LT-_ :: Int `compare` id (head (_ ++ _)) :: Int  =  LT-_ :: Int `compare` id (ord d) :: Int  =  LT-_ :: Int `compare` id (ord ' ') :: Int  =  LT-_ :: Int `compare` negate z :: Int  =  LT-_ :: Int `compare` negate (-1) :: Int  =  LT-_ :: Int `compare` negate (id y) :: Int  =  LT-_ :: Int `compare` negate (id 1) :: Int  =  LT-_ :: Int `compare` negate (id (id x)) :: Int  =  LT-_ :: Int `compare` negate (id (id 0)) :: Int  =  LT-_ :: Int `compare` negate (id (id (id _))) :: Int  =  LT-_ :: Int `compare` negate (id (negate _)) :: Int  =  LT-_ :: Int `compare` negate (id (abs _)) :: Int  =  LT-_ :: Int `compare` negate (id (_ + _)) :: Int  =  LT-_ :: Int `compare` negate (id (head _)) :: Int  =  LT-_ :: Int `compare` negate (id (ord _)) :: Int  =  LT-_ :: Int `compare` negate (negate x) :: Int  =  LT-_ :: Int `compare` negate (negate 0) :: Int  =  LT-_ :: Int `compare` negate (negate (id _)) :: Int  =  LT-_ :: Int `compare` negate (abs x) :: Int  =  LT-_ :: Int `compare` negate (abs 0) :: Int  =  LT-_ :: Int `compare` negate (abs (id _)) :: Int  =  LT-_ :: Int `compare` negate (_ + x) :: Int  =  LT-_ :: Int `compare` negate (_ + 0) :: Int  =  LT-_ :: Int `compare` negate (_ + id _) :: Int  =  LT-_ :: Int `compare` negate (x + _) :: Int  =  LT-_ :: Int `compare` negate (0 + _) :: Int  =  LT-_ :: Int `compare` negate (id _ + _) :: Int  =  LT-_ :: Int `compare` negate (_ * _) :: Int  =  LT-_ :: Int `compare` negate (f _) :: Int  =  LT-_ :: Int `compare` negate (head xs) :: Int  =  LT-_ :: Int `compare` negate (head []) :: Int  =  LT-_ :: Int `compare` negate (head (_:_)) :: Int  =  LT-_ :: Int `compare` negate (ord c) :: Int  =  LT-_ :: Int `compare` negate (ord 'a') :: Int  =  LT-_ :: Int `compare` abs z :: Int  =  LT-_ :: Int `compare` abs (-1) :: Int  =  LT-_ :: Int `compare` abs (id y) :: Int  =  LT-_ :: Int `compare` abs (id 1) :: Int  =  LT-_ :: Int `compare` abs (id (id x)) :: Int  =  LT-_ :: Int `compare` abs (id (id 0)) :: Int  =  LT-_ :: Int `compare` abs (id (id (id _))) :: Int  =  LT-_ :: Int `compare` abs (id (negate _)) :: Int  =  LT-_ :: Int `compare` abs (id (abs _)) :: Int  =  LT-_ :: Int `compare` abs (id (_ + _)) :: Int  =  LT-_ :: Int `compare` abs (id (head _)) :: Int  =  LT-_ :: Int `compare` abs (id (ord _)) :: Int  =  LT-_ :: Int `compare` abs (negate x) :: Int  =  LT-_ :: Int `compare` abs (negate 0) :: Int  =  LT-_ :: Int `compare` abs (negate (id _)) :: Int  =  LT-_ :: Int `compare` abs (abs x) :: Int  =  LT-_ :: Int `compare` abs (abs 0) :: Int  =  LT-_ :: Int `compare` abs (abs (id _)) :: Int  =  LT-_ :: Int `compare` abs (_ + x) :: Int  =  LT-_ :: Int `compare` abs (_ + 0) :: Int  =  LT-_ :: Int `compare` abs (_ + id _) :: Int  =  LT-_ :: Int `compare` abs (x + _) :: Int  =  LT-_ :: Int `compare` abs (0 + _) :: Int  =  LT-_ :: Int `compare` abs (id _ + _) :: Int  =  LT-_ :: Int `compare` abs (_ * _) :: Int  =  LT-_ :: Int `compare` abs (f _) :: Int  =  LT-_ :: Int `compare` abs (head xs) :: Int  =  LT-_ :: Int `compare` abs (head []) :: Int  =  LT-_ :: Int `compare` abs (head (_:_)) :: Int  =  LT-_ :: Int `compare` abs (ord c) :: Int  =  LT-_ :: Int `compare` abs (ord 'a') :: Int  =  LT-_ :: Int `compare` _ + z :: Int  =  LT-_ :: Int `compare` _ + (-1) :: Int  =  LT-_ :: Int `compare` _ + id y :: Int  =  LT-_ :: Int `compare` _ + id 1 :: Int  =  LT-_ :: Int `compare` _ + id (id x) :: Int  =  LT-_ :: Int `compare` _ + id (id 0) :: Int  =  LT-_ :: Int `compare` _ + id (id (id _)) :: Int  =  LT-_ :: Int `compare` _ + id (negate _) :: Int  =  LT-_ :: Int `compare` _ + id (abs _) :: Int  =  LT-_ :: Int `compare` _ + id (_ + _) :: Int  =  LT-_ :: Int `compare` _ + id (head _) :: Int  =  LT-_ :: Int `compare` _ + id (ord _) :: Int  =  LT-_ :: Int `compare` _ + negate x :: Int  =  LT-_ :: Int `compare` _ + negate 0 :: Int  =  LT-_ :: Int `compare` _ + negate (id _) :: Int  =  LT-_ :: Int `compare` _ + abs x :: Int  =  LT-_ :: Int `compare` _ + abs 0 :: Int  =  LT-_ :: Int `compare` _ + abs (id _) :: Int  =  LT-_ :: Int `compare` _ + (_ + x) :: Int  =  LT-_ :: Int `compare` _ + (_ + 0) :: Int  =  LT-_ :: Int `compare` _ + (_ + id _) :: Int  =  LT-_ :: Int `compare` _ + (x + _) :: Int  =  LT-_ :: Int `compare` _ + (0 + _) :: Int  =  LT-_ :: Int `compare` _ + (id _ + _) :: Int  =  LT-_ :: Int `compare` _ + _ * _ :: Int  =  LT-_ :: Int `compare` _ + f _ :: Int  =  LT-_ :: Int `compare` _ + head xs :: Int  =  LT-_ :: Int `compare` _ + head [] :: Int  =  LT-_ :: Int `compare` _ + head (_:_) :: Int  =  LT-_ :: Int `compare` _ + ord c :: Int  =  LT-_ :: Int `compare` _ + ord 'a' :: Int  =  LT-_ :: Int `compare` x + y :: Int  =  LT-_ :: Int `compare` x + 1 :: Int  =  LT-_ :: Int `compare` x + id x :: Int  =  LT-_ :: Int `compare` x + id 0 :: Int  =  LT-_ :: Int `compare` x + id (id _) :: Int  =  LT-_ :: Int `compare` x + negate _ :: Int  =  LT-_ :: Int `compare` x + abs _ :: Int  =  LT-_ :: Int `compare` x + (_ + _) :: Int  =  LT-_ :: Int `compare` x + head _ :: Int  =  LT-_ :: Int `compare` x + ord _ :: Int  =  LT-_ :: Int `compare` 0 + y :: Int  =  LT-_ :: Int `compare` 0 + 1 :: Int  =  LT-_ :: Int `compare` 0 + id x :: Int  =  LT-_ :: Int `compare` 0 + id 0 :: Int  =  LT-_ :: Int `compare` 0 + id (id _) :: Int  =  LT-_ :: Int `compare` 0 + negate _ :: Int  =  LT-_ :: Int `compare` 0 + abs _ :: Int  =  LT-_ :: Int `compare` 0 + (_ + _) :: Int  =  LT-_ :: Int `compare` 0 + head _ :: Int  =  LT-_ :: Int `compare` 0 + ord _ :: Int  =  LT-_ :: Int `compare` id _ + y :: Int  =  LT-_ :: Int `compare` id _ + 1 :: Int  =  LT-_ :: Int `compare` id _ + id x :: Int  =  LT-_ :: Int `compare` id _ + id 0 :: Int  =  LT-_ :: Int `compare` id _ + id (id _) :: Int  =  LT-_ :: Int `compare` id _ + negate _ :: Int  =  LT-_ :: Int `compare` id _ + abs _ :: Int  =  LT-_ :: Int `compare` id _ + (_ + _) :: Int  =  LT-_ :: Int `compare` id _ + head _ :: Int  =  LT-_ :: Int `compare` id _ + ord _ :: Int  =  LT-_ :: Int `compare` _ * y :: Int  =  LT-_ :: Int `compare` _ * 1 :: Int  =  LT-_ :: Int `compare` _ * id x :: Int  =  LT-_ :: Int `compare` _ * id 0 :: Int  =  LT-_ :: Int `compare` _ * id (id _) :: Int  =  LT-_ :: Int `compare` _ * negate _ :: Int  =  LT-_ :: Int `compare` _ * abs _ :: Int  =  LT-_ :: Int `compare` _ * (_ + _) :: Int  =  LT-_ :: Int `compare` _ * head _ :: Int  =  LT-_ :: Int `compare` _ * ord _ :: Int  =  LT-_ :: Int `compare` f y :: Int  =  LT-_ :: Int `compare` f 1 :: Int  =  LT-_ :: Int `compare` f (id x) :: Int  =  LT-_ :: Int `compare` f (id 0) :: Int  =  LT-_ :: Int `compare` f (id (id _)) :: Int  =  LT-_ :: Int `compare` f (negate _) :: Int  =  LT-_ :: Int `compare` f (abs _) :: Int  =  LT-_ :: Int `compare` f (_ + _) :: Int  =  LT-_ :: Int `compare` f (head _) :: Int  =  LT-_ :: Int `compare` f (ord _) :: Int  =  LT-_ :: Int `compare` y + x :: Int  =  LT-_ :: Int `compare` y + 0 :: Int  =  LT-_ :: Int `compare` y + id _ :: Int  =  LT-_ :: Int `compare` 1 + x :: Int  =  LT-_ :: Int `compare` 1 + 0 :: Int  =  LT-_ :: Int `compare` 1 + id _ :: Int  =  LT-_ :: Int `compare` id x + x :: Int  =  LT-_ :: Int `compare` id x + 0 :: Int  =  LT-_ :: Int `compare` id x + id _ :: Int  =  LT-_ :: Int `compare` id 0 + x :: Int  =  LT-_ :: Int `compare` id 0 + 0 :: Int  =  LT-_ :: Int `compare` id 0 + id _ :: Int  =  LT-_ :: Int `compare` id (id _) + x :: Int  =  LT-_ :: Int `compare` id (id _) + 0 :: Int  =  LT-_ :: Int `compare` id (id _) + id _ :: Int  =  LT-_ :: Int `compare` negate _ + x :: Int  =  LT-_ :: Int `compare` negate _ + 0 :: Int  =  LT-_ :: Int `compare` negate _ + id _ :: Int  =  LT-_ :: Int `compare` abs _ + x :: Int  =  LT-_ :: Int `compare` abs _ + 0 :: Int  =  LT-_ :: Int `compare` abs _ + id _ :: Int  =  LT-_ :: Int `compare` (_ + _) + x :: Int  =  LT-_ :: Int `compare` (_ + _) + 0 :: Int  =  LT-_ :: Int `compare` (_ + _) + id _ :: Int  =  LT-_ :: Int `compare` head _ + x :: Int  =  LT-_ :: Int `compare` head _ + 0 :: Int  =  LT-_ :: Int `compare` head _ + id _ :: Int  =  LT-_ :: Int `compare` ord _ + x :: Int  =  LT-_ :: Int `compare` ord _ + 0 :: Int  =  LT-_ :: Int `compare` ord _ + id _ :: Int  =  LT-_ :: Int `compare` x * x :: Int  =  LT-_ :: Int `compare` x * 0 :: Int  =  LT-_ :: Int `compare` x * id _ :: Int  =  LT-_ :: Int `compare` 0 * x :: Int  =  LT-_ :: Int `compare` 0 * 0 :: Int  =  LT-_ :: Int `compare` 0 * id _ :: Int  =  LT-_ :: Int `compare` id _ * x :: Int  =  LT-_ :: Int `compare` id _ * 0 :: Int  =  LT-_ :: Int `compare` id _ * id _ :: Int  =  LT-_ :: Int `compare` g x :: Int  =  LT-_ :: Int `compare` g 0 :: Int  =  LT-_ :: Int `compare` g (id _) :: Int  =  LT-_ :: Int `compare` z + _ :: Int  =  LT-_ :: Int `compare` (-1) + _ :: Int  =  LT-_ :: Int `compare` id y + _ :: Int  =  LT-_ :: Int `compare` id 1 + _ :: Int  =  LT-_ :: Int `compare` id (id x) + _ :: Int  =  LT-_ :: Int `compare` id (id 0) + _ :: Int  =  LT-_ :: Int `compare` id (id (id _)) + _ :: Int  =  LT-_ :: Int `compare` id (negate _) + _ :: Int  =  LT-_ :: Int `compare` id (abs _) + _ :: Int  =  LT-_ :: Int `compare` id (_ + _) + _ :: Int  =  LT-_ :: Int `compare` id (head _) + _ :: Int  =  LT-_ :: Int `compare` id (ord _) + _ :: Int  =  LT-_ :: Int `compare` negate x + _ :: Int  =  LT-_ :: Int `compare` negate 0 + _ :: Int  =  LT-_ :: Int `compare` negate (id _) + _ :: Int  =  LT-_ :: Int `compare` abs x + _ :: Int  =  LT-_ :: Int `compare` abs 0 + _ :: Int  =  LT-_ :: Int `compare` abs (id _) + _ :: Int  =  LT-_ :: Int `compare` (_ + x) + _ :: Int  =  LT-_ :: Int `compare` (_ + 0) + _ :: Int  =  LT-_ :: Int `compare` (_ + id _) + _ :: Int  =  LT-_ :: Int `compare` (x + _) + _ :: Int  =  LT-_ :: Int `compare` (0 + _) + _ :: Int  =  LT-_ :: Int `compare` (id _ + _) + _ :: Int  =  LT-_ :: Int `compare` _ * _ + _ :: Int  =  LT-_ :: Int `compare` f _ + _ :: Int  =  LT-_ :: Int `compare` head xs + _ :: Int  =  LT-_ :: Int `compare` head [] + _ :: Int  =  LT-_ :: Int `compare` head (_:_) + _ :: Int  =  LT-_ :: Int `compare` ord c + _ :: Int  =  LT-_ :: Int `compare` ord 'a' + _ :: Int  =  LT-_ :: Int `compare` y * _ :: Int  =  LT-_ :: Int `compare` 1 * _ :: Int  =  LT-_ :: Int `compare` id x * _ :: Int  =  LT-_ :: Int `compare` id 0 * _ :: Int  =  LT-_ :: Int `compare` id (id _) * _ :: Int  =  LT-_ :: Int `compare` negate _ * _ :: Int  =  LT-_ :: Int `compare` abs _ * _ :: Int  =  LT-_ :: Int `compare` (_ + _) * _ :: Int  =  LT-_ :: Int `compare` head _ * _ :: Int  =  LT-_ :: Int `compare` ord _ * _ :: Int  =  LT-_ :: Int `compare` h _ :: Int  =  LT-_ :: Int `compare` head zs :: Int  =  LT-_ :: Int `compare` head [0,0] :: Int  =  LT-_ :: Int `compare` head [1] :: Int  =  LT-_ :: Int `compare` head (_:ys) :: Int  =  LT-_ :: Int `compare` head [_,0] :: Int  =  LT-_ :: Int `compare` head (_:_:xs) :: Int  =  LT-_ :: Int `compare` head [_,_] :: Int  =  LT-_ :: Int `compare` head (_:_:_:_) :: Int  =  LT-_ :: Int `compare` head (_:x:_) :: Int  =  LT-_ :: Int `compare` head (_:0:_) :: Int  =  LT-_ :: Int `compare` head (_:id _:_) :: Int  =  LT-_ :: Int `compare` head (_:tail _) :: Int  =  LT-_ :: Int `compare` head (_:(_ ++ _)) :: Int  =  LT-_ :: Int `compare` head (x:xs) :: Int  =  LT-_ :: Int `compare` head [x] :: Int  =  LT-_ :: Int `compare` head (x:_:_) :: Int  =  LT-_ :: Int `compare` head (0:xs) :: Int  =  LT-_ :: Int `compare` head [0] :: Int  =  LT-_ :: Int `compare` head (0:_:_) :: Int  =  LT-_ :: Int `compare` head (id _:xs) :: Int  =  LT-_ :: Int `compare` head [id _] :: Int  =  LT-_ :: Int `compare` head (id _:_:_) :: Int  =  LT-_ :: Int `compare` head (y:_) :: Int  =  LT-_ :: Int `compare` head (1:_) :: Int  =  LT-_ :: Int `compare` head (id x:_) :: Int  =  LT-_ :: Int `compare` head (id 0:_) :: Int  =  LT-_ :: Int `compare` head (id (id _):_) :: Int  =  LT-_ :: Int `compare` head (negate _:_) :: Int  =  LT-_ :: Int `compare` head (abs _:_) :: Int  =  LT-_ :: Int `compare` head (_ + _:_) :: Int  =  LT-_ :: Int `compare` head (head _:_) :: Int  =  LT-_ :: Int `compare` head (ord _:_) :: Int  =  LT-_ :: Int `compare` head (tail xs) :: Int  =  LT-_ :: Int `compare` head (tail []) :: Int  =  LT-_ :: Int `compare` head (tail (_:_)) :: Int  =  LT-_ :: Int `compare` head (_ ++ xs) :: Int  =  LT-_ :: Int `compare` head (_ ++ []) :: Int  =  LT-_ :: Int `compare` head (_ ++ (_:_)) :: Int  =  LT-_ :: Int `compare` head (xs ++ _) :: Int  =  LT-_ :: Int `compare` head ([] ++ _) :: Int  =  LT-_ :: Int `compare` head ((_:_) ++ _) :: Int  =  LT-_ :: Int `compare` head (sort _) :: Int  =  LT-_ :: Int `compare` head (insert _ _) :: Int  =  LT-_ :: Int `compare` ord e :: Int  =  LT-_ :: Int `compare` ord 'b' :: Int  =  LT-_ :: Int `compare` p' :: Bool  =  GT-_ :: Int `compare` not r :: Bool  =  LT-_ :: Int `compare` not (not q) :: Bool  =  LT-_ :: Int `compare` not (not (not p)) :: Bool  =  LT-_ :: Int `compare` not (not (not False)) :: Bool  =  LT-_ :: Int `compare` not (not (not True)) :: Bool  =  LT-_ :: Int `compare` not (not (not (not _))) :: Bool  =  LT-_ :: Int `compare` not (not (_ || _)) :: Bool  =  LT-_ :: Int `compare` not (_ || p) :: Bool  =  LT-_ :: Int `compare` not (_ || False) :: Bool  =  LT-_ :: Int `compare` not (_ || True) :: Bool  =  LT-_ :: Int `compare` not (_ || not _) :: Bool  =  LT-_ :: Int `compare` not (p || _) :: Bool  =  LT-_ :: Int `compare` not (False || _) :: Bool  =  LT-_ :: Int `compare` not (True || _) :: Bool  =  LT-_ :: Int `compare` not (not _ || _) :: Bool  =  LT-_ :: Int `compare` not (_ && _) :: Bool  =  LT-_ :: Int `compare` not (_ == _) :: Bool  =  LT-_ :: Int `compare` not (_ == _) :: Bool  =  LT-_ :: Int `compare` not (odd _) :: Bool  =  LT-_ :: Int `compare` not (even _) :: Bool  =  LT-_ :: Int `compare` not (elem _ _) :: Bool  =  LT-_ :: Int `compare` _ || q :: Bool  =  LT-_ :: Int `compare` _ || not p :: Bool  =  LT-_ :: Int `compare` _ || not False :: Bool  =  LT-_ :: Int `compare` _ || not True :: Bool  =  LT-_ :: Int `compare` _ || not (not _) :: Bool  =  LT-_ :: Int `compare` _ || (_ || _) :: Bool  =  LT-_ :: Int `compare` p || p :: Bool  =  LT-_ :: Int `compare` p || False :: Bool  =  LT-_ :: Int `compare` p || True :: Bool  =  LT-_ :: Int `compare` p || not _ :: Bool  =  LT-_ :: Int `compare` False || p :: Bool  =  LT-_ :: Int `compare` False || False :: Bool  =  LT-_ :: Int `compare` False || True :: Bool  =  LT-_ :: Int `compare` False || not _ :: Bool  =  LT-_ :: Int `compare` True || p :: Bool  =  LT-_ :: Int `compare` True || False :: Bool  =  LT-_ :: Int `compare` True || True :: Bool  =  LT-_ :: Int `compare` True || not _ :: Bool  =  LT-_ :: Int `compare` not _ || p :: Bool  =  LT-_ :: Int `compare` not _ || False :: Bool  =  LT-_ :: Int `compare` not _ || True :: Bool  =  LT-_ :: Int `compare` not _ || not _ :: Bool  =  LT-_ :: Int `compare` _ && p :: Bool  =  LT-_ :: Int `compare` _ && False :: Bool  =  LT-_ :: Int `compare` _ && True :: Bool  =  LT-_ :: Int `compare` _ && not _ :: Bool  =  LT-_ :: Int `compare` q || _ :: Bool  =  LT-_ :: Int `compare` not p || _ :: Bool  =  LT-_ :: Int `compare` not False || _ :: Bool  =  LT-_ :: Int `compare` not True || _ :: Bool  =  LT-_ :: Int `compare` not (not _) || _ :: Bool  =  LT-_ :: Int `compare` (_ || _) || _ :: Bool  =  LT-_ :: Int `compare` p && _ :: Bool  =  LT-_ :: Int `compare` False && _ :: Bool  =  LT-_ :: Int `compare` True && _ :: Bool  =  LT-_ :: Int `compare` not _ && _ :: Bool  =  LT-_ :: Int `compare` _ ==> _ :: Bool  =  LT-_ :: Int `compare` _ == x :: Bool  =  LT-_ :: Int `compare` _ == 0 :: Bool  =  LT-_ :: Int `compare` _ == id _ :: Bool  =  LT-_ :: Int `compare` x == _ :: Bool  =  LT-_ :: Int `compare` 0 == _ :: Bool  =  LT-_ :: Int `compare` id _ == _ :: Bool  =  LT-_ :: Int `compare` _ == p :: Bool  =  LT-_ :: Int `compare` _ == False :: Bool  =  LT-_ :: Int `compare` _ == True :: Bool  =  LT-_ :: Int `compare` _ == not _ :: Bool  =  LT-_ :: Int `compare` p == _ :: Bool  =  LT-_ :: Int `compare` False == _ :: Bool  =  LT-_ :: Int `compare` True == _ :: Bool  =  LT-_ :: Int `compare` not _ == _ :: Bool  =  LT-_ :: Int `compare` _ <= _ :: Bool  =  LT-_ :: Int `compare` _ <= _ :: Bool  =  LT-_ :: Int `compare` odd x :: Bool  =  LT-_ :: Int `compare` odd 0 :: Bool  =  LT-_ :: Int `compare` odd (id _) :: Bool  =  LT-_ :: Int `compare` even x :: Bool  =  LT-_ :: Int `compare` even 0 :: Bool  =  LT-_ :: Int `compare` even (id _) :: Bool  =  LT-_ :: Int `compare` elem _ xs :: Bool  =  LT-_ :: Int `compare` elem _ [] :: Bool  =  LT-_ :: Int `compare` elem _ (_:_) :: Bool  =  LT-_ :: Int `compare` elem x _ :: Bool  =  LT-_ :: Int `compare` elem 0 _ :: Bool  =  LT-_ :: Int `compare` elem (id _) _ :: Bool  =  LT-_ :: Int `compare` c' :: Char  =  GT-_ :: Int `compare` 'A' :: Char  =  LT-_ :: Int `compare` xs' :: [Int]  =  LT-_ :: Int `compare` [0,0,0] :: [Int]  =  LT-_ :: Int `compare` [0,1] :: [Int]  =  LT-_ :: Int `compare` [1,0] :: [Int]  =  LT-_ :: Int `compare` [-1] :: [Int]  =  LT-_ :: Int `compare` _:zs :: [Int]  =  LT-_ :: Int `compare` [_,0,0] :: [Int]  =  LT-_ :: Int `compare` [_,1] :: [Int]  =  LT-_ :: Int `compare` _:_:ys :: [Int]  =  LT-_ :: Int `compare` [_,_,0] :: [Int]  =  LT-_ :: Int `compare` _:_:_:xs :: [Int]  =  LT-_ :: Int `compare` [_,_,_] :: [Int]  =  LT-_ :: Int `compare` _:_:_:_:_ :: [Int]  =  LT-_ :: Int `compare` _:_:x:_ :: [Int]  =  LT-_ :: Int `compare` _:_:0:_ :: [Int]  =  LT-_ :: Int `compare` _:_:id _:_ :: [Int]  =  LT-_ :: Int `compare` _:_:tail _ :: [Int]  =  LT-_ :: Int `compare` _:_:(_ ++ _) :: [Int]  =  LT-_ :: Int `compare` _:x:xs :: [Int]  =  LT-_ :: Int `compare` [_,x] :: [Int]  =  LT-_ :: Int `compare` _:x:_:_ :: [Int]  =  LT-_ :: Int `compare` _:0:xs :: [Int]  =  LT-_ :: Int `compare` [_,0] :: [Int]  =  LT-_ :: Int `compare` _:0:_:_ :: [Int]  =  LT-_ :: Int `compare` _:id _:xs :: [Int]  =  LT-_ :: Int `compare` [_,id _] :: [Int]  =  LT-_ :: Int `compare` _:id _:_:_ :: [Int]  =  LT-_ :: Int `compare` _:y:_ :: [Int]  =  LT-_ :: Int `compare` _:1:_ :: [Int]  =  LT-_ :: Int `compare` _:id x:_ :: [Int]  =  LT-_ :: Int `compare` _:id 0:_ :: [Int]  =  LT-_ :: Int `compare` _:id (id _):_ :: [Int]  =  LT-_ :: Int `compare` _:negate _:_ :: [Int]  =  LT-_ :: Int `compare` _:abs _:_ :: [Int]  =  LT-_ :: Int `compare` _:_ + _:_ :: [Int]  =  LT-_ :: Int `compare` _:head _:_ :: [Int]  =  LT-_ :: Int `compare` _:ord _:_ :: [Int]  =  LT-_ :: Int `compare` _:tail xs :: [Int]  =  LT-_ :: Int `compare` _:tail [] :: [Int]  =  LT-_ :: Int `compare` _:tail (_:_) :: [Int]  =  LT-_ :: Int `compare` _:(_ ++ xs) :: [Int]  =  LT-_ :: Int `compare` _:(_ ++ []) :: [Int]  =  LT-_ :: Int `compare` _:(_ ++ (_:_)) :: [Int]  =  LT-_ :: Int `compare` _:(xs ++ _) :: [Int]  =  LT-_ :: Int `compare` _:([] ++ _) :: [Int]  =  LT-_ :: Int `compare` _:((_:_) ++ _) :: [Int]  =  LT-_ :: Int `compare` _:sort _ :: [Int]  =  LT-_ :: Int `compare` _:insert _ _ :: [Int]  =  LT-_ :: Int `compare` x:ys :: [Int]  =  LT-_ :: Int `compare` [x,0] :: [Int]  =  LT-_ :: Int `compare` x:_:xs :: [Int]  =  LT-_ :: Int `compare` [x,_] :: [Int]  =  LT-_ :: Int `compare` x:_:_:_ :: [Int]  =  LT-_ :: Int `compare` x:x:_ :: [Int]  =  LT-_ :: Int `compare` x:0:_ :: [Int]  =  LT-_ :: Int `compare` x:id _:_ :: [Int]  =  LT-_ :: Int `compare` x:tail _ :: [Int]  =  LT-_ :: Int `compare` x:(_ ++ _) :: [Int]  =  LT-_ :: Int `compare` 0:ys :: [Int]  =  LT-_ :: Int `compare` [0,0] :: [Int]  =  LT-_ :: Int `compare` 0:_:xs :: [Int]  =  LT-_ :: Int `compare` [0,_] :: [Int]  =  LT-_ :: Int `compare` 0:_:_:_ :: [Int]  =  LT-_ :: Int `compare` 0:x:_ :: [Int]  =  LT-_ :: Int `compare` 0:0:_ :: [Int]  =  LT-_ :: Int `compare` 0:id _:_ :: [Int]  =  LT-_ :: Int `compare` 0:tail _ :: [Int]  =  LT-_ :: Int `compare` 0:(_ ++ _) :: [Int]  =  LT-_ :: Int `compare` id _:ys :: [Int]  =  LT-_ :: Int `compare` [id _,0] :: [Int]  =  LT-_ :: Int `compare` id _:_:xs :: [Int]  =  LT-_ :: Int `compare` [id _,_] :: [Int]  =  LT-_ :: Int `compare` id _:_:_:_ :: [Int]  =  LT-_ :: Int `compare` id _:x:_ :: [Int]  =  LT-_ :: Int `compare` id _:0:_ :: [Int]  =  LT-_ :: Int `compare` id _:id _:_ :: [Int]  =  LT-_ :: Int `compare` id _:tail _ :: [Int]  =  LT-_ :: Int `compare` id _:(_ ++ _) :: [Int]  =  LT-_ :: Int `compare` y:xs :: [Int]  =  LT-_ :: Int `compare` [y] :: [Int]  =  LT-_ :: Int `compare` y:_:_ :: [Int]  =  LT-_ :: Int `compare` 1:xs :: [Int]  =  LT-_ :: Int `compare` [1] :: [Int]  =  LT-_ :: Int `compare` 1:_:_ :: [Int]  =  LT-_ :: Int `compare` id x:xs :: [Int]  =  LT-_ :: Int `compare` [id x] :: [Int]  =  LT-_ :: Int `compare` id x:_:_ :: [Int]  =  LT-_ :: Int `compare` id 0:xs :: [Int]  =  LT-_ :: Int `compare` [id 0] :: [Int]  =  LT-_ :: Int `compare` id 0:_:_ :: [Int]  =  LT-_ :: Int `compare` id (id _):xs :: [Int]  =  LT-_ :: Int `compare` [id (id _)] :: [Int]  =  LT-_ :: Int `compare` id (id _):_:_ :: [Int]  =  LT-_ :: Int `compare` negate _:xs :: [Int]  =  LT-_ :: Int `compare` [negate _] :: [Int]  =  LT-_ :: Int `compare` negate _:_:_ :: [Int]  =  LT-_ :: Int `compare` abs _:xs :: [Int]  =  LT-_ :: Int `compare` [abs _] :: [Int]  =  LT-_ :: Int `compare` abs _:_:_ :: [Int]  =  LT-_ :: Int `compare` _ + _:xs :: [Int]  =  LT-_ :: Int `compare` [_ + _] :: [Int]  =  LT-_ :: Int `compare` _ + _:_:_ :: [Int]  =  LT-_ :: Int `compare` head _:xs :: [Int]  =  LT-_ :: Int `compare` [head _] :: [Int]  =  LT-_ :: Int `compare` head _:_:_ :: [Int]  =  LT-_ :: Int `compare` ord _:xs :: [Int]  =  LT-_ :: Int `compare` [ord _] :: [Int]  =  LT-_ :: Int `compare` ord _:_:_ :: [Int]  =  LT-_ :: Int `compare` z:_ :: [Int]  =  LT-_ :: Int `compare` (-1):_ :: [Int]  =  LT-_ :: Int `compare` id y:_ :: [Int]  =  LT-_ :: Int `compare` id 1:_ :: [Int]  =  LT-_ :: Int `compare` id (id x):_ :: [Int]  =  LT-_ :: Int `compare` id (id 0):_ :: [Int]  =  LT-_ :: Int `compare` id (id (id _)):_ :: [Int]  =  LT-_ :: Int `compare` id (negate _):_ :: [Int]  =  LT-_ :: Int `compare` id (abs _):_ :: [Int]  =  LT-_ :: Int `compare` id (_ + _):_ :: [Int]  =  LT-_ :: Int `compare` id (head _):_ :: [Int]  =  LT-_ :: Int `compare` id (ord _):_ :: [Int]  =  LT-_ :: Int `compare` negate x:_ :: [Int]  =  LT-_ :: Int `compare` negate 0:_ :: [Int]  =  LT-_ :: Int `compare` negate (id _):_ :: [Int]  =  LT-_ :: Int `compare` abs x:_ :: [Int]  =  LT-_ :: Int `compare` abs 0:_ :: [Int]  =  LT-_ :: Int `compare` abs (id _):_ :: [Int]  =  LT-_ :: Int `compare` _ + x:_ :: [Int]  =  LT-_ :: Int `compare` _ + 0:_ :: [Int]  =  LT-_ :: Int `compare` _ + id _:_ :: [Int]  =  LT-_ :: Int `compare` x + _:_ :: [Int]  =  LT-_ :: Int `compare` 0 + _:_ :: [Int]  =  LT-_ :: Int `compare` id _ + _:_ :: [Int]  =  LT-_ :: Int `compare` _ * _:_ :: [Int]  =  LT-_ :: Int `compare` f _:_ :: [Int]  =  LT-_ :: Int `compare` head xs:_ :: [Int]  =  LT-_ :: Int `compare` head []:_ :: [Int]  =  LT-_ :: Int `compare` head (_:_):_ :: [Int]  =  LT-_ :: Int `compare` ord c:_ :: [Int]  =  LT-_ :: Int `compare` ord 'a':_ :: [Int]  =  LT-_ :: Int `compare` tail ys :: [Int]  =  LT-_ :: Int `compare` tail [0] :: [Int]  =  LT-_ :: Int `compare` tail (_:xs) :: [Int]  =  LT-_ :: Int `compare` tail [_] :: [Int]  =  LT-_ :: Int `compare` tail (_:_:_) :: [Int]  =  LT-_ :: Int `compare` tail (x:_) :: [Int]  =  LT-_ :: Int `compare` tail (0:_) :: [Int]  =  LT-_ :: Int `compare` tail (id _:_) :: [Int]  =  LT-_ :: Int `compare` tail (tail _) :: [Int]  =  LT-_ :: Int `compare` tail (_ ++ _) :: [Int]  =  LT-_ :: Int `compare` _ ++ ys :: [Int]  =  LT-_ :: Int `compare` _ ++ [0] :: [Int]  =  LT-_ :: Int `compare` _ ++ (_:xs) :: [Int]  =  LT-_ :: Int `compare` _ ++ [_] :: [Int]  =  LT-_ :: Int `compare` _ ++ (_:_:_) :: [Int]  =  LT-_ :: Int `compare` _ ++ (x:_) :: [Int]  =  LT-_ :: Int `compare` _ ++ (0:_) :: [Int]  =  LT-_ :: Int `compare` _ ++ (id _:_) :: [Int]  =  LT-_ :: Int `compare` _ ++ tail _ :: [Int]  =  LT-_ :: Int `compare` _ ++ (_ ++ _) :: [Int]  =  LT-_ :: Int `compare` xs ++ xs :: [Int]  =  LT-_ :: Int `compare` xs ++ [] :: [Int]  =  LT-_ :: Int `compare` xs ++ (_:_) :: [Int]  =  LT-_ :: Int `compare` [] ++ xs :: [Int]  =  LT-_ :: Int `compare` [] ++ [] :: [Int]  =  LT-_ :: Int `compare` [] ++ (_:_) :: [Int]  =  LT-_ :: Int `compare` (_:_) ++ xs :: [Int]  =  LT-_ :: Int `compare` (_:_) ++ [] :: [Int]  =  LT-_ :: Int `compare` (_:_) ++ (_:_) :: [Int]  =  LT-_ :: Int `compare` ys ++ _ :: [Int]  =  LT-_ :: Int `compare` [0] ++ _ :: [Int]  =  LT-_ :: Int `compare` (_:xs) ++ _ :: [Int]  =  LT-_ :: Int `compare` [_] ++ _ :: [Int]  =  LT-_ :: Int `compare` (_:_:_) ++ _ :: [Int]  =  LT-_ :: Int `compare` (x:_) ++ _ :: [Int]  =  LT-_ :: Int `compare` (0:_) ++ _ :: [Int]  =  LT-_ :: Int `compare` (id _:_) ++ _ :: [Int]  =  LT-_ :: Int `compare` tail _ ++ _ :: [Int]  =  LT-_ :: Int `compare` (_ ++ _) ++ _ :: [Int]  =  LT-_ :: Int `compare` sort xs :: [Int]  =  LT-_ :: Int `compare` sort [] :: [Int]  =  LT-_ :: Int `compare` sort (_:_) :: [Int]  =  LT-_ :: Int `compare` insert _ xs :: [Int]  =  LT-_ :: Int `compare` insert _ [] :: [Int]  =  LT-_ :: Int `compare` insert _ (_:_) :: [Int]  =  LT-_ :: Int `compare` insert x _ :: [Int]  =  LT-_ :: Int `compare` insert 0 _ :: [Int]  =  LT-_ :: Int `compare` insert (id _) _ :: [Int]  =  LT-_ :: Int `compare` (y +) :: Int -> Int  =  LT-_ :: Int `compare` (1 +) :: Int -> Int  =  LT-_ :: Int `compare` (id x +) :: Int -> Int  =  LT-_ :: Int `compare` (id 0 +) :: Int -> Int  =  LT-_ :: Int `compare` (id (id _) +) :: Int -> Int  =  LT-_ :: Int `compare` (negate _ +) :: Int -> Int  =  LT-_ :: Int `compare` (abs _ +) :: Int -> Int  =  LT-_ :: Int `compare` ((_ + _) +) :: Int -> Int  =  LT-_ :: Int `compare` (head _ +) :: Int -> Int  =  LT-_ :: Int `compare` (ord _ +) :: Int -> Int  =  LT-_ :: Int `compare` (x *) :: Int -> Int  =  LT-_ :: Int `compare` (0 *) :: Int -> Int  =  LT-_ :: Int `compare` (id _ *) :: Int -> Int  =  LT-_ :: Int `compare` g :: Int -> Int  =  LT-_ :: Int `compare` (p ||) :: Bool -> Bool  =  LT-_ :: Int `compare` (False ||) :: Bool -> Bool  =  LT-_ :: Int `compare` (True ||) :: Bool -> Bool  =  LT-_ :: Int `compare` (not _ ||) :: Bool -> Bool  =  LT-_ :: Int `compare` (_ &&) :: Bool -> Bool  =  LT-_ :: Int `compare` (==>) :: Bool -> Bool -> Bool  =  LT-x :: Int `compare` x' :: Int  =  LT-x :: Int `compare` 2 :: Int  =  LT-x :: Int `compare` id z :: Int  =  LT-x :: Int `compare` id (-1) :: Int  =  LT-x :: Int `compare` id (id y) :: Int  =  LT-x :: Int `compare` id (id 1) :: Int  =  LT-x :: Int `compare` id (id (id x)) :: Int  =  LT-x :: Int `compare` id (id (id 0)) :: Int  =  LT-x :: Int `compare` id (id (id (id _))) :: Int  =  LT-x :: Int `compare` id (id (negate _)) :: Int  =  LT-x :: Int `compare` id (id (abs _)) :: Int  =  LT-x :: Int `compare` id (id (_ + _)) :: Int  =  LT-x :: Int `compare` id (id (head _)) :: Int  =  LT-x :: Int `compare` id (id (ord _)) :: Int  =  LT-x :: Int `compare` id (negate x) :: Int  =  LT-x :: Int `compare` id (negate 0) :: Int  =  LT-x :: Int `compare` id (negate (id _)) :: Int  =  LT-x :: Int `compare` id (abs x) :: Int  =  LT-x :: Int `compare` id (abs 0) :: Int  =  LT-x :: Int `compare` id (abs (id _)) :: Int  =  LT-x :: Int `compare` id (_ + x) :: Int  =  LT-x :: Int `compare` id (_ + 0) :: Int  =  LT-x :: Int `compare` id (_ + id _) :: Int  =  LT-x :: Int `compare` id (x + _) :: Int  =  LT-x :: Int `compare` id (0 + _) :: Int  =  LT-x :: Int `compare` id (id _ + _) :: Int  =  LT-x :: Int `compare` id (_ * _) :: Int  =  LT-x :: Int `compare` id (f _) :: Int  =  LT-x :: Int `compare` id (head xs) :: Int  =  LT-x :: Int `compare` id (head []) :: Int  =  LT-x :: Int `compare` id (head (_:_)) :: Int  =  LT-x :: Int `compare` id (ord c) :: Int  =  LT-x :: Int `compare` id (ord 'a') :: Int  =  LT-x :: Int `compare` negate y :: Int  =  LT-x :: Int `compare` negate 1 :: Int  =  LT-x :: Int `compare` negate (id x) :: Int  =  LT-x :: Int `compare` negate (id 0) :: Int  =  LT-x :: Int `compare` negate (id (id _)) :: Int  =  LT-x :: Int `compare` negate (negate _) :: Int  =  LT-x :: Int `compare` negate (abs _) :: Int  =  LT-x :: Int `compare` negate (_ + _) :: Int  =  LT-x :: Int `compare` negate (head _) :: Int  =  LT-x :: Int `compare` negate (ord _) :: Int  =  LT-x :: Int `compare` abs y :: Int  =  LT-x :: Int `compare` abs 1 :: Int  =  LT-x :: Int `compare` abs (id x) :: Int  =  LT-x :: Int `compare` abs (id 0) :: Int  =  LT-x :: Int `compare` abs (id (id _)) :: Int  =  LT-x :: Int `compare` abs (negate _) :: Int  =  LT-x :: Int `compare` abs (abs _) :: Int  =  LT-x :: Int `compare` abs (_ + _) :: Int  =  LT-x :: Int `compare` abs (head _) :: Int  =  LT-x :: Int `compare` abs (ord _) :: Int  =  LT-x :: Int `compare` _ + y :: Int  =  LT-x :: Int `compare` _ + 1 :: Int  =  LT-x :: Int `compare` _ + id x :: Int  =  LT-x :: Int `compare` _ + id 0 :: Int  =  LT-x :: Int `compare` _ + id (id _) :: Int  =  LT-x :: Int `compare` _ + negate _ :: Int  =  LT-x :: Int `compare` _ + abs _ :: Int  =  LT-x :: Int `compare` _ + (_ + _) :: Int  =  LT-x :: Int `compare` _ + head _ :: Int  =  LT-x :: Int `compare` _ + ord _ :: Int  =  LT-x :: Int `compare` x + x :: Int  =  LT-x :: Int `compare` x + 0 :: Int  =  LT-x :: Int `compare` x + id _ :: Int  =  LT-x :: Int `compare` 0 + x :: Int  =  LT-x :: Int `compare` 0 + 0 :: Int  =  LT-x :: Int `compare` 0 + id _ :: Int  =  LT-x :: Int `compare` id _ + x :: Int  =  LT-x :: Int `compare` id _ + 0 :: Int  =  LT-x :: Int `compare` id _ + id _ :: Int  =  LT-x :: Int `compare` _ * x :: Int  =  LT-x :: Int `compare` _ * 0 :: Int  =  LT-x :: Int `compare` _ * id _ :: Int  =  LT-x :: Int `compare` f x :: Int  =  LT-x :: Int `compare` f 0 :: Int  =  LT-x :: Int `compare` f (id _) :: Int  =  LT-x :: Int `compare` y + _ :: Int  =  LT-x :: Int `compare` 1 + _ :: Int  =  LT-x :: Int `compare` id x + _ :: Int  =  LT-x :: Int `compare` id 0 + _ :: Int  =  LT-x :: Int `compare` id (id _) + _ :: Int  =  LT-x :: Int `compare` negate _ + _ :: Int  =  LT-x :: Int `compare` abs _ + _ :: Int  =  LT-x :: Int `compare` (_ + _) + _ :: Int  =  LT-x :: Int `compare` head _ + _ :: Int  =  LT-x :: Int `compare` ord _ + _ :: Int  =  LT-x :: Int `compare` x * _ :: Int  =  LT-x :: Int `compare` 0 * _ :: Int  =  LT-x :: Int `compare` id _ * _ :: Int  =  LT-x :: Int `compare` g _ :: Int  =  LT-x :: Int `compare` head ys :: Int  =  LT-x :: Int `compare` head [0] :: Int  =  LT-x :: Int `compare` head (_:xs) :: Int  =  LT-x :: Int `compare` head [_] :: Int  =  LT-x :: Int `compare` head (_:_:_) :: Int  =  LT-x :: Int `compare` head (x:_) :: Int  =  LT-x :: Int `compare` head (0:_) :: Int  =  LT-x :: Int `compare` head (id _:_) :: Int  =  LT-x :: Int `compare` head (tail _) :: Int  =  LT-x :: Int `compare` head (_ ++ _) :: Int  =  LT-x :: Int `compare` ord d :: Int  =  LT-x :: Int `compare` ord ' ' :: Int  =  LT-x :: Int `compare` r :: Bool  =  GT-x :: Int `compare` not q :: Bool  =  LT-x :: Int `compare` not (not p) :: Bool  =  LT-x :: Int `compare` not (not False) :: Bool  =  LT-x :: Int `compare` not (not True) :: Bool  =  LT-x :: Int `compare` not (not (not _)) :: Bool  =  LT-x :: Int `compare` not (_ || _) :: Bool  =  LT-x :: Int `compare` _ || p :: Bool  =  LT-x :: Int `compare` _ || False :: Bool  =  LT-x :: Int `compare` _ || True :: Bool  =  LT-x :: Int `compare` _ || not _ :: Bool  =  LT-x :: Int `compare` p || _ :: Bool  =  LT-x :: Int `compare` False || _ :: Bool  =  LT-x :: Int `compare` True || _ :: Bool  =  LT-x :: Int `compare` not _ || _ :: Bool  =  LT-x :: Int `compare` _ && _ :: Bool  =  LT-x :: Int `compare` _ == _ :: Bool  =  LT-x :: Int `compare` _ == _ :: Bool  =  LT-x :: Int `compare` odd _ :: Bool  =  LT-x :: Int `compare` even _ :: Bool  =  LT-x :: Int `compare` elem _ _ :: Bool  =  LT-x :: Int `compare` e :: Char  =  GT-x :: Int `compare` 'b' :: Char  =  LT-x :: Int `compare` zs :: [Int]  =  LT-x :: Int `compare` [0,0] :: [Int]  =  LT-x :: Int `compare` [1] :: [Int]  =  LT-x :: Int `compare` _:ys :: [Int]  =  LT-x :: Int `compare` [_,0] :: [Int]  =  LT-x :: Int `compare` _:_:xs :: [Int]  =  LT-x :: Int `compare` [_,_] :: [Int]  =  LT-x :: Int `compare` _:_:_:_ :: [Int]  =  LT-x :: Int `compare` _:x:_ :: [Int]  =  LT-x :: Int `compare` _:0:_ :: [Int]  =  LT-x :: Int `compare` _:id _:_ :: [Int]  =  LT-x :: Int `compare` _:tail _ :: [Int]  =  LT-x :: Int `compare` _:(_ ++ _) :: [Int]  =  LT-x :: Int `compare` x:xs :: [Int]  =  LT-x :: Int `compare` [x] :: [Int]  =  LT-x :: Int `compare` x:_:_ :: [Int]  =  LT-x :: Int `compare` 0:xs :: [Int]  =  LT-x :: Int `compare` [0] :: [Int]  =  LT-x :: Int `compare` 0:_:_ :: [Int]  =  LT-x :: Int `compare` id _:xs :: [Int]  =  LT-x :: Int `compare` [id _] :: [Int]  =  LT-x :: Int `compare` id _:_:_ :: [Int]  =  LT-x :: Int `compare` y:_ :: [Int]  =  LT-x :: Int `compare` 1:_ :: [Int]  =  LT-x :: Int `compare` id x:_ :: [Int]  =  LT-x :: Int `compare` id 0:_ :: [Int]  =  LT-x :: Int `compare` id (id _):_ :: [Int]  =  LT-x :: Int `compare` negate _:_ :: [Int]  =  LT-x :: Int `compare` abs _:_ :: [Int]  =  LT-x :: Int `compare` _ + _:_ :: [Int]  =  LT-x :: Int `compare` head _:_ :: [Int]  =  LT-x :: Int `compare` ord _:_ :: [Int]  =  LT-x :: Int `compare` tail xs :: [Int]  =  LT-x :: Int `compare` tail [] :: [Int]  =  LT-x :: Int `compare` tail (_:_) :: [Int]  =  LT-x :: Int `compare` _ ++ xs :: [Int]  =  LT-x :: Int `compare` _ ++ [] :: [Int]  =  LT-x :: Int `compare` _ ++ (_:_) :: [Int]  =  LT-x :: Int `compare` xs ++ _ :: [Int]  =  LT-x :: Int `compare` [] ++ _ :: [Int]  =  LT-x :: Int `compare` (_:_) ++ _ :: [Int]  =  LT-x :: Int `compare` sort _ :: [Int]  =  LT-x :: Int `compare` insert _ _ :: [Int]  =  LT-x :: Int `compare` (x +) :: Int -> Int  =  LT-x :: Int `compare` (0 +) :: Int -> Int  =  LT-x :: Int `compare` (id _ +) :: Int -> Int  =  LT-x :: Int `compare` (_ *) :: Int -> Int  =  LT-x :: Int `compare` f :: Int -> Int  =  LT-x :: Int `compare` (_ ||) :: Bool -> Bool  =  LT-x :: Int `compare` (&&) :: Bool -> Bool -> Bool  =  LT-0 :: Int `compare` x' :: Int  =  GT-0 :: Int `compare` 2 :: Int  =  LT-0 :: Int `compare` id z :: Int  =  LT-0 :: Int `compare` id (-1) :: Int  =  LT-0 :: Int `compare` id (id y) :: Int  =  LT-0 :: Int `compare` id (id 1) :: Int  =  LT-0 :: Int `compare` id (id (id x)) :: Int  =  LT-0 :: Int `compare` id (id (id 0)) :: Int  =  LT-0 :: Int `compare` id (id (id (id _))) :: Int  =  LT-0 :: Int `compare` id (id (negate _)) :: Int  =  LT-0 :: Int `compare` id (id (abs _)) :: Int  =  LT-0 :: Int `compare` id (id (_ + _)) :: Int  =  LT-0 :: Int `compare` id (id (head _)) :: Int  =  LT-0 :: Int `compare` id (id (ord _)) :: Int  =  LT-0 :: Int `compare` id (negate x) :: Int  =  LT-0 :: Int `compare` id (negate 0) :: Int  =  LT-0 :: Int `compare` id (negate (id _)) :: Int  =  LT-0 :: Int `compare` id (abs x) :: Int  =  LT-0 :: Int `compare` id (abs 0) :: Int  =  LT-0 :: Int `compare` id (abs (id _)) :: Int  =  LT-0 :: Int `compare` id (_ + x) :: Int  =  LT-0 :: Int `compare` id (_ + 0) :: Int  =  LT-0 :: Int `compare` id (_ + id _) :: Int  =  LT-0 :: Int `compare` id (x + _) :: Int  =  LT-0 :: Int `compare` id (0 + _) :: Int  =  LT-0 :: Int `compare` id (id _ + _) :: Int  =  LT-0 :: Int `compare` id (_ * _) :: Int  =  LT-0 :: Int `compare` id (f _) :: Int  =  LT-0 :: Int `compare` id (head xs) :: Int  =  LT-0 :: Int `compare` id (head []) :: Int  =  LT-0 :: Int `compare` id (head (_:_)) :: Int  =  LT-0 :: Int `compare` id (ord c) :: Int  =  LT-0 :: Int `compare` id (ord 'a') :: Int  =  LT-0 :: Int `compare` negate y :: Int  =  LT-0 :: Int `compare` negate 1 :: Int  =  LT-0 :: Int `compare` negate (id x) :: Int  =  LT-0 :: Int `compare` negate (id 0) :: Int  =  LT-0 :: Int `compare` negate (id (id _)) :: Int  =  LT-0 :: Int `compare` negate (negate _) :: Int  =  LT-0 :: Int `compare` negate (abs _) :: Int  =  LT-0 :: Int `compare` negate (_ + _) :: Int  =  LT-0 :: Int `compare` negate (head _) :: Int  =  LT-0 :: Int `compare` negate (ord _) :: Int  =  LT-0 :: Int `compare` abs y :: Int  =  LT-0 :: Int `compare` abs 1 :: Int  =  LT-0 :: Int `compare` abs (id x) :: Int  =  LT-0 :: Int `compare` abs (id 0) :: Int  =  LT-0 :: Int `compare` abs (id (id _)) :: Int  =  LT-0 :: Int `compare` abs (negate _) :: Int  =  LT-0 :: Int `compare` abs (abs _) :: Int  =  LT-0 :: Int `compare` abs (_ + _) :: Int  =  LT-0 :: Int `compare` abs (head _) :: Int  =  LT-0 :: Int `compare` abs (ord _) :: Int  =  LT-0 :: Int `compare` _ + y :: Int  =  LT-0 :: Int `compare` _ + 1 :: Int  =  LT-0 :: Int `compare` _ + id x :: Int  =  LT-0 :: Int `compare` _ + id 0 :: Int  =  LT-0 :: Int `compare` _ + id (id _) :: Int  =  LT-0 :: Int `compare` _ + negate _ :: Int  =  LT-0 :: Int `compare` _ + abs _ :: Int  =  LT-0 :: Int `compare` _ + (_ + _) :: Int  =  LT-0 :: Int `compare` _ + head _ :: Int  =  LT-0 :: Int `compare` _ + ord _ :: Int  =  LT-0 :: Int `compare` x + x :: Int  =  LT-0 :: Int `compare` x + 0 :: Int  =  LT-0 :: Int `compare` x + id _ :: Int  =  LT-0 :: Int `compare` 0 + x :: Int  =  LT-0 :: Int `compare` 0 + 0 :: Int  =  LT-0 :: Int `compare` 0 + id _ :: Int  =  LT-0 :: Int `compare` id _ + x :: Int  =  LT-0 :: Int `compare` id _ + 0 :: Int  =  LT-0 :: Int `compare` id _ + id _ :: Int  =  LT-0 :: Int `compare` _ * x :: Int  =  LT-0 :: Int `compare` _ * 0 :: Int  =  LT-0 :: Int `compare` _ * id _ :: Int  =  LT-0 :: Int `compare` f x :: Int  =  LT-0 :: Int `compare` f 0 :: Int  =  LT-0 :: Int `compare` f (id _) :: Int  =  LT-0 :: Int `compare` y + _ :: Int  =  LT-0 :: Int `compare` 1 + _ :: Int  =  LT-0 :: Int `compare` id x + _ :: Int  =  LT-0 :: Int `compare` id 0 + _ :: Int  =  LT-0 :: Int `compare` id (id _) + _ :: Int  =  LT-0 :: Int `compare` negate _ + _ :: Int  =  LT-0 :: Int `compare` abs _ + _ :: Int  =  LT-0 :: Int `compare` (_ + _) + _ :: Int  =  LT-0 :: Int `compare` head _ + _ :: Int  =  LT-0 :: Int `compare` ord _ + _ :: Int  =  LT-0 :: Int `compare` x * _ :: Int  =  LT-0 :: Int `compare` 0 * _ :: Int  =  LT-0 :: Int `compare` id _ * _ :: Int  =  LT-0 :: Int `compare` g _ :: Int  =  LT-0 :: Int `compare` head ys :: Int  =  LT-0 :: Int `compare` head [0] :: Int  =  LT-0 :: Int `compare` head (_:xs) :: Int  =  LT-0 :: Int `compare` head [_] :: Int  =  LT-0 :: Int `compare` head (_:_:_) :: Int  =  LT-0 :: Int `compare` head (x:_) :: Int  =  LT-0 :: Int `compare` head (0:_) :: Int  =  LT-0 :: Int `compare` head (id _:_) :: Int  =  LT-0 :: Int `compare` head (tail _) :: Int  =  LT-0 :: Int `compare` head (_ ++ _) :: Int  =  LT-0 :: Int `compare` ord d :: Int  =  LT-0 :: Int `compare` ord ' ' :: Int  =  LT-0 :: Int `compare` r :: Bool  =  GT-0 :: Int `compare` not q :: Bool  =  LT-0 :: Int `compare` not (not p) :: Bool  =  LT-0 :: Int `compare` not (not False) :: Bool  =  LT-0 :: Int `compare` not (not True) :: Bool  =  LT-0 :: Int `compare` not (not (not _)) :: Bool  =  LT-0 :: Int `compare` not (_ || _) :: Bool  =  LT-0 :: Int `compare` _ || p :: Bool  =  LT-0 :: Int `compare` _ || False :: Bool  =  LT-0 :: Int `compare` _ || True :: Bool  =  LT-0 :: Int `compare` _ || not _ :: Bool  =  LT-0 :: Int `compare` p || _ :: Bool  =  LT-0 :: Int `compare` False || _ :: Bool  =  LT-0 :: Int `compare` True || _ :: Bool  =  LT-0 :: Int `compare` not _ || _ :: Bool  =  LT-0 :: Int `compare` _ && _ :: Bool  =  LT-0 :: Int `compare` _ == _ :: Bool  =  LT-0 :: Int `compare` _ == _ :: Bool  =  LT-0 :: Int `compare` odd _ :: Bool  =  LT-0 :: Int `compare` even _ :: Bool  =  LT-0 :: Int `compare` elem _ _ :: Bool  =  LT-0 :: Int `compare` e :: Char  =  GT-0 :: Int `compare` 'b' :: Char  =  GT-0 :: Int `compare` zs :: [Int]  =  GT-0 :: Int `compare` [0,0] :: [Int]  =  LT-0 :: Int `compare` [1] :: [Int]  =  LT-0 :: Int `compare` _:ys :: [Int]  =  LT-0 :: Int `compare` [_,0] :: [Int]  =  LT-0 :: Int `compare` _:_:xs :: [Int]  =  LT-0 :: Int `compare` [_,_] :: [Int]  =  LT-0 :: Int `compare` _:_:_:_ :: [Int]  =  LT-0 :: Int `compare` _:x:_ :: [Int]  =  LT-0 :: Int `compare` _:0:_ :: [Int]  =  LT-0 :: Int `compare` _:id _:_ :: [Int]  =  LT-0 :: Int `compare` _:tail _ :: [Int]  =  LT-0 :: Int `compare` _:(_ ++ _) :: [Int]  =  LT-0 :: Int `compare` x:xs :: [Int]  =  LT-0 :: Int `compare` [x] :: [Int]  =  LT-0 :: Int `compare` x:_:_ :: [Int]  =  LT-0 :: Int `compare` 0:xs :: [Int]  =  LT-0 :: Int `compare` [0] :: [Int]  =  LT-0 :: Int `compare` 0:_:_ :: [Int]  =  LT-0 :: Int `compare` id _:xs :: [Int]  =  LT-0 :: Int `compare` [id _] :: [Int]  =  LT-0 :: Int `compare` id _:_:_ :: [Int]  =  LT-0 :: Int `compare` y:_ :: [Int]  =  LT-0 :: Int `compare` 1:_ :: [Int]  =  LT-0 :: Int `compare` id x:_ :: [Int]  =  LT-0 :: Int `compare` id 0:_ :: [Int]  =  LT-0 :: Int `compare` id (id _):_ :: [Int]  =  LT-0 :: Int `compare` negate _:_ :: [Int]  =  LT-0 :: Int `compare` abs _:_ :: [Int]  =  LT-0 :: Int `compare` _ + _:_ :: [Int]  =  LT-0 :: Int `compare` head _:_ :: [Int]  =  LT-0 :: Int `compare` ord _:_ :: [Int]  =  LT-0 :: Int `compare` tail xs :: [Int]  =  LT-0 :: Int `compare` tail [] :: [Int]  =  LT-0 :: Int `compare` tail (_:_) :: [Int]  =  LT-0 :: Int `compare` _ ++ xs :: [Int]  =  LT-0 :: Int `compare` _ ++ [] :: [Int]  =  LT-0 :: Int `compare` _ ++ (_:_) :: [Int]  =  LT-0 :: Int `compare` xs ++ _ :: [Int]  =  LT-0 :: Int `compare` [] ++ _ :: [Int]  =  LT-0 :: Int `compare` (_:_) ++ _ :: [Int]  =  LT-0 :: Int `compare` sort _ :: [Int]  =  LT-0 :: Int `compare` insert _ _ :: [Int]  =  LT-0 :: Int `compare` (x +) :: Int -> Int  =  LT-0 :: Int `compare` (0 +) :: Int -> Int  =  LT-0 :: Int `compare` (id _ +) :: Int -> Int  =  LT-0 :: Int `compare` (_ *) :: Int -> Int  =  LT-0 :: Int `compare` f :: Int -> Int  =  GT-0 :: Int `compare` (_ ||) :: Bool -> Bool  =  LT-0 :: Int `compare` (&&) :: Bool -> Bool -> Bool  =  LT-id _ :: Int `compare` x' :: Int  =  GT-id _ :: Int `compare` 2 :: Int  =  GT-id _ :: Int `compare` id z :: Int  =  LT-id _ :: Int `compare` id (-1) :: Int  =  LT-id _ :: Int `compare` id (id y) :: Int  =  LT-id _ :: Int `compare` id (id 1) :: Int  =  LT-id _ :: Int `compare` id (id (id x)) :: Int  =  LT-id _ :: Int `compare` id (id (id 0)) :: Int  =  LT-id _ :: Int `compare` id (id (id (id _))) :: Int  =  LT-id _ :: Int `compare` id (id (negate _)) :: Int  =  LT-id _ :: Int `compare` id (id (abs _)) :: Int  =  LT-id _ :: Int `compare` id (id (_ + _)) :: Int  =  LT-id _ :: Int `compare` id (id (head _)) :: Int  =  LT-id _ :: Int `compare` id (id (ord _)) :: Int  =  LT-id _ :: Int `compare` id (negate x) :: Int  =  LT-id _ :: Int `compare` id (negate 0) :: Int  =  LT-id _ :: Int `compare` id (negate (id _)) :: Int  =  LT-id _ :: Int `compare` id (abs x) :: Int  =  LT-id _ :: Int `compare` id (abs 0) :: Int  =  LT-id _ :: Int `compare` id (abs (id _)) :: Int  =  LT-id _ :: Int `compare` id (_ + x) :: Int  =  LT-id _ :: Int `compare` id (_ + 0) :: Int  =  LT-id _ :: Int `compare` id (_ + id _) :: Int  =  LT-id _ :: Int `compare` id (x + _) :: Int  =  LT-id _ :: Int `compare` id (0 + _) :: Int  =  LT-id _ :: Int `compare` id (id _ + _) :: Int  =  LT-id _ :: Int `compare` id (_ * _) :: Int  =  LT-id _ :: Int `compare` id (f _) :: Int  =  LT-id _ :: Int `compare` id (head xs) :: Int  =  LT-id _ :: Int `compare` id (head []) :: Int  =  LT-id _ :: Int `compare` id (head (_:_)) :: Int  =  LT-id _ :: Int `compare` id (ord c) :: Int  =  LT-id _ :: Int `compare` id (ord 'a') :: Int  =  LT-id _ :: Int `compare` negate y :: Int  =  LT-id _ :: Int `compare` negate 1 :: Int  =  LT-id _ :: Int `compare` negate (id x) :: Int  =  LT-id _ :: Int `compare` negate (id 0) :: Int  =  LT-id _ :: Int `compare` negate (id (id _)) :: Int  =  LT-id _ :: Int `compare` negate (negate _) :: Int  =  LT-id _ :: Int `compare` negate (abs _) :: Int  =  LT-id _ :: Int `compare` negate (_ + _) :: Int  =  LT-id _ :: Int `compare` negate (head _) :: Int  =  LT-id _ :: Int `compare` negate (ord _) :: Int  =  LT-id _ :: Int `compare` abs y :: Int  =  LT-id _ :: Int `compare` abs 1 :: Int  =  LT-id _ :: Int `compare` abs (id x) :: Int  =  LT-id _ :: Int `compare` abs (id 0) :: Int  =  LT-id _ :: Int `compare` abs (id (id _)) :: Int  =  LT-id _ :: Int `compare` abs (negate _) :: Int  =  LT-id _ :: Int `compare` abs (abs _) :: Int  =  LT-id _ :: Int `compare` abs (_ + _) :: Int  =  LT-id _ :: Int `compare` abs (head _) :: Int  =  LT-id _ :: Int `compare` abs (ord _) :: Int  =  LT-id _ :: Int `compare` _ + y :: Int  =  LT-id _ :: Int `compare` _ + 1 :: Int  =  LT-id _ :: Int `compare` _ + id x :: Int  =  LT-id _ :: Int `compare` _ + id 0 :: Int  =  LT-id _ :: Int `compare` _ + id (id _) :: Int  =  LT-id _ :: Int `compare` _ + negate _ :: Int  =  LT-id _ :: Int `compare` _ + abs _ :: Int  =  LT-id _ :: Int `compare` _ + (_ + _) :: Int  =  LT-id _ :: Int `compare` _ + head _ :: Int  =  LT-id _ :: Int `compare` _ + ord _ :: Int  =  LT-id _ :: Int `compare` x + x :: Int  =  LT-id _ :: Int `compare` x + 0 :: Int  =  LT-id _ :: Int `compare` x + id _ :: Int  =  LT-id _ :: Int `compare` 0 + x :: Int  =  LT-id _ :: Int `compare` 0 + 0 :: Int  =  LT-id _ :: Int `compare` 0 + id _ :: Int  =  LT-id _ :: Int `compare` id _ + x :: Int  =  LT-id _ :: Int `compare` id _ + 0 :: Int  =  LT-id _ :: Int `compare` id _ + id _ :: Int  =  LT-id _ :: Int `compare` _ * x :: Int  =  LT-id _ :: Int `compare` _ * 0 :: Int  =  LT-id _ :: Int `compare` _ * id _ :: Int  =  LT-id _ :: Int `compare` f x :: Int  =  GT-id _ :: Int `compare` f 0 :: Int  =  GT-id _ :: Int `compare` f (id _) :: Int  =  LT-id _ :: Int `compare` y + _ :: Int  =  LT-id _ :: Int `compare` 1 + _ :: Int  =  LT-id _ :: Int `compare` id x + _ :: Int  =  LT-id _ :: Int `compare` id 0 + _ :: Int  =  LT-id _ :: Int `compare` id (id _) + _ :: Int  =  LT-id _ :: Int `compare` negate _ + _ :: Int  =  LT-id _ :: Int `compare` abs _ + _ :: Int  =  LT-id _ :: Int `compare` (_ + _) + _ :: Int  =  LT-id _ :: Int `compare` head _ + _ :: Int  =  LT-id _ :: Int `compare` ord _ + _ :: Int  =  LT-id _ :: Int `compare` x * _ :: Int  =  LT-id _ :: Int `compare` 0 * _ :: Int  =  LT-id _ :: Int `compare` id _ * _ :: Int  =  LT-id _ :: Int `compare` g _ :: Int  =  GT-id _ :: Int `compare` head ys :: Int  =  LT-id _ :: Int `compare` head [0] :: Int  =  LT-id _ :: Int `compare` head (_:xs) :: Int  =  LT-id _ :: Int `compare` head [_] :: Int  =  LT-id _ :: Int `compare` head (_:_:_) :: Int  =  LT-id _ :: Int `compare` head (x:_) :: Int  =  LT-id _ :: Int `compare` head (0:_) :: Int  =  LT-id _ :: Int `compare` head (id _:_) :: Int  =  LT-id _ :: Int `compare` head (tail _) :: Int  =  LT-id _ :: Int `compare` head (_ ++ _) :: Int  =  LT-id _ :: Int `compare` ord d :: Int  =  GT-id _ :: Int `compare` ord ' ' :: Int  =  LT-id _ :: Int `compare` r :: Bool  =  GT-id _ :: Int `compare` not q :: Bool  =  GT-id _ :: Int `compare` not (not p) :: Bool  =  LT-id _ :: Int `compare` not (not False) :: Bool  =  LT-id _ :: Int `compare` not (not True) :: Bool  =  LT-id _ :: Int `compare` not (not (not _)) :: Bool  =  LT-id _ :: Int `compare` not (_ || _) :: Bool  =  LT-id _ :: Int `compare` _ || p :: Bool  =  LT-id _ :: Int `compare` _ || False :: Bool  =  LT-id _ :: Int `compare` _ || True :: Bool  =  LT-id _ :: Int `compare` _ || not _ :: Bool  =  LT-id _ :: Int `compare` p || _ :: Bool  =  LT-id _ :: Int `compare` False || _ :: Bool  =  LT-id _ :: Int `compare` True || _ :: Bool  =  LT-id _ :: Int `compare` not _ || _ :: Bool  =  LT-id _ :: Int `compare` _ && _ :: Bool  =  LT-id _ :: Int `compare` _ == _ :: Bool  =  LT-id _ :: Int `compare` _ == _ :: Bool  =  LT-id _ :: Int `compare` odd _ :: Bool  =  GT-id _ :: Int `compare` even _ :: Bool  =  GT-id _ :: Int `compare` elem _ _ :: Bool  =  LT-id _ :: Int `compare` e :: Char  =  GT-id _ :: Int `compare` 'b' :: Char  =  GT-id _ :: Int `compare` zs :: [Int]  =  GT-id _ :: Int `compare` [0,0] :: [Int]  =  GT-id _ :: Int `compare` [1] :: [Int]  =  GT-id _ :: Int `compare` _:ys :: [Int]  =  LT-id _ :: Int `compare` [_,0] :: [Int]  =  LT-id _ :: Int `compare` _:_:xs :: [Int]  =  LT-id _ :: Int `compare` [_,_] :: [Int]  =  LT-id _ :: Int `compare` _:_:_:_ :: [Int]  =  LT-id _ :: Int `compare` _:x:_ :: [Int]  =  LT-id _ :: Int `compare` _:0:_ :: [Int]  =  LT-id _ :: Int `compare` _:id _:_ :: [Int]  =  LT-id _ :: Int `compare` _:tail _ :: [Int]  =  LT-id _ :: Int `compare` _:(_ ++ _) :: [Int]  =  LT-id _ :: Int `compare` x:xs :: [Int]  =  LT-id _ :: Int `compare` [x] :: [Int]  =  LT-id _ :: Int `compare` x:_:_ :: [Int]  =  LT-id _ :: Int `compare` 0:xs :: [Int]  =  LT-id _ :: Int `compare` [0] :: [Int]  =  LT-id _ :: Int `compare` 0:_:_ :: [Int]  =  LT-id _ :: Int `compare` id _:xs :: [Int]  =  LT-id _ :: Int `compare` [id _] :: [Int]  =  LT-id _ :: Int `compare` id _:_:_ :: [Int]  =  LT-id _ :: Int `compare` y:_ :: [Int]  =  LT-id _ :: Int `compare` 1:_ :: [Int]  =  LT-id _ :: Int `compare` id x:_ :: [Int]  =  LT-id _ :: Int `compare` id 0:_ :: [Int]  =  LT-id _ :: Int `compare` id (id _):_ :: [Int]  =  LT-id _ :: Int `compare` negate _:_ :: [Int]  =  LT-id _ :: Int `compare` abs _:_ :: [Int]  =  LT-id _ :: Int `compare` _ + _:_ :: [Int]  =  LT-id _ :: Int `compare` head _:_ :: [Int]  =  LT-id _ :: Int `compare` ord _:_ :: [Int]  =  LT-id _ :: Int `compare` tail xs :: [Int]  =  LT-id _ :: Int `compare` tail [] :: [Int]  =  LT-id _ :: Int `compare` tail (_:_) :: [Int]  =  LT-id _ :: Int `compare` _ ++ xs :: [Int]  =  LT-id _ :: Int `compare` _ ++ [] :: [Int]  =  LT-id _ :: Int `compare` _ ++ (_:_) :: [Int]  =  LT-id _ :: Int `compare` xs ++ _ :: [Int]  =  LT-id _ :: Int `compare` [] ++ _ :: [Int]  =  LT-id _ :: Int `compare` (_:_) ++ _ :: [Int]  =  LT-id _ :: Int `compare` sort _ :: [Int]  =  LT-id _ :: Int `compare` insert _ _ :: [Int]  =  LT-id _ :: Int `compare` (x +) :: Int -> Int  =  LT-id _ :: Int `compare` (0 +) :: Int -> Int  =  LT-id _ :: Int `compare` (id _ +) :: Int -> Int  =  LT-id _ :: Int `compare` (_ *) :: Int -> Int  =  LT-id _ :: Int `compare` f :: Int -> Int  =  GT-id _ :: Int `compare` (_ ||) :: Bool -> Bool  =  LT-id _ :: Int `compare` (&&) :: Bool -> Bool -> Bool  =  GT-_ :: Bool `compare` x' :: Int  =  LT-_ :: Bool `compare` 2 :: Int  =  LT-_ :: Bool `compare` id z :: Int  =  LT-_ :: Bool `compare` id (-1) :: Int  =  LT-_ :: Bool `compare` id (id y) :: Int  =  LT-_ :: Bool `compare` id (id 1) :: Int  =  LT-_ :: Bool `compare` id (id (id x)) :: Int  =  LT-_ :: Bool `compare` id (id (id 0)) :: Int  =  LT-_ :: Bool `compare` id (id (id (id _))) :: Int  =  LT-_ :: Bool `compare` id (id (negate _)) :: Int  =  LT-_ :: Bool `compare` id (id (abs _)) :: Int  =  LT-_ :: Bool `compare` id (id (_ + _)) :: Int  =  LT-_ :: Bool `compare` id (id (head _)) :: Int  =  LT-_ :: Bool `compare` id (id (ord _)) :: Int  =  LT-_ :: Bool `compare` id (negate x) :: Int  =  LT-_ :: Bool `compare` id (negate 0) :: Int  =  LT-_ :: Bool `compare` id (negate (id _)) :: Int  =  LT-_ :: Bool `compare` id (abs x) :: Int  =  LT-_ :: Bool `compare` id (abs 0) :: Int  =  LT-_ :: Bool `compare` id (abs (id _)) :: Int  =  LT-_ :: Bool `compare` id (_ + x) :: Int  =  LT-_ :: Bool `compare` id (_ + 0) :: Int  =  LT-_ :: Bool `compare` id (_ + id _) :: Int  =  LT-_ :: Bool `compare` id (x + _) :: Int  =  LT-_ :: Bool `compare` id (0 + _) :: Int  =  LT-_ :: Bool `compare` id (id _ + _) :: Int  =  LT-_ :: Bool `compare` id (_ * _) :: Int  =  LT-_ :: Bool `compare` id (f _) :: Int  =  LT-_ :: Bool `compare` id (head xs) :: Int  =  LT-_ :: Bool `compare` id (head []) :: Int  =  LT-_ :: Bool `compare` id (head (_:_)) :: Int  =  LT-_ :: Bool `compare` id (ord c) :: Int  =  LT-_ :: Bool `compare` id (ord 'a') :: Int  =  LT-_ :: Bool `compare` negate y :: Int  =  LT-_ :: Bool `compare` negate 1 :: Int  =  LT-_ :: Bool `compare` negate (id x) :: Int  =  LT-_ :: Bool `compare` negate (id 0) :: Int  =  LT-_ :: Bool `compare` negate (id (id _)) :: Int  =  LT-_ :: Bool `compare` negate (negate _) :: Int  =  LT-_ :: Bool `compare` negate (abs _) :: Int  =  LT-_ :: Bool `compare` negate (_ + _) :: Int  =  LT-_ :: Bool `compare` negate (head _) :: Int  =  LT-_ :: Bool `compare` negate (ord _) :: Int  =  LT-_ :: Bool `compare` abs y :: Int  =  LT-_ :: Bool `compare` abs 1 :: Int  =  LT-_ :: Bool `compare` abs (id x) :: Int  =  LT-_ :: Bool `compare` abs (id 0) :: Int  =  LT-_ :: Bool `compare` abs (id (id _)) :: Int  =  LT-_ :: Bool `compare` abs (negate _) :: Int  =  LT-_ :: Bool `compare` abs (abs _) :: Int  =  LT-_ :: Bool `compare` abs (_ + _) :: Int  =  LT-_ :: Bool `compare` abs (head _) :: Int  =  LT-_ :: Bool `compare` abs (ord _) :: Int  =  LT-_ :: Bool `compare` _ + y :: Int  =  LT-_ :: Bool `compare` _ + 1 :: Int  =  LT-_ :: Bool `compare` _ + id x :: Int  =  LT-_ :: Bool `compare` _ + id 0 :: Int  =  LT-_ :: Bool `compare` _ + id (id _) :: Int  =  LT-_ :: Bool `compare` _ + negate _ :: Int  =  LT-_ :: Bool `compare` _ + abs _ :: Int  =  LT-_ :: Bool `compare` _ + (_ + _) :: Int  =  LT-_ :: Bool `compare` _ + head _ :: Int  =  LT-_ :: Bool `compare` _ + ord _ :: Int  =  LT-_ :: Bool `compare` x + x :: Int  =  LT-_ :: Bool `compare` x + 0 :: Int  =  LT-_ :: Bool `compare` x + id _ :: Int  =  LT-_ :: Bool `compare` 0 + x :: Int  =  LT-_ :: Bool `compare` 0 + 0 :: Int  =  LT-_ :: Bool `compare` 0 + id _ :: Int  =  LT-_ :: Bool `compare` id _ + x :: Int  =  LT-_ :: Bool `compare` id _ + 0 :: Int  =  LT-_ :: Bool `compare` id _ + id _ :: Int  =  LT-_ :: Bool `compare` _ * x :: Int  =  LT-_ :: Bool `compare` _ * 0 :: Int  =  LT-_ :: Bool `compare` _ * id _ :: Int  =  LT-_ :: Bool `compare` f x :: Int  =  LT-_ :: Bool `compare` f 0 :: Int  =  LT-_ :: Bool `compare` f (id _) :: Int  =  LT-_ :: Bool `compare` y + _ :: Int  =  LT-_ :: Bool `compare` 1 + _ :: Int  =  LT-_ :: Bool `compare` id x + _ :: Int  =  LT-_ :: Bool `compare` id 0 + _ :: Int  =  LT-_ :: Bool `compare` id (id _) + _ :: Int  =  LT-_ :: Bool `compare` negate _ + _ :: Int  =  LT-_ :: Bool `compare` abs _ + _ :: Int  =  LT-_ :: Bool `compare` (_ + _) + _ :: Int  =  LT-_ :: Bool `compare` head _ + _ :: Int  =  LT-_ :: Bool `compare` ord _ + _ :: Int  =  LT-_ :: Bool `compare` x * _ :: Int  =  LT-_ :: Bool `compare` 0 * _ :: Int  =  LT-_ :: Bool `compare` id _ * _ :: Int  =  LT-_ :: Bool `compare` g _ :: Int  =  LT-_ :: Bool `compare` head ys :: Int  =  LT-_ :: Bool `compare` head [0] :: Int  =  LT-_ :: Bool `compare` head (_:xs) :: Int  =  LT-_ :: Bool `compare` head [_] :: Int  =  LT-_ :: Bool `compare` head (_:_:_) :: Int  =  LT-_ :: Bool `compare` head (x:_) :: Int  =  LT-_ :: Bool `compare` head (0:_) :: Int  =  LT-_ :: Bool `compare` head (id _:_) :: Int  =  LT-_ :: Bool `compare` head (tail _) :: Int  =  LT-_ :: Bool `compare` head (_ ++ _) :: Int  =  LT-_ :: Bool `compare` ord d :: Int  =  LT-_ :: Bool `compare` ord ' ' :: Int  =  LT-_ :: Bool `compare` r :: Bool  =  LT-_ :: Bool `compare` not q :: Bool  =  LT-_ :: Bool `compare` not (not p) :: Bool  =  LT-_ :: Bool `compare` not (not False) :: Bool  =  LT-_ :: Bool `compare` not (not True) :: Bool  =  LT-_ :: Bool `compare` not (not (not _)) :: Bool  =  LT-_ :: Bool `compare` not (_ || _) :: Bool  =  LT-_ :: Bool `compare` _ || p :: Bool  =  LT-_ :: Bool `compare` _ || False :: Bool  =  LT-_ :: Bool `compare` _ || True :: Bool  =  LT-_ :: Bool `compare` _ || not _ :: Bool  =  LT-_ :: Bool `compare` p || _ :: Bool  =  LT-_ :: Bool `compare` False || _ :: Bool  =  LT-_ :: Bool `compare` True || _ :: Bool  =  LT-_ :: Bool `compare` not _ || _ :: Bool  =  LT-_ :: Bool `compare` _ && _ :: Bool  =  LT-_ :: Bool `compare` _ == _ :: Bool  =  LT-_ :: Bool `compare` _ == _ :: Bool  =  LT-_ :: Bool `compare` odd _ :: Bool  =  LT-_ :: Bool `compare` even _ :: Bool  =  LT-_ :: Bool `compare` elem _ _ :: Bool  =  LT-_ :: Bool `compare` e :: Char  =  LT-_ :: Bool `compare` 'b' :: Char  =  LT-_ :: Bool `compare` zs :: [Int]  =  LT-_ :: Bool `compare` [0,0] :: [Int]  =  LT-_ :: Bool `compare` [1] :: [Int]  =  LT-_ :: Bool `compare` _:ys :: [Int]  =  LT-_ :: Bool `compare` [_,0] :: [Int]  =  LT-_ :: Bool `compare` _:_:xs :: [Int]  =  LT-_ :: Bool `compare` [_,_] :: [Int]  =  LT-_ :: Bool `compare` _:_:_:_ :: [Int]  =  LT-_ :: Bool `compare` _:x:_ :: [Int]  =  LT-_ :: Bool `compare` _:0:_ :: [Int]  =  LT-_ :: Bool `compare` _:id _:_ :: [Int]  =  LT-_ :: Bool `compare` _:tail _ :: [Int]  =  LT-_ :: Bool `compare` _:(_ ++ _) :: [Int]  =  LT-_ :: Bool `compare` x:xs :: [Int]  =  LT-_ :: Bool `compare` [x] :: [Int]  =  LT-_ :: Bool `compare` x:_:_ :: [Int]  =  LT-_ :: Bool `compare` 0:xs :: [Int]  =  LT-_ :: Bool `compare` [0] :: [Int]  =  LT-_ :: Bool `compare` 0:_:_ :: [Int]  =  LT-_ :: Bool `compare` id _:xs :: [Int]  =  LT-_ :: Bool `compare` [id _] :: [Int]  =  LT-_ :: Bool `compare` id _:_:_ :: [Int]  =  LT-_ :: Bool `compare` y:_ :: [Int]  =  LT-_ :: Bool `compare` 1:_ :: [Int]  =  LT-_ :: Bool `compare` id x:_ :: [Int]  =  LT-_ :: Bool `compare` id 0:_ :: [Int]  =  LT-_ :: Bool `compare` id (id _):_ :: [Int]  =  LT-_ :: Bool `compare` negate _:_ :: [Int]  =  LT-_ :: Bool `compare` abs _:_ :: [Int]  =  LT-_ :: Bool `compare` _ + _:_ :: [Int]  =  LT-_ :: Bool `compare` head _:_ :: [Int]  =  LT-_ :: Bool `compare` ord _:_ :: [Int]  =  LT-_ :: Bool `compare` tail xs :: [Int]  =  LT-_ :: Bool `compare` tail [] :: [Int]  =  LT-_ :: Bool `compare` tail (_:_) :: [Int]  =  LT-_ :: Bool `compare` _ ++ xs :: [Int]  =  LT-_ :: Bool `compare` _ ++ [] :: [Int]  =  LT-_ :: Bool `compare` _ ++ (_:_) :: [Int]  =  LT-_ :: Bool `compare` xs ++ _ :: [Int]  =  LT-_ :: Bool `compare` [] ++ _ :: [Int]  =  LT-_ :: Bool `compare` (_:_) ++ _ :: [Int]  =  LT-_ :: Bool `compare` sort _ :: [Int]  =  LT-_ :: Bool `compare` insert _ _ :: [Int]  =  LT-_ :: Bool `compare` (x +) :: Int -> Int  =  LT-_ :: Bool `compare` (0 +) :: Int -> Int  =  LT-_ :: Bool `compare` (id _ +) :: Int -> Int  =  LT-_ :: Bool `compare` (_ *) :: Int -> Int  =  LT-_ :: Bool `compare` f :: Int -> Int  =  LT-_ :: Bool `compare` (_ ||) :: Bool -> Bool  =  LT-_ :: Bool `compare` (&&) :: Bool -> Bool -> Bool  =  LT-_ :: Char `compare` x' :: Int  =  LT-_ :: Char `compare` 2 :: Int  =  LT-_ :: Char `compare` id z :: Int  =  LT-_ :: Char `compare` id (-1) :: Int  =  LT-_ :: Char `compare` id (id y) :: Int  =  LT-_ :: Char `compare` id (id 1) :: Int  =  LT-_ :: Char `compare` id (id (id x)) :: Int  =  LT-_ :: Char `compare` id (id (id 0)) :: Int  =  LT-_ :: Char `compare` id (id (id (id _))) :: Int  =  LT-_ :: Char `compare` id (id (negate _)) :: Int  =  LT-_ :: Char `compare` id (id (abs _)) :: Int  =  LT-_ :: Char `compare` id (id (_ + _)) :: Int  =  LT-_ :: Char `compare` id (id (head _)) :: Int  =  LT-_ :: Char `compare` id (id (ord _)) :: Int  =  LT-_ :: Char `compare` id (negate x) :: Int  =  LT-_ :: Char `compare` id (negate 0) :: Int  =  LT-_ :: Char `compare` id (negate (id _)) :: Int  =  LT-_ :: Char `compare` id (abs x) :: Int  =  LT-_ :: Char `compare` id (abs 0) :: Int  =  LT-_ :: Char `compare` id (abs (id _)) :: Int  =  LT-_ :: Char `compare` id (_ + x) :: Int  =  LT-_ :: Char `compare` id (_ + 0) :: Int  =  LT-_ :: Char `compare` id (_ + id _) :: Int  =  LT-_ :: Char `compare` id (x + _) :: Int  =  LT-_ :: Char `compare` id (0 + _) :: Int  =  LT-_ :: Char `compare` id (id _ + _) :: Int  =  LT-_ :: Char `compare` id (_ * _) :: Int  =  LT-_ :: Char `compare` id (f _) :: Int  =  LT-_ :: Char `compare` id (head xs) :: Int  =  LT-_ :: Char `compare` id (head []) :: Int  =  LT-_ :: Char `compare` id (head (_:_)) :: Int  =  LT-_ :: Char `compare` id (ord c) :: Int  =  LT-_ :: Char `compare` id (ord 'a') :: Int  =  LT-_ :: Char `compare` negate y :: Int  =  LT-_ :: Char `compare` negate 1 :: Int  =  LT-_ :: Char `compare` negate (id x) :: Int  =  LT-_ :: Char `compare` negate (id 0) :: Int  =  LT-_ :: Char `compare` negate (id (id _)) :: Int  =  LT-_ :: Char `compare` negate (negate _) :: Int  =  LT-_ :: Char `compare` negate (abs _) :: Int  =  LT-_ :: Char `compare` negate (_ + _) :: Int  =  LT-_ :: Char `compare` negate (head _) :: Int  =  LT-_ :: Char `compare` negate (ord _) :: Int  =  LT-_ :: Char `compare` abs y :: Int  =  LT-_ :: Char `compare` abs 1 :: Int  =  LT-_ :: Char `compare` abs (id x) :: Int  =  LT-_ :: Char `compare` abs (id 0) :: Int  =  LT-_ :: Char `compare` abs (id (id _)) :: Int  =  LT-_ :: Char `compare` abs (negate _) :: Int  =  LT-_ :: Char `compare` abs (abs _) :: Int  =  LT-_ :: Char `compare` abs (_ + _) :: Int  =  LT-_ :: Char `compare` abs (head _) :: Int  =  LT-_ :: Char `compare` abs (ord _) :: Int  =  LT-_ :: Char `compare` _ + y :: Int  =  LT-_ :: Char `compare` _ + 1 :: Int  =  LT-_ :: Char `compare` _ + id x :: Int  =  LT-_ :: Char `compare` _ + id 0 :: Int  =  LT-_ :: Char `compare` _ + id (id _) :: Int  =  LT-_ :: Char `compare` _ + negate _ :: Int  =  LT-_ :: Char `compare` _ + abs _ :: Int  =  LT-_ :: Char `compare` _ + (_ + _) :: Int  =  LT-_ :: Char `compare` _ + head _ :: Int  =  LT-_ :: Char `compare` _ + ord _ :: Int  =  LT-_ :: Char `compare` x + x :: Int  =  LT-_ :: Char `compare` x + 0 :: Int  =  LT-_ :: Char `compare` x + id _ :: Int  =  LT-_ :: Char `compare` 0 + x :: Int  =  LT-_ :: Char `compare` 0 + 0 :: Int  =  LT-_ :: Char `compare` 0 + id _ :: Int  =  LT-_ :: Char `compare` id _ + x :: Int  =  LT-_ :: Char `compare` id _ + 0 :: Int  =  LT-_ :: Char `compare` id _ + id _ :: Int  =  LT-_ :: Char `compare` _ * x :: Int  =  LT-_ :: Char `compare` _ * 0 :: Int  =  LT-_ :: Char `compare` _ * id _ :: Int  =  LT-_ :: Char `compare` f x :: Int  =  LT-_ :: Char `compare` f 0 :: Int  =  LT-_ :: Char `compare` f (id _) :: Int  =  LT-_ :: Char `compare` y + _ :: Int  =  LT-_ :: Char `compare` 1 + _ :: Int  =  LT-_ :: Char `compare` id x + _ :: Int  =  LT-_ :: Char `compare` id 0 + _ :: Int  =  LT-_ :: Char `compare` id (id _) + _ :: Int  =  LT-_ :: Char `compare` negate _ + _ :: Int  =  LT-_ :: Char `compare` abs _ + _ :: Int  =  LT-_ :: Char `compare` (_ + _) + _ :: Int  =  LT-_ :: Char `compare` head _ + _ :: Int  =  LT-_ :: Char `compare` ord _ + _ :: Int  =  LT-_ :: Char `compare` x * _ :: Int  =  LT-_ :: Char `compare` 0 * _ :: Int  =  LT-_ :: Char `compare` id _ * _ :: Int  =  LT-_ :: Char `compare` g _ :: Int  =  LT-_ :: Char `compare` head ys :: Int  =  LT-_ :: Char `compare` head [0] :: Int  =  LT-_ :: Char `compare` head (_:xs) :: Int  =  LT-_ :: Char `compare` head [_] :: Int  =  LT-_ :: Char `compare` head (_:_:_) :: Int  =  LT-_ :: Char `compare` head (x:_) :: Int  =  LT-_ :: Char `compare` head (0:_) :: Int  =  LT-_ :: Char `compare` head (id _:_) :: Int  =  LT-_ :: Char `compare` head (tail _) :: Int  =  LT-_ :: Char `compare` head (_ ++ _) :: Int  =  LT-_ :: Char `compare` ord d :: Int  =  LT-_ :: Char `compare` ord ' ' :: Int  =  LT-_ :: Char `compare` r :: Bool  =  GT-_ :: Char `compare` not q :: Bool  =  LT-_ :: Char `compare` not (not p) :: Bool  =  LT-_ :: Char `compare` not (not False) :: Bool  =  LT-_ :: Char `compare` not (not True) :: Bool  =  LT-_ :: Char `compare` not (not (not _)) :: Bool  =  LT-_ :: Char `compare` not (_ || _) :: Bool  =  LT-_ :: Char `compare` _ || p :: Bool  =  LT-_ :: Char `compare` _ || False :: Bool  =  LT-_ :: Char `compare` _ || True :: Bool  =  LT-_ :: Char `compare` _ || not _ :: Bool  =  LT-_ :: Char `compare` p || _ :: Bool  =  LT-_ :: Char `compare` False || _ :: Bool  =  LT-_ :: Char `compare` True || _ :: Bool  =  LT-_ :: Char `compare` not _ || _ :: Bool  =  LT-_ :: Char `compare` _ && _ :: Bool  =  LT-_ :: Char `compare` _ == _ :: Bool  =  LT-_ :: Char `compare` _ == _ :: Bool  =  LT-_ :: Char `compare` odd _ :: Bool  =  LT-_ :: Char `compare` even _ :: Bool  =  LT-_ :: Char `compare` elem _ _ :: Bool  =  LT-_ :: Char `compare` e :: Char  =  LT-_ :: Char `compare` 'b' :: Char  =  LT-_ :: Char `compare` zs :: [Int]  =  LT-_ :: Char `compare` [0,0] :: [Int]  =  LT-_ :: Char `compare` [1] :: [Int]  =  LT-_ :: Char `compare` _:ys :: [Int]  =  LT-_ :: Char `compare` [_,0] :: [Int]  =  LT-_ :: Char `compare` _:_:xs :: [Int]  =  LT-_ :: Char `compare` [_,_] :: [Int]  =  LT-_ :: Char `compare` _:_:_:_ :: [Int]  =  LT-_ :: Char `compare` _:x:_ :: [Int]  =  LT-_ :: Char `compare` _:0:_ :: [Int]  =  LT-_ :: Char `compare` _:id _:_ :: [Int]  =  LT-_ :: Char `compare` _:tail _ :: [Int]  =  LT-_ :: Char `compare` _:(_ ++ _) :: [Int]  =  LT-_ :: Char `compare` x:xs :: [Int]  =  LT-_ :: Char `compare` [x] :: [Int]  =  LT-_ :: Char `compare` x:_:_ :: [Int]  =  LT-_ :: Char `compare` 0:xs :: [Int]  =  LT-_ :: Char `compare` [0] :: [Int]  =  LT-_ :: Char `compare` 0:_:_ :: [Int]  =  LT-_ :: Char `compare` id _:xs :: [Int]  =  LT-_ :: Char `compare` [id _] :: [Int]  =  LT-_ :: Char `compare` id _:_:_ :: [Int]  =  LT-_ :: Char `compare` y:_ :: [Int]  =  LT-_ :: Char `compare` 1:_ :: [Int]  =  LT-_ :: Char `compare` id x:_ :: [Int]  =  LT-_ :: Char `compare` id 0:_ :: [Int]  =  LT-_ :: Char `compare` id (id _):_ :: [Int]  =  LT-_ :: Char `compare` negate _:_ :: [Int]  =  LT-_ :: Char `compare` abs _:_ :: [Int]  =  LT-_ :: Char `compare` _ + _:_ :: [Int]  =  LT-_ :: Char `compare` head _:_ :: [Int]  =  LT-_ :: Char `compare` ord _:_ :: [Int]  =  LT-_ :: Char `compare` tail xs :: [Int]  =  LT-_ :: Char `compare` tail [] :: [Int]  =  LT-_ :: Char `compare` tail (_:_) :: [Int]  =  LT-_ :: Char `compare` _ ++ xs :: [Int]  =  LT-_ :: Char `compare` _ ++ [] :: [Int]  =  LT-_ :: Char `compare` _ ++ (_:_) :: [Int]  =  LT-_ :: Char `compare` xs ++ _ :: [Int]  =  LT-_ :: Char `compare` [] ++ _ :: [Int]  =  LT-_ :: Char `compare` (_:_) ++ _ :: [Int]  =  LT-_ :: Char `compare` sort _ :: [Int]  =  LT-_ :: Char `compare` insert _ _ :: [Int]  =  LT-_ :: Char `compare` (x +) :: Int -> Int  =  LT-_ :: Char `compare` (0 +) :: Int -> Int  =  LT-_ :: Char `compare` (id _ +) :: Int -> Int  =  LT-_ :: Char `compare` (_ *) :: Int -> Int  =  LT-_ :: Char `compare` f :: Int -> Int  =  LT-_ :: Char `compare` (_ ||) :: Bool -> Bool  =  LT-_ :: Char `compare` (&&) :: Bool -> Bool -> Bool  =  LT-_ :: [Int] `compare` x' :: Int  =  GT-_ :: [Int] `compare` 2 :: Int  =  LT-_ :: [Int] `compare` id z :: Int  =  LT-_ :: [Int] `compare` id (-1) :: Int  =  LT-_ :: [Int] `compare` id (id y) :: Int  =  LT-_ :: [Int] `compare` id (id 1) :: Int  =  LT-_ :: [Int] `compare` id (id (id x)) :: Int  =  LT-_ :: [Int] `compare` id (id (id 0)) :: Int  =  LT-_ :: [Int] `compare` id (id (id (id _))) :: Int  =  LT-_ :: [Int] `compare` id (id (negate _)) :: Int  =  LT-_ :: [Int] `compare` id (id (abs _)) :: Int  =  LT-_ :: [Int] `compare` id (id (_ + _)) :: Int  =  LT-_ :: [Int] `compare` id (id (head _)) :: Int  =  LT-_ :: [Int] `compare` id (id (ord _)) :: Int  =  LT-_ :: [Int] `compare` id (negate x) :: Int  =  LT-_ :: [Int] `compare` id (negate 0) :: Int  =  LT-_ :: [Int] `compare` id (negate (id _)) :: Int  =  LT-_ :: [Int] `compare` id (abs x) :: Int  =  LT-_ :: [Int] `compare` id (abs 0) :: Int  =  LT-_ :: [Int] `compare` id (abs (id _)) :: Int  =  LT-_ :: [Int] `compare` id (_ + x) :: Int  =  LT-_ :: [Int] `compare` id (_ + 0) :: Int  =  LT-_ :: [Int] `compare` id (_ + id _) :: Int  =  LT-_ :: [Int] `compare` id (x + _) :: Int  =  LT-_ :: [Int] `compare` id (0 + _) :: Int  =  LT-_ :: [Int] `compare` id (id _ + _) :: Int  =  LT-_ :: [Int] `compare` id (_ * _) :: Int  =  LT-_ :: [Int] `compare` id (f _) :: Int  =  LT-_ :: [Int] `compare` id (head xs) :: Int  =  LT-_ :: [Int] `compare` id (head []) :: Int  =  LT-_ :: [Int] `compare` id (head (_:_)) :: Int  =  LT-_ :: [Int] `compare` id (ord c) :: Int  =  LT-_ :: [Int] `compare` id (ord 'a') :: Int  =  LT-_ :: [Int] `compare` negate y :: Int  =  LT-_ :: [Int] `compare` negate 1 :: Int  =  LT-_ :: [Int] `compare` negate (id x) :: Int  =  LT-_ :: [Int] `compare` negate (id 0) :: Int  =  LT-_ :: [Int] `compare` negate (id (id _)) :: Int  =  LT-_ :: [Int] `compare` negate (negate _) :: Int  =  LT-_ :: [Int] `compare` negate (abs _) :: Int  =  LT-_ :: [Int] `compare` negate (_ + _) :: Int  =  LT-_ :: [Int] `compare` negate (head _) :: Int  =  LT-_ :: [Int] `compare` negate (ord _) :: Int  =  LT-_ :: [Int] `compare` abs y :: Int  =  LT-_ :: [Int] `compare` abs 1 :: Int  =  LT-_ :: [Int] `compare` abs (id x) :: Int  =  LT-_ :: [Int] `compare` abs (id 0) :: Int  =  LT-_ :: [Int] `compare` abs (id (id _)) :: Int  =  LT-_ :: [Int] `compare` abs (negate _) :: Int  =  LT-_ :: [Int] `compare` abs (abs _) :: Int  =  LT-_ :: [Int] `compare` abs (_ + _) :: Int  =  LT-_ :: [Int] `compare` abs (head _) :: Int  =  LT-_ :: [Int] `compare` abs (ord _) :: Int  =  LT-_ :: [Int] `compare` _ + y :: Int  =  LT-_ :: [Int] `compare` _ + 1 :: Int  =  LT-_ :: [Int] `compare` _ + id x :: Int  =  LT-_ :: [Int] `compare` _ + id 0 :: Int  =  LT-_ :: [Int] `compare` _ + id (id _) :: Int  =  LT-_ :: [Int] `compare` _ + negate _ :: Int  =  LT-_ :: [Int] `compare` _ + abs _ :: Int  =  LT-_ :: [Int] `compare` _ + (_ + _) :: Int  =  LT-_ :: [Int] `compare` _ + head _ :: Int  =  LT-_ :: [Int] `compare` _ + ord _ :: Int  =  LT-_ :: [Int] `compare` x + x :: Int  =  LT-_ :: [Int] `compare` x + 0 :: Int  =  LT-_ :: [Int] `compare` x + id _ :: Int  =  LT-_ :: [Int] `compare` 0 + x :: Int  =  LT-_ :: [Int] `compare` 0 + 0 :: Int  =  LT-_ :: [Int] `compare` 0 + id _ :: Int  =  LT-_ :: [Int] `compare` id _ + x :: Int  =  LT-_ :: [Int] `compare` id _ + 0 :: Int  =  LT-_ :: [Int] `compare` id _ + id _ :: Int  =  LT-_ :: [Int] `compare` _ * x :: Int  =  LT-_ :: [Int] `compare` _ * 0 :: Int  =  LT-_ :: [Int] `compare` _ * id _ :: Int  =  LT-_ :: [Int] `compare` f x :: Int  =  LT-_ :: [Int] `compare` f 0 :: Int  =  LT-_ :: [Int] `compare` f (id _) :: Int  =  LT-_ :: [Int] `compare` y + _ :: Int  =  LT-_ :: [Int] `compare` 1 + _ :: Int  =  LT-_ :: [Int] `compare` id x + _ :: Int  =  LT-_ :: [Int] `compare` id 0 + _ :: Int  =  LT-_ :: [Int] `compare` id (id _) + _ :: Int  =  LT-_ :: [Int] `compare` negate _ + _ :: Int  =  LT-_ :: [Int] `compare` abs _ + _ :: Int  =  LT-_ :: [Int] `compare` (_ + _) + _ :: Int  =  LT-_ :: [Int] `compare` head _ + _ :: Int  =  LT-_ :: [Int] `compare` ord _ + _ :: Int  =  LT-_ :: [Int] `compare` x * _ :: Int  =  LT-_ :: [Int] `compare` 0 * _ :: Int  =  LT-_ :: [Int] `compare` id _ * _ :: Int  =  LT-_ :: [Int] `compare` g _ :: Int  =  LT-_ :: [Int] `compare` head ys :: Int  =  LT-_ :: [Int] `compare` head [0] :: Int  =  LT-_ :: [Int] `compare` head (_:xs) :: Int  =  LT-_ :: [Int] `compare` head [_] :: Int  =  LT-_ :: [Int] `compare` head (_:_:_) :: Int  =  LT-_ :: [Int] `compare` head (x:_) :: Int  =  LT-_ :: [Int] `compare` head (0:_) :: Int  =  LT-_ :: [Int] `compare` head (id _:_) :: Int  =  LT-_ :: [Int] `compare` head (tail _) :: Int  =  LT-_ :: [Int] `compare` head (_ ++ _) :: Int  =  LT-_ :: [Int] `compare` ord d :: Int  =  LT-_ :: [Int] `compare` ord ' ' :: Int  =  LT-_ :: [Int] `compare` r :: Bool  =  GT-_ :: [Int] `compare` not q :: Bool  =  LT-_ :: [Int] `compare` not (not p) :: Bool  =  LT-_ :: [Int] `compare` not (not False) :: Bool  =  LT-_ :: [Int] `compare` not (not True) :: Bool  =  LT-_ :: [Int] `compare` not (not (not _)) :: Bool  =  LT-_ :: [Int] `compare` not (_ || _) :: Bool  =  LT-_ :: [Int] `compare` _ || p :: Bool  =  LT-_ :: [Int] `compare` _ || False :: Bool  =  LT-_ :: [Int] `compare` _ || True :: Bool  =  LT-_ :: [Int] `compare` _ || not _ :: Bool  =  LT-_ :: [Int] `compare` p || _ :: Bool  =  LT-_ :: [Int] `compare` False || _ :: Bool  =  LT-_ :: [Int] `compare` True || _ :: Bool  =  LT-_ :: [Int] `compare` not _ || _ :: Bool  =  LT-_ :: [Int] `compare` _ && _ :: Bool  =  LT-_ :: [Int] `compare` _ == _ :: Bool  =  LT-_ :: [Int] `compare` _ == _ :: Bool  =  LT-_ :: [Int] `compare` odd _ :: Bool  =  LT-_ :: [Int] `compare` even _ :: Bool  =  LT-_ :: [Int] `compare` elem _ _ :: Bool  =  LT-_ :: [Int] `compare` e :: Char  =  GT-_ :: [Int] `compare` 'b' :: Char  =  LT-_ :: [Int] `compare` zs :: [Int]  =  LT-_ :: [Int] `compare` [0,0] :: [Int]  =  LT-_ :: [Int] `compare` [1] :: [Int]  =  LT-_ :: [Int] `compare` _:ys :: [Int]  =  LT-_ :: [Int] `compare` [_,0] :: [Int]  =  LT-_ :: [Int] `compare` _:_:xs :: [Int]  =  LT-_ :: [Int] `compare` [_,_] :: [Int]  =  LT-_ :: [Int] `compare` _:_:_:_ :: [Int]  =  LT-_ :: [Int] `compare` _:x:_ :: [Int]  =  LT-_ :: [Int] `compare` _:0:_ :: [Int]  =  LT-_ :: [Int] `compare` _:id _:_ :: [Int]  =  LT-_ :: [Int] `compare` _:tail _ :: [Int]  =  LT-_ :: [Int] `compare` _:(_ ++ _) :: [Int]  =  LT-_ :: [Int] `compare` x:xs :: [Int]  =  LT-_ :: [Int] `compare` [x] :: [Int]  =  LT-_ :: [Int] `compare` x:_:_ :: [Int]  =  LT-_ :: [Int] `compare` 0:xs :: [Int]  =  LT-_ :: [Int] `compare` [0] :: [Int]  =  LT-_ :: [Int] `compare` 0:_:_ :: [Int]  =  LT-_ :: [Int] `compare` id _:xs :: [Int]  =  LT-_ :: [Int] `compare` [id _] :: [Int]  =  LT-_ :: [Int] `compare` id _:_:_ :: [Int]  =  LT-_ :: [Int] `compare` y:_ :: [Int]  =  LT-_ :: [Int] `compare` 1:_ :: [Int]  =  LT-_ :: [Int] `compare` id x:_ :: [Int]  =  LT-_ :: [Int] `compare` id 0:_ :: [Int]  =  LT-_ :: [Int] `compare` id (id _):_ :: [Int]  =  LT-_ :: [Int] `compare` negate _:_ :: [Int]  =  LT-_ :: [Int] `compare` abs _:_ :: [Int]  =  LT-_ :: [Int] `compare` _ + _:_ :: [Int]  =  LT-_ :: [Int] `compare` head _:_ :: [Int]  =  LT-_ :: [Int] `compare` ord _:_ :: [Int]  =  LT-_ :: [Int] `compare` tail xs :: [Int]  =  LT-_ :: [Int] `compare` tail [] :: [Int]  =  LT-_ :: [Int] `compare` tail (_:_) :: [Int]  =  LT-_ :: [Int] `compare` _ ++ xs :: [Int]  =  LT-_ :: [Int] `compare` _ ++ [] :: [Int]  =  LT-_ :: [Int] `compare` _ ++ (_:_) :: [Int]  =  LT-_ :: [Int] `compare` xs ++ _ :: [Int]  =  LT-_ :: [Int] `compare` [] ++ _ :: [Int]  =  LT-_ :: [Int] `compare` (_:_) ++ _ :: [Int]  =  LT-_ :: [Int] `compare` sort _ :: [Int]  =  LT-_ :: [Int] `compare` insert _ _ :: [Int]  =  LT-_ :: [Int] `compare` (x +) :: Int -> Int  =  LT-_ :: [Int] `compare` (0 +) :: Int -> Int  =  LT-_ :: [Int] `compare` (id _ +) :: Int -> Int  =  LT-_ :: [Int] `compare` (_ *) :: Int -> Int  =  LT-_ :: [Int] `compare` f :: Int -> Int  =  LT-_ :: [Int] `compare` (_ ||) :: Bool -> Bool  =  LT-_ :: [Int] `compare` (&&) :: Bool -> Bool -> Bool  =  LT-y :: Int `compare` z :: Int  =  LT-y :: Int `compare` -1 :: Int  =  LT-y :: Int `compare` id y :: Int  =  LT-y :: Int `compare` id 1 :: Int  =  LT-y :: Int `compare` id (id x) :: Int  =  LT-y :: Int `compare` id (id 0) :: Int  =  LT-y :: Int `compare` id (id (id _)) :: Int  =  LT-y :: Int `compare` id (negate _) :: Int  =  LT-y :: Int `compare` id (abs _) :: Int  =  LT-y :: Int `compare` id (_ + _) :: Int  =  LT-y :: Int `compare` id (head _) :: Int  =  LT-y :: Int `compare` id (ord _) :: Int  =  LT-y :: Int `compare` negate x :: Int  =  LT-y :: Int `compare` negate 0 :: Int  =  LT-y :: Int `compare` negate (id _) :: Int  =  LT-y :: Int `compare` abs x :: Int  =  LT-y :: Int `compare` abs 0 :: Int  =  LT-y :: Int `compare` abs (id _) :: Int  =  LT-y :: Int `compare` _ + x :: Int  =  LT-y :: Int `compare` _ + 0 :: Int  =  LT-y :: Int `compare` _ + id _ :: Int  =  LT-y :: Int `compare` x + _ :: Int  =  LT-y :: Int `compare` 0 + _ :: Int  =  LT-y :: Int `compare` id _ + _ :: Int  =  LT-y :: Int `compare` _ * _ :: Int  =  LT-y :: Int `compare` f _ :: Int  =  LT-y :: Int `compare` head xs :: Int  =  LT-y :: Int `compare` head [] :: Int  =  LT-y :: Int `compare` head (_:_) :: Int  =  LT-y :: Int `compare` ord c :: Int  =  LT-y :: Int `compare` ord 'a' :: Int  =  LT-y :: Int `compare` q :: Bool  =  GT-y :: Int `compare` not p :: Bool  =  LT-y :: Int `compare` not False :: Bool  =  LT-y :: Int `compare` not True :: Bool  =  LT-y :: Int `compare` not (not _) :: Bool  =  LT-y :: Int `compare` _ || _ :: Bool  =  LT-y :: Int `compare` d :: Char  =  GT-y :: Int `compare` ' ' :: Char  =  LT-y :: Int `compare` ys :: [Int]  =  LT-y :: Int `compare` [0] :: [Int]  =  LT-y :: Int `compare` _:xs :: [Int]  =  LT-y :: Int `compare` [_] :: [Int]  =  LT-y :: Int `compare` _:_:_ :: [Int]  =  LT-y :: Int `compare` x:_ :: [Int]  =  LT-y :: Int `compare` 0:_ :: [Int]  =  LT-y :: Int `compare` id _:_ :: [Int]  =  LT-y :: Int `compare` tail _ :: [Int]  =  LT-y :: Int `compare` _ ++ _ :: [Int]  =  LT-y :: Int `compare` negate :: Int -> Int  =  LT-y :: Int `compare` abs :: Int -> Int  =  LT-y :: Int `compare` (_ +) :: Int -> Int  =  LT-y :: Int `compare` (*) :: Int -> Int -> Int  =  LT-y :: Int `compare` not :: Bool -> Bool  =  LT-y :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT-1 :: Int `compare` z :: Int  =  GT-1 :: Int `compare` -1 :: Int  =  LT-1 :: Int `compare` id y :: Int  =  LT-1 :: Int `compare` id 1 :: Int  =  LT-1 :: Int `compare` id (id x) :: Int  =  LT-1 :: Int `compare` id (id 0) :: Int  =  LT-1 :: Int `compare` id (id (id _)) :: Int  =  LT-1 :: Int `compare` id (negate _) :: Int  =  LT-1 :: Int `compare` id (abs _) :: Int  =  LT-1 :: Int `compare` id (_ + _) :: Int  =  LT-1 :: Int `compare` id (head _) :: Int  =  LT-1 :: Int `compare` id (ord _) :: Int  =  LT-1 :: Int `compare` negate x :: Int  =  LT-1 :: Int `compare` negate 0 :: Int  =  LT-1 :: Int `compare` negate (id _) :: Int  =  LT-1 :: Int `compare` abs x :: Int  =  LT-1 :: Int `compare` abs 0 :: Int  =  LT-1 :: Int `compare` abs (id _) :: Int  =  LT-1 :: Int `compare` _ + x :: Int  =  LT-1 :: Int `compare` _ + 0 :: Int  =  LT-1 :: Int `compare` _ + id _ :: Int  =  LT-1 :: Int `compare` x + _ :: Int  =  LT-1 :: Int `compare` 0 + _ :: Int  =  LT-1 :: Int `compare` id _ + _ :: Int  =  LT-1 :: Int `compare` _ * _ :: Int  =  LT-1 :: Int `compare` f _ :: Int  =  LT-1 :: Int `compare` head xs :: Int  =  LT-1 :: Int `compare` head [] :: Int  =  LT-1 :: Int `compare` head (_:_) :: Int  =  LT-1 :: Int `compare` ord c :: Int  =  LT-1 :: Int `compare` ord 'a' :: Int  =  LT-1 :: Int `compare` q :: Bool  =  GT-1 :: Int `compare` not p :: Bool  =  LT-1 :: Int `compare` not False :: Bool  =  LT-1 :: Int `compare` not True :: Bool  =  LT-1 :: Int `compare` not (not _) :: Bool  =  LT-1 :: Int `compare` _ || _ :: Bool  =  LT-1 :: Int `compare` d :: Char  =  GT-1 :: Int `compare` ' ' :: Char  =  GT-1 :: Int `compare` ys :: [Int]  =  GT-1 :: Int `compare` [0] :: [Int]  =  LT-1 :: Int `compare` _:xs :: [Int]  =  LT-1 :: Int `compare` [_] :: [Int]  =  LT-1 :: Int `compare` _:_:_ :: [Int]  =  LT-1 :: Int `compare` x:_ :: [Int]  =  LT-1 :: Int `compare` 0:_ :: [Int]  =  LT-1 :: Int `compare` id _:_ :: [Int]  =  LT-1 :: Int `compare` tail _ :: [Int]  =  LT-1 :: Int `compare` _ ++ _ :: [Int]  =  LT-1 :: Int `compare` negate :: Int -> Int  =  LT-1 :: Int `compare` abs :: Int -> Int  =  LT-1 :: Int `compare` (_ +) :: Int -> Int  =  LT-1 :: Int `compare` (*) :: Int -> Int -> Int  =  LT-1 :: Int `compare` not :: Bool -> Bool  =  LT-1 :: Int `compare` (||) :: Bool -> Bool -> Bool  =  LT-id x :: Int `compare` z :: Int  =  GT-id x :: Int `compare` -1 :: Int  =  GT-id x :: Int `compare` id y :: Int  =  LT-id x :: Int `compare` id 1 :: Int  =  LT-id x :: Int `compare` id (id x) :: Int  =  LT-id x :: Int `compare` id (id 0) :: Int  =  LT-id x :: Int `compare` id (id (id _)) :: Int  =  LT-id x :: Int `compare` id (negate _) :: Int  =  LT-id x :: Int `compare` id (abs _) :: Int  =  LT-id x :: Int `compare` id (_ + _) :: Int  =  LT-id x :: Int `compare` id (head _) :: Int  =  LT-id x :: Int `compare` id (ord _) :: Int  =  LT-id x :: Int `compare` negate x :: Int  =  LT-id x :: Int `compare` negate 0 :: Int  =  LT-id x :: Int `compare` negate (id _) :: Int  =  LT-id x :: Int `compare` abs x :: Int  =  LT-id x :: Int `compare` abs 0 :: Int  =  LT-id x :: Int `compare` abs (id _) :: Int  =  LT-id x :: Int `compare` _ + x :: Int  =  LT-id x :: Int `compare` _ + 0 :: Int  =  LT-id x :: Int `compare` _ + id _ :: Int  =  LT-id x :: Int `compare` x + _ :: Int  =  LT-id x :: Int `compare` 0 + _ :: Int  =  LT-id x :: Int `compare` id _ + _ :: Int  =  LT-id x :: Int `compare` _ * _ :: Int  =  LT-id x :: Int `compare` f _ :: Int  =  GT-id x :: Int `compare` head xs :: Int  =  LT-id x :: Int `compare` head [] :: Int  =  LT-id x :: Int `compare` head (_:_) :: Int  =  LT-id x :: Int `compare` ord c :: Int  =  GT-id x :: Int `compare` ord 'a' :: Int  =  LT-id x :: Int `compare` q :: Bool  =  GT-id x :: Int `compare` not p :: Bool  =  GT-id x :: Int `compare` not False :: Bool  =  LT-id x :: Int `compare` not True :: Bool  =  LT-id x :: Int `compare` not (not _) :: Bool  =  LT-id x :: Int `compare` _ || _ :: Bool  =  LT-id x :: Int `compare` d :: Char  =  GT-id x :: Int `compare` ' ' :: Char  =  GT-id x :: Int `compare` ys :: [Int]  =  GT-id x :: Int `compare` [0] :: [Int]  =  GT-id x :: Int `compare` _:xs :: [Int]  =  LT-id x :: Int `compare` [_] :: [Int]  =  LT-id x :: Int `compare` _:_:_ :: [Int]  =  LT-id x :: Int `compare` x:_ :: [Int]  =  LT-id x :: Int `compare` 0:_ :: [Int]  =  LT-id x :: Int `compare` id _:_ :: [Int]  =  LT-id x :: Int `compare` tail _ :: [Int]  =  LT-id x :: Int `compare` _ ++ _ :: [Int]  =  LT-id x :: Int `compare` negate :: Int -> Int  =  GT-id x :: Int `compare` abs :: Int -> Int  =  GT-id x :: Int `compare` (_ +) :: Int -> Int  =  LT-id x :: Int `compare` (*) :: Int -> Int -> Int  =  GT-id x :: Int `compare` not :: Bool -> Bool  =  GT-id x :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-id 0 :: Int `compare` z :: Int  =  GT-id 0 :: Int `compare` -1 :: Int  =  GT-id 0 :: Int `compare` id y :: Int  =  GT-id 0 :: Int `compare` id 1 :: Int  =  LT-id 0 :: Int `compare` id (id x) :: Int  =  LT-id 0 :: Int `compare` id (id 0) :: Int  =  LT-id 0 :: Int `compare` id (id (id _)) :: Int  =  LT-id 0 :: Int `compare` id (negate _) :: Int  =  LT-id 0 :: Int `compare` id (abs _) :: Int  =  LT-id 0 :: Int `compare` id (_ + _) :: Int  =  LT-id 0 :: Int `compare` id (head _) :: Int  =  LT-id 0 :: Int `compare` id (ord _) :: Int  =  LT-id 0 :: Int `compare` negate x :: Int  =  GT-id 0 :: Int `compare` negate 0 :: Int  =  LT-id 0 :: Int `compare` negate (id _) :: Int  =  LT-id 0 :: Int `compare` abs x :: Int  =  GT-id 0 :: Int `compare` abs 0 :: Int  =  LT-id 0 :: Int `compare` abs (id _) :: Int  =  LT-id 0 :: Int `compare` _ + x :: Int  =  LT-id 0 :: Int `compare` _ + 0 :: Int  =  LT-id 0 :: Int `compare` _ + id _ :: Int  =  LT-id 0 :: Int `compare` x + _ :: Int  =  LT-id 0 :: Int `compare` 0 + _ :: Int  =  LT-id 0 :: Int `compare` id _ + _ :: Int  =  LT-id 0 :: Int `compare` _ * _ :: Int  =  LT-id 0 :: Int `compare` f _ :: Int  =  GT-id 0 :: Int `compare` head xs :: Int  =  GT-id 0 :: Int `compare` head [] :: Int  =  LT-id 0 :: Int `compare` head (_:_) :: Int  =  LT-id 0 :: Int `compare` ord c :: Int  =  GT-id 0 :: Int `compare` ord 'a' :: Int  =  GT-id 0 :: Int `compare` q :: Bool  =  GT-id 0 :: Int `compare` not p :: Bool  =  GT-id 0 :: Int `compare` not False :: Bool  =  GT-id 0 :: Int `compare` not True :: Bool  =  GT-id 0 :: Int `compare` not (not _) :: Bool  =  LT-id 0 :: Int `compare` _ || _ :: Bool  =  LT-id 0 :: Int `compare` d :: Char  =  GT-id 0 :: Int `compare` ' ' :: Char  =  GT-id 0 :: Int `compare` ys :: [Int]  =  GT-id 0 :: Int `compare` [0] :: [Int]  =  GT-id 0 :: Int `compare` _:xs :: [Int]  =  LT-id 0 :: Int `compare` [_] :: [Int]  =  LT-id 0 :: Int `compare` _:_:_ :: [Int]  =  LT-id 0 :: Int `compare` x:_ :: [Int]  =  LT-id 0 :: Int `compare` 0:_ :: [Int]  =  LT-id 0 :: Int `compare` id _:_ :: [Int]  =  LT-id 0 :: Int `compare` tail _ :: [Int]  =  GT-id 0 :: Int `compare` _ ++ _ :: [Int]  =  LT-id 0 :: Int `compare` negate :: Int -> Int  =  GT-id 0 :: Int `compare` abs :: Int -> Int  =  GT-id 0 :: Int `compare` (_ +) :: Int -> Int  =  GT-id 0 :: Int `compare` (*) :: Int -> Int -> Int  =  GT-id 0 :: Int `compare` not :: Bool -> Bool  =  GT-id 0 :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-id (id _) :: Int `compare` z :: Int  =  GT-id (id _) :: Int `compare` -1 :: Int  =  GT-id (id _) :: Int `compare` id y :: Int  =  GT-id (id _) :: Int `compare` id 1 :: Int  =  GT-id (id _) :: Int `compare` id (id x) :: Int  =  LT-id (id _) :: Int `compare` id (id 0) :: Int  =  LT-id (id _) :: Int `compare` id (id (id _)) :: Int  =  LT-id (id _) :: Int `compare` id (negate _) :: Int  =  LT-id (id _) :: Int `compare` id (abs _) :: Int  =  LT-id (id _) :: Int `compare` id (_ + _) :: Int  =  LT-id (id _) :: Int `compare` id (head _) :: Int  =  LT-id (id _) :: Int `compare` id (ord _) :: Int  =  LT-id (id _) :: Int `compare` negate x :: Int  =  GT-id (id _) :: Int `compare` negate 0 :: Int  =  GT-id (id _) :: Int `compare` negate (id _) :: Int  =  LT-id (id _) :: Int `compare` abs x :: Int  =  GT-id (id _) :: Int `compare` abs 0 :: Int  =  GT-id (id _) :: Int `compare` abs (id _) :: Int  =  LT-id (id _) :: Int `compare` _ + x :: Int  =  GT-id (id _) :: Int `compare` _ + 0 :: Int  =  LT-id (id _) :: Int `compare` _ + id _ :: Int  =  LT-id (id _) :: Int `compare` x + _ :: Int  =  GT-id (id _) :: Int `compare` 0 + _ :: Int  =  LT-id (id _) :: Int `compare` id _ + _ :: Int  =  LT-id (id _) :: Int `compare` _ * _ :: Int  =  GT-id (id _) :: Int `compare` f _ :: Int  =  GT-id (id _) :: Int `compare` head xs :: Int  =  GT-id (id _) :: Int `compare` head [] :: Int  =  GT-id (id _) :: Int `compare` head (_:_) :: Int  =  LT-id (id _) :: Int `compare` ord c :: Int  =  GT-id (id _) :: Int `compare` ord 'a' :: Int  =  GT-id (id _) :: Int `compare` q :: Bool  =  GT-id (id _) :: Int `compare` not p :: Bool  =  GT-id (id _) :: Int `compare` not False :: Bool  =  GT-id (id _) :: Int `compare` not True :: Bool  =  GT-id (id _) :: Int `compare` not (not _) :: Bool  =  GT-id (id _) :: Int `compare` _ || _ :: Bool  =  GT-id (id _) :: Int `compare` d :: Char  =  GT-id (id _) :: Int `compare` ' ' :: Char  =  GT-id (id _) :: Int `compare` ys :: [Int]  =  GT-id (id _) :: Int `compare` [0] :: [Int]  =  GT-id (id _) :: Int `compare` _:xs :: [Int]  =  GT-id (id _) :: Int `compare` [_] :: [Int]  =  LT-id (id _) :: Int `compare` _:_:_ :: [Int]  =  LT-id (id _) :: Int `compare` x:_ :: [Int]  =  GT-id (id _) :: Int `compare` 0:_ :: [Int]  =  LT-id (id _) :: Int `compare` id _:_ :: [Int]  =  LT-id (id _) :: Int `compare` tail _ :: [Int]  =  GT-id (id _) :: Int `compare` _ ++ _ :: [Int]  =  GT-id (id _) :: Int `compare` negate :: Int -> Int  =  GT-id (id _) :: Int `compare` abs :: Int -> Int  =  GT-id (id _) :: Int `compare` (_ +) :: Int -> Int  =  GT-id (id _) :: Int `compare` (*) :: Int -> Int -> Int  =  GT-id (id _) :: Int `compare` not :: Bool -> Bool  =  GT-id (id _) :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-negate _ :: Int `compare` z :: Int  =  GT-negate _ :: Int `compare` -1 :: Int  =  GT-negate _ :: Int `compare` id y :: Int  =  GT-negate _ :: Int `compare` id 1 :: Int  =  LT-negate _ :: Int `compare` id (id x) :: Int  =  LT-negate _ :: Int `compare` id (id 0) :: Int  =  LT-negate _ :: Int `compare` id (id (id _)) :: Int  =  LT-negate _ :: Int `compare` id (negate _) :: Int  =  LT-negate _ :: Int `compare` id (abs _) :: Int  =  LT-negate _ :: Int `compare` id (_ + _) :: Int  =  LT-negate _ :: Int `compare` id (head _) :: Int  =  LT-negate _ :: Int `compare` id (ord _) :: Int  =  LT-negate _ :: Int `compare` negate x :: Int  =  LT-negate _ :: Int `compare` negate 0 :: Int  =  LT-negate _ :: Int `compare` negate (id _) :: Int  =  LT-negate _ :: Int `compare` abs x :: Int  =  GT-negate _ :: Int `compare` abs 0 :: Int  =  LT-negate _ :: Int `compare` abs (id _) :: Int  =  LT-negate _ :: Int `compare` _ + x :: Int  =  LT-negate _ :: Int `compare` _ + 0 :: Int  =  LT-negate _ :: Int `compare` _ + id _ :: Int  =  LT-negate _ :: Int `compare` x + _ :: Int  =  LT-negate _ :: Int `compare` 0 + _ :: Int  =  LT-negate _ :: Int `compare` id _ + _ :: Int  =  LT-negate _ :: Int `compare` _ * _ :: Int  =  LT-negate _ :: Int `compare` f _ :: Int  =  GT-negate _ :: Int `compare` head xs :: Int  =  LT-negate _ :: Int `compare` head [] :: Int  =  LT-negate _ :: Int `compare` head (_:_) :: Int  =  LT-negate _ :: Int `compare` ord c :: Int  =  GT-negate _ :: Int `compare` ord 'a' :: Int  =  LT-negate _ :: Int `compare` q :: Bool  =  GT-negate _ :: Int `compare` not p :: Bool  =  GT-negate _ :: Int `compare` not False :: Bool  =  LT-negate _ :: Int `compare` not True :: Bool  =  LT-negate _ :: Int `compare` not (not _) :: Bool  =  LT-negate _ :: Int `compare` _ || _ :: Bool  =  LT-negate _ :: Int `compare` d :: Char  =  GT-negate _ :: Int `compare` ' ' :: Char  =  GT-negate _ :: Int `compare` ys :: [Int]  =  GT-negate _ :: Int `compare` [0] :: [Int]  =  GT-negate _ :: Int `compare` _:xs :: [Int]  =  LT-negate _ :: Int `compare` [_] :: [Int]  =  LT-negate _ :: Int `compare` _:_:_ :: [Int]  =  LT-negate _ :: Int `compare` x:_ :: [Int]  =  LT-negate _ :: Int `compare` 0:_ :: [Int]  =  LT-negate _ :: Int `compare` id _:_ :: [Int]  =  LT-negate _ :: Int `compare` tail _ :: [Int]  =  LT-negate _ :: Int `compare` _ ++ _ :: [Int]  =  LT-negate _ :: Int `compare` negate :: Int -> Int  =  GT-negate _ :: Int `compare` abs :: Int -> Int  =  GT-negate _ :: Int `compare` (_ +) :: Int -> Int  =  LT-negate _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT-negate _ :: Int `compare` not :: Bool -> Bool  =  GT-negate _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-abs _ :: Int `compare` z :: Int  =  GT-abs _ :: Int `compare` -1 :: Int  =  GT-abs _ :: Int `compare` id y :: Int  =  GT-abs _ :: Int `compare` id 1 :: Int  =  LT-abs _ :: Int `compare` id (id x) :: Int  =  LT-abs _ :: Int `compare` id (id 0) :: Int  =  LT-abs _ :: Int `compare` id (id (id _)) :: Int  =  LT-abs _ :: Int `compare` id (negate _) :: Int  =  LT-abs _ :: Int `compare` id (abs _) :: Int  =  LT-abs _ :: Int `compare` id (_ + _) :: Int  =  LT-abs _ :: Int `compare` id (head _) :: Int  =  LT-abs _ :: Int `compare` id (ord _) :: Int  =  LT-abs _ :: Int `compare` negate x :: Int  =  LT-abs _ :: Int `compare` negate 0 :: Int  =  LT-abs _ :: Int `compare` negate (id _) :: Int  =  LT-abs _ :: Int `compare` abs x :: Int  =  LT-abs _ :: Int `compare` abs 0 :: Int  =  LT-abs _ :: Int `compare` abs (id _) :: Int  =  LT-abs _ :: Int `compare` _ + x :: Int  =  LT-abs _ :: Int `compare` _ + 0 :: Int  =  LT-abs _ :: Int `compare` _ + id _ :: Int  =  LT-abs _ :: Int `compare` x + _ :: Int  =  LT-abs _ :: Int `compare` 0 + _ :: Int  =  LT-abs _ :: Int `compare` id _ + _ :: Int  =  LT-abs _ :: Int `compare` _ * _ :: Int  =  LT-abs _ :: Int `compare` f _ :: Int  =  GT-abs _ :: Int `compare` head xs :: Int  =  LT-abs _ :: Int `compare` head [] :: Int  =  LT-abs _ :: Int `compare` head (_:_) :: Int  =  LT-abs _ :: Int `compare` ord c :: Int  =  GT-abs _ :: Int `compare` ord 'a' :: Int  =  LT-abs _ :: Int `compare` q :: Bool  =  GT-abs _ :: Int `compare` not p :: Bool  =  GT-abs _ :: Int `compare` not False :: Bool  =  LT-abs _ :: Int `compare` not True :: Bool  =  LT-abs _ :: Int `compare` not (not _) :: Bool  =  LT-abs _ :: Int `compare` _ || _ :: Bool  =  LT-abs _ :: Int `compare` d :: Char  =  GT-abs _ :: Int `compare` ' ' :: Char  =  GT-abs _ :: Int `compare` ys :: [Int]  =  GT-abs _ :: Int `compare` [0] :: [Int]  =  GT-abs _ :: Int `compare` _:xs :: [Int]  =  LT-abs _ :: Int `compare` [_] :: [Int]  =  LT-abs _ :: Int `compare` _:_:_ :: [Int]  =  LT-abs _ :: Int `compare` x:_ :: [Int]  =  LT-abs _ :: Int `compare` 0:_ :: [Int]  =  LT-abs _ :: Int `compare` id _:_ :: [Int]  =  LT-abs _ :: Int `compare` tail _ :: [Int]  =  LT-abs _ :: Int `compare` _ ++ _ :: [Int]  =  LT-abs _ :: Int `compare` negate :: Int -> Int  =  GT-abs _ :: Int `compare` abs :: Int -> Int  =  GT-abs _ :: Int `compare` (_ +) :: Int -> Int  =  LT-abs _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT-abs _ :: Int `compare` not :: Bool -> Bool  =  GT-abs _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-_ + _ :: Int `compare` z :: Int  =  GT-_ + _ :: Int `compare` -1 :: Int  =  GT-_ + _ :: Int `compare` id y :: Int  =  GT-_ + _ :: Int `compare` id 1 :: Int  =  GT-_ + _ :: Int `compare` id (id x) :: Int  =  LT-_ + _ :: Int `compare` id (id 0) :: Int  =  LT-_ + _ :: Int `compare` id (id (id _)) :: Int  =  LT-_ + _ :: Int `compare` id (negate _) :: Int  =  LT-_ + _ :: Int `compare` id (abs _) :: Int  =  LT-_ + _ :: Int `compare` id (_ + _) :: Int  =  LT-_ + _ :: Int `compare` id (head _) :: Int  =  LT-_ + _ :: Int `compare` id (ord _) :: Int  =  LT-_ + _ :: Int `compare` negate x :: Int  =  GT-_ + _ :: Int `compare` negate 0 :: Int  =  GT-_ + _ :: Int `compare` negate (id _) :: Int  =  LT-_ + _ :: Int `compare` abs x :: Int  =  GT-_ + _ :: Int `compare` abs 0 :: Int  =  GT-_ + _ :: Int `compare` abs (id _) :: Int  =  LT-_ + _ :: Int `compare` _ + x :: Int  =  GT-_ + _ :: Int `compare` _ + 0 :: Int  =  LT-_ + _ :: Int `compare` _ + id _ :: Int  =  LT-_ + _ :: Int `compare` x + _ :: Int  =  GT-_ + _ :: Int `compare` 0 + _ :: Int  =  LT-_ + _ :: Int `compare` id _ + _ :: Int  =  LT-_ + _ :: Int `compare` _ * _ :: Int  =  GT-_ + _ :: Int `compare` f _ :: Int  =  GT-_ + _ :: Int `compare` head xs :: Int  =  GT-_ + _ :: Int `compare` head [] :: Int  =  GT-_ + _ :: Int `compare` head (_:_) :: Int  =  LT-_ + _ :: Int `compare` ord c :: Int  =  GT-_ + _ :: Int `compare` ord 'a' :: Int  =  GT-_ + _ :: Int `compare` q :: Bool  =  GT-_ + _ :: Int `compare` not p :: Bool  =  GT-_ + _ :: Int `compare` not False :: Bool  =  GT-_ + _ :: Int `compare` not True :: Bool  =  GT-_ + _ :: Int `compare` not (not _) :: Bool  =  LT-_ + _ :: Int `compare` _ || _ :: Bool  =  GT-_ + _ :: Int `compare` d :: Char  =  GT-_ + _ :: Int `compare` ' ' :: Char  =  GT-_ + _ :: Int `compare` ys :: [Int]  =  GT-_ + _ :: Int `compare` [0] :: [Int]  =  GT-_ + _ :: Int `compare` _:xs :: [Int]  =  GT-_ + _ :: Int `compare` [_] :: [Int]  =  LT-_ + _ :: Int `compare` _:_:_ :: [Int]  =  LT-_ + _ :: Int `compare` x:_ :: [Int]  =  GT-_ + _ :: Int `compare` 0:_ :: [Int]  =  LT-_ + _ :: Int `compare` id _:_ :: [Int]  =  LT-_ + _ :: Int `compare` tail _ :: [Int]  =  GT-_ + _ :: Int `compare` _ ++ _ :: [Int]  =  LT-_ + _ :: Int `compare` negate :: Int -> Int  =  GT-_ + _ :: Int `compare` abs :: Int -> Int  =  GT-_ + _ :: Int `compare` (_ +) :: Int -> Int  =  GT-_ + _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT-_ + _ :: Int `compare` not :: Bool -> Bool  =  GT-_ + _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-head _ :: Int `compare` z :: Int  =  GT-head _ :: Int `compare` -1 :: Int  =  GT-head _ :: Int `compare` id y :: Int  =  GT-head _ :: Int `compare` id 1 :: Int  =  LT-head _ :: Int `compare` id (id x) :: Int  =  LT-head _ :: Int `compare` id (id 0) :: Int  =  LT-head _ :: Int `compare` id (id (id _)) :: Int  =  LT-head _ :: Int `compare` id (negate _) :: Int  =  LT-head _ :: Int `compare` id (abs _) :: Int  =  LT-head _ :: Int `compare` id (_ + _) :: Int  =  LT-head _ :: Int `compare` id (head _) :: Int  =  LT-head _ :: Int `compare` id (ord _) :: Int  =  LT-head _ :: Int `compare` negate x :: Int  =  GT-head _ :: Int `compare` negate 0 :: Int  =  LT-head _ :: Int `compare` negate (id _) :: Int  =  LT-head _ :: Int `compare` abs x :: Int  =  GT-head _ :: Int `compare` abs 0 :: Int  =  LT-head _ :: Int `compare` abs (id _) :: Int  =  LT-head _ :: Int `compare` _ + x :: Int  =  LT-head _ :: Int `compare` _ + 0 :: Int  =  LT-head _ :: Int `compare` _ + id _ :: Int  =  LT-head _ :: Int `compare` x + _ :: Int  =  LT-head _ :: Int `compare` 0 + _ :: Int  =  LT-head _ :: Int `compare` id _ + _ :: Int  =  LT-head _ :: Int `compare` _ * _ :: Int  =  LT-head _ :: Int `compare` f _ :: Int  =  GT-head _ :: Int `compare` head xs :: Int  =  LT-head _ :: Int `compare` head [] :: Int  =  LT-head _ :: Int `compare` head (_:_) :: Int  =  LT-head _ :: Int `compare` ord c :: Int  =  GT-head _ :: Int `compare` ord 'a' :: Int  =  LT-head _ :: Int `compare` q :: Bool  =  GT-head _ :: Int `compare` not p :: Bool  =  GT-head _ :: Int `compare` not False :: Bool  =  LT-head _ :: Int `compare` not True :: Bool  =  LT-head _ :: Int `compare` not (not _) :: Bool  =  LT-head _ :: Int `compare` _ || _ :: Bool  =  LT-head _ :: Int `compare` d :: Char  =  GT-head _ :: Int `compare` ' ' :: Char  =  GT-head _ :: Int `compare` ys :: [Int]  =  GT-head _ :: Int `compare` [0] :: [Int]  =  GT-head _ :: Int `compare` _:xs :: [Int]  =  LT-head _ :: Int `compare` [_] :: [Int]  =  LT-head _ :: Int `compare` _:_:_ :: [Int]  =  LT-head _ :: Int `compare` x:_ :: [Int]  =  LT-head _ :: Int `compare` 0:_ :: [Int]  =  LT-head _ :: Int `compare` id _:_ :: [Int]  =  LT-head _ :: Int `compare` tail _ :: [Int]  =  LT-head _ :: Int `compare` _ ++ _ :: [Int]  =  LT-head _ :: Int `compare` negate :: Int -> Int  =  GT-head _ :: Int `compare` abs :: Int -> Int  =  GT-head _ :: Int `compare` (_ +) :: Int -> Int  =  LT-head _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT-head _ :: Int `compare` not :: Bool -> Bool  =  GT-head _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-ord _ :: Int `compare` z :: Int  =  GT-ord _ :: Int `compare` -1 :: Int  =  GT-ord _ :: Int `compare` id y :: Int  =  LT-ord _ :: Int `compare` id 1 :: Int  =  LT-ord _ :: Int `compare` id (id x) :: Int  =  LT-ord _ :: Int `compare` id (id 0) :: Int  =  LT-ord _ :: Int `compare` id (id (id _)) :: Int  =  LT-ord _ :: Int `compare` id (negate _) :: Int  =  LT-ord _ :: Int `compare` id (abs _) :: Int  =  LT-ord _ :: Int `compare` id (_ + _) :: Int  =  LT-ord _ :: Int `compare` id (head _) :: Int  =  LT-ord _ :: Int `compare` id (ord _) :: Int  =  LT-ord _ :: Int `compare` negate x :: Int  =  LT-ord _ :: Int `compare` negate 0 :: Int  =  LT-ord _ :: Int `compare` negate (id _) :: Int  =  LT-ord _ :: Int `compare` abs x :: Int  =  LT-ord _ :: Int `compare` abs 0 :: Int  =  LT-ord _ :: Int `compare` abs (id _) :: Int  =  LT-ord _ :: Int `compare` _ + x :: Int  =  LT-ord _ :: Int `compare` _ + 0 :: Int  =  LT-ord _ :: Int `compare` _ + id _ :: Int  =  LT-ord _ :: Int `compare` x + _ :: Int  =  LT-ord _ :: Int `compare` 0 + _ :: Int  =  LT-ord _ :: Int `compare` id _ + _ :: Int  =  LT-ord _ :: Int `compare` _ * _ :: Int  =  LT-ord _ :: Int `compare` f _ :: Int  =  GT-ord _ :: Int `compare` head xs :: Int  =  LT-ord _ :: Int `compare` head [] :: Int  =  LT-ord _ :: Int `compare` head (_:_) :: Int  =  LT-ord _ :: Int `compare` ord c :: Int  =  LT-ord _ :: Int `compare` ord 'a' :: Int  =  LT-ord _ :: Int `compare` q :: Bool  =  GT-ord _ :: Int `compare` not p :: Bool  =  GT-ord _ :: Int `compare` not False :: Bool  =  LT-ord _ :: Int `compare` not True :: Bool  =  LT-ord _ :: Int `compare` not (not _) :: Bool  =  LT-ord _ :: Int `compare` _ || _ :: Bool  =  LT-ord _ :: Int `compare` d :: Char  =  GT-ord _ :: Int `compare` ' ' :: Char  =  GT-ord _ :: Int `compare` ys :: [Int]  =  GT-ord _ :: Int `compare` [0] :: [Int]  =  GT-ord _ :: Int `compare` _:xs :: [Int]  =  LT-ord _ :: Int `compare` [_] :: [Int]  =  LT-ord _ :: Int `compare` _:_:_ :: [Int]  =  LT-ord _ :: Int `compare` x:_ :: [Int]  =  LT-ord _ :: Int `compare` 0:_ :: [Int]  =  LT-ord _ :: Int `compare` id _:_ :: [Int]  =  LT-ord _ :: Int `compare` tail _ :: [Int]  =  LT-ord _ :: Int `compare` _ ++ _ :: [Int]  =  LT-ord _ :: Int `compare` negate :: Int -> Int  =  GT-ord _ :: Int `compare` abs :: Int -> Int  =  GT-ord _ :: Int `compare` (_ +) :: Int -> Int  =  LT-ord _ :: Int `compare` (*) :: Int -> Int -> Int  =  GT-ord _ :: Int `compare` not :: Bool -> Bool  =  GT-ord _ :: Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-p :: Bool `compare` z :: Int  =  LT-p :: Bool `compare` -1 :: Int  =  LT-p :: Bool `compare` id y :: Int  =  LT-p :: Bool `compare` id 1 :: Int  =  LT-p :: Bool `compare` id (id x) :: Int  =  LT-p :: Bool `compare` id (id 0) :: Int  =  LT-p :: Bool `compare` id (id (id _)) :: Int  =  LT-p :: Bool `compare` id (negate _) :: Int  =  LT-p :: Bool `compare` id (abs _) :: Int  =  LT-p :: Bool `compare` id (_ + _) :: Int  =  LT-p :: Bool `compare` id (head _) :: Int  =  LT-p :: Bool `compare` id (ord _) :: Int  =  LT-p :: Bool `compare` negate x :: Int  =  LT-p :: Bool `compare` negate 0 :: Int  =  LT-p :: Bool `compare` negate (id _) :: Int  =  LT-p :: Bool `compare` abs x :: Int  =  LT-p :: Bool `compare` abs 0 :: Int  =  LT-p :: Bool `compare` abs (id _) :: Int  =  LT-p :: Bool `compare` _ + x :: Int  =  LT-p :: Bool `compare` _ + 0 :: Int  =  LT-p :: Bool `compare` _ + id _ :: Int  =  LT-p :: Bool `compare` x + _ :: Int  =  LT-p :: Bool `compare` 0 + _ :: Int  =  LT-p :: Bool `compare` id _ + _ :: Int  =  LT-p :: Bool `compare` _ * _ :: Int  =  LT-p :: Bool `compare` f _ :: Int  =  LT-p :: Bool `compare` head xs :: Int  =  LT-p :: Bool `compare` head [] :: Int  =  LT-p :: Bool `compare` head (_:_) :: Int  =  LT-p :: Bool `compare` ord c :: Int  =  LT-p :: Bool `compare` ord 'a' :: Int  =  LT-p :: Bool `compare` q :: Bool  =  LT-p :: Bool `compare` not p :: Bool  =  LT-p :: Bool `compare` not False :: Bool  =  LT-p :: Bool `compare` not True :: Bool  =  LT-p :: Bool `compare` not (not _) :: Bool  =  LT-p :: Bool `compare` _ || _ :: Bool  =  LT-p :: Bool `compare` d :: Char  =  LT-p :: Bool `compare` ' ' :: Char  =  LT-p :: Bool `compare` ys :: [Int]  =  LT-p :: Bool `compare` [0] :: [Int]  =  LT-p :: Bool `compare` _:xs :: [Int]  =  LT-p :: Bool `compare` [_] :: [Int]  =  LT-p :: Bool `compare` _:_:_ :: [Int]  =  LT-p :: Bool `compare` x:_ :: [Int]  =  LT-p :: Bool `compare` 0:_ :: [Int]  =  LT-p :: Bool `compare` id _:_ :: [Int]  =  LT-p :: Bool `compare` tail _ :: [Int]  =  LT-p :: Bool `compare` _ ++ _ :: [Int]  =  LT-p :: Bool `compare` negate :: Int -> Int  =  LT-p :: Bool `compare` abs :: Int -> Int  =  LT-p :: Bool `compare` (_ +) :: Int -> Int  =  LT-p :: Bool `compare` (*) :: Int -> Int -> Int  =  LT-p :: Bool `compare` not :: Bool -> Bool  =  LT-p :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  LT-False :: Bool `compare` z :: Int  =  GT-False :: Bool `compare` -1 :: Int  =  LT-False :: Bool `compare` id y :: Int  =  LT-False :: Bool `compare` id 1 :: Int  =  LT-False :: Bool `compare` id (id x) :: Int  =  LT-False :: Bool `compare` id (id 0) :: Int  =  LT-False :: Bool `compare` id (id (id _)) :: Int  =  LT-False :: Bool `compare` id (negate _) :: Int  =  LT-False :: Bool `compare` id (abs _) :: Int  =  LT-False :: Bool `compare` id (_ + _) :: Int  =  LT-False :: Bool `compare` id (head _) :: Int  =  LT-False :: Bool `compare` id (ord _) :: Int  =  LT-False :: Bool `compare` negate x :: Int  =  LT-False :: Bool `compare` negate 0 :: Int  =  LT-False :: Bool `compare` negate (id _) :: Int  =  LT-False :: Bool `compare` abs x :: Int  =  LT-False :: Bool `compare` abs 0 :: Int  =  LT-False :: Bool `compare` abs (id _) :: Int  =  LT-False :: Bool `compare` _ + x :: Int  =  LT-False :: Bool `compare` _ + 0 :: Int  =  LT-False :: Bool `compare` _ + id _ :: Int  =  LT-False :: Bool `compare` x + _ :: Int  =  LT-False :: Bool `compare` 0 + _ :: Int  =  LT-False :: Bool `compare` id _ + _ :: Int  =  LT-False :: Bool `compare` _ * _ :: Int  =  LT-False :: Bool `compare` f _ :: Int  =  LT-False :: Bool `compare` head xs :: Int  =  LT-False :: Bool `compare` head [] :: Int  =  LT-False :: Bool `compare` head (_:_) :: Int  =  LT-False :: Bool `compare` ord c :: Int  =  LT-False :: Bool `compare` ord 'a' :: Int  =  LT-False :: Bool `compare` q :: Bool  =  GT-False :: Bool `compare` not p :: Bool  =  LT-False :: Bool `compare` not False :: Bool  =  LT-False :: Bool `compare` not True :: Bool  =  LT-False :: Bool `compare` not (not _) :: Bool  =  LT-False :: Bool `compare` _ || _ :: Bool  =  LT-False :: Bool `compare` d :: Char  =  GT-False :: Bool `compare` ' ' :: Char  =  LT-False :: Bool `compare` ys :: [Int]  =  GT-False :: Bool `compare` [0] :: [Int]  =  LT-False :: Bool `compare` _:xs :: [Int]  =  LT-False :: Bool `compare` [_] :: [Int]  =  LT-False :: Bool `compare` _:_:_ :: [Int]  =  LT-False :: Bool `compare` x:_ :: [Int]  =  LT-False :: Bool `compare` 0:_ :: [Int]  =  LT-False :: Bool `compare` id _:_ :: [Int]  =  LT-False :: Bool `compare` tail _ :: [Int]  =  LT-False :: Bool `compare` _ ++ _ :: [Int]  =  LT-False :: Bool `compare` negate :: Int -> Int  =  LT-False :: Bool `compare` abs :: Int -> Int  =  LT-False :: Bool `compare` (_ +) :: Int -> Int  =  LT-False :: Bool `compare` (*) :: Int -> Int -> Int  =  LT-False :: Bool `compare` not :: Bool -> Bool  =  LT-False :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  LT-True :: Bool `compare` z :: Int  =  GT-True :: Bool `compare` -1 :: Int  =  LT-True :: Bool `compare` id y :: Int  =  LT-True :: Bool `compare` id 1 :: Int  =  LT-True :: Bool `compare` id (id x) :: Int  =  LT-True :: Bool `compare` id (id 0) :: Int  =  LT-True :: Bool `compare` id (id (id _)) :: Int  =  LT-True :: Bool `compare` id (negate _) :: Int  =  LT-True :: Bool `compare` id (abs _) :: Int  =  LT-True :: Bool `compare` id (_ + _) :: Int  =  LT-True :: Bool `compare` id (head _) :: Int  =  LT-True :: Bool `compare` id (ord _) :: Int  =  LT-True :: Bool `compare` negate x :: Int  =  LT-True :: Bool `compare` negate 0 :: Int  =  LT-True :: Bool `compare` negate (id _) :: Int  =  LT-True :: Bool `compare` abs x :: Int  =  LT-True :: Bool `compare` abs 0 :: Int  =  LT-True :: Bool `compare` abs (id _) :: Int  =  LT-True :: Bool `compare` _ + x :: Int  =  LT-True :: Bool `compare` _ + 0 :: Int  =  LT-True :: Bool `compare` _ + id _ :: Int  =  LT-True :: Bool `compare` x + _ :: Int  =  LT-True :: Bool `compare` 0 + _ :: Int  =  LT-True :: Bool `compare` id _ + _ :: Int  =  LT-True :: Bool `compare` _ * _ :: Int  =  LT-True :: Bool `compare` f _ :: Int  =  LT-True :: Bool `compare` head xs :: Int  =  LT-True :: Bool `compare` head [] :: Int  =  LT-True :: Bool `compare` head (_:_) :: Int  =  LT-True :: Bool `compare` ord c :: Int  =  LT-True :: Bool `compare` ord 'a' :: Int  =  LT-True :: Bool `compare` q :: Bool  =  GT-True :: Bool `compare` not p :: Bool  =  LT-True :: Bool `compare` not False :: Bool  =  LT-True :: Bool `compare` not True :: Bool  =  LT-True :: Bool `compare` not (not _) :: Bool  =  LT-True :: Bool `compare` _ || _ :: Bool  =  LT-True :: Bool `compare` d :: Char  =  GT-True :: Bool `compare` ' ' :: Char  =  LT-True :: Bool `compare` ys :: [Int]  =  GT-True :: Bool `compare` [0] :: [Int]  =  LT-True :: Bool `compare` _:xs :: [Int]  =  LT-True :: Bool `compare` [_] :: [Int]  =  LT-True :: Bool `compare` _:_:_ :: [Int]  =  LT-True :: Bool `compare` x:_ :: [Int]  =  LT-True :: Bool `compare` 0:_ :: [Int]  =  LT-True :: Bool `compare` id _:_ :: [Int]  =  LT-True :: Bool `compare` tail _ :: [Int]  =  LT-True :: Bool `compare` _ ++ _ :: [Int]  =  LT-True :: Bool `compare` negate :: Int -> Int  =  LT-True :: Bool `compare` abs :: Int -> Int  =  LT-True :: Bool `compare` (_ +) :: Int -> Int  =  LT-True :: Bool `compare` (*) :: Int -> Int -> Int  =  LT-True :: Bool `compare` not :: Bool -> Bool  =  LT-True :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  LT-not _ :: Bool `compare` z :: Int  =  GT-not _ :: Bool `compare` -1 :: Int  =  GT-not _ :: Bool `compare` id y :: Int  =  LT-not _ :: Bool `compare` id 1 :: Int  =  LT-not _ :: Bool `compare` id (id x) :: Int  =  LT-not _ :: Bool `compare` id (id 0) :: Int  =  LT-not _ :: Bool `compare` id (id (id _)) :: Int  =  LT-not _ :: Bool `compare` id (negate _) :: Int  =  LT-not _ :: Bool `compare` id (abs _) :: Int  =  LT-not _ :: Bool `compare` id (_ + _) :: Int  =  LT-not _ :: Bool `compare` id (head _) :: Int  =  LT-not _ :: Bool `compare` id (ord _) :: Int  =  LT-not _ :: Bool `compare` negate x :: Int  =  LT-not _ :: Bool `compare` negate 0 :: Int  =  LT-not _ :: Bool `compare` negate (id _) :: Int  =  LT-not _ :: Bool `compare` abs x :: Int  =  LT-not _ :: Bool `compare` abs 0 :: Int  =  LT-not _ :: Bool `compare` abs (id _) :: Int  =  LT-not _ :: Bool `compare` _ + x :: Int  =  LT-not _ :: Bool `compare` _ + 0 :: Int  =  LT-not _ :: Bool `compare` _ + id _ :: Int  =  LT-not _ :: Bool `compare` x + _ :: Int  =  LT-not _ :: Bool `compare` 0 + _ :: Int  =  LT-not _ :: Bool `compare` id _ + _ :: Int  =  LT-not _ :: Bool `compare` _ * _ :: Int  =  LT-not _ :: Bool `compare` f _ :: Int  =  GT-not _ :: Bool `compare` head xs :: Int  =  LT-not _ :: Bool `compare` head [] :: Int  =  LT-not _ :: Bool `compare` head (_:_) :: Int  =  LT-not _ :: Bool `compare` ord c :: Int  =  LT-not _ :: Bool `compare` ord 'a' :: Int  =  LT-not _ :: Bool `compare` q :: Bool  =  GT-not _ :: Bool `compare` not p :: Bool  =  LT-not _ :: Bool `compare` not False :: Bool  =  LT-not _ :: Bool `compare` not True :: Bool  =  LT-not _ :: Bool `compare` not (not _) :: Bool  =  LT-not _ :: Bool `compare` _ || _ :: Bool  =  LT-not _ :: Bool `compare` d :: Char  =  GT-not _ :: Bool `compare` ' ' :: Char  =  GT-not _ :: Bool `compare` ys :: [Int]  =  GT-not _ :: Bool `compare` [0] :: [Int]  =  GT-not _ :: Bool `compare` _:xs :: [Int]  =  LT-not _ :: Bool `compare` [_] :: [Int]  =  LT-not _ :: Bool `compare` _:_:_ :: [Int]  =  LT-not _ :: Bool `compare` x:_ :: [Int]  =  LT-not _ :: Bool `compare` 0:_ :: [Int]  =  LT-not _ :: Bool `compare` id _:_ :: [Int]  =  LT-not _ :: Bool `compare` tail _ :: [Int]  =  LT-not _ :: Bool `compare` _ ++ _ :: [Int]  =  LT-not _ :: Bool `compare` negate :: Int -> Int  =  GT-not _ :: Bool `compare` abs :: Int -> Int  =  GT-not _ :: Bool `compare` (_ +) :: Int -> Int  =  LT-not _ :: Bool `compare` (*) :: Int -> Int -> Int  =  GT-not _ :: Bool `compare` not :: Bool -> Bool  =  GT-not _ :: Bool `compare` (||) :: Bool -> Bool -> Bool  =  GT-c :: Char `compare` z :: Int  =  LT-c :: Char `compare` -1 :: Int  =  LT-c :: Char `compare` id y :: Int  =  LT-c :: Char `compare` id 1 :: Int  =  LT-c :: Char `compare` id (id x) :: Int  =  LT-c :: Char `compare` id (id 0) :: Int  =  LT-c :: Char `compare` id (id (id _)) :: Int  =  LT-c :: Char `compare` id (negate _) :: Int  =  LT-c :: Char `compare` id (abs _) :: Int  =  LT-c :: Char `compare` id (_ + _) :: Int  =  LT-c :: Char `compare` id (head _) :: Int  =  LT-c :: Char `compare` id (ord _) :: Int  =  LT-c :: Char `compare` negate x :: Int  =  LT-c :: Char `compare` negate 0 :: Int  =  LT-c :: Char `compare` negate (id _) :: Int  =  LT-c :: Char `compare` abs x :: Int  =  LT-c :: Char `compare` abs 0 :: Int  =  LT-c :: Char `compare` abs (id _) :: Int  =  LT-c :: Char `compare` _ + x :: Int  =  LT-c :: Char `compare` _ + 0 :: Int  =  LT-c :: Char `compare` _ + id _ :: Int  =  LT-c :: Char `compare` x + _ :: Int  =  LT-c :: Char `compare` 0 + _ :: Int  =  LT-c :: Char `compare` id _ + _ :: Int  =  LT-c :: Char `compare` _ * _ :: Int  =  LT-c :: Char `compare` f _ :: Int  =  LT-c :: Char `compare` head xs :: Int  =  LT-c :: Char `compare` head [] :: Int  =  LT-c :: Char `compare` head (_:_) :: Int  =  LT-c :: Char `compare` ord c :: Int  =  LT-c :: Char `compare` ord 'a' :: Int  =  LT-c :: Char `compare` q :: Bool  =  GT-c :: Char `compare` not p :: Bool  =  LT-c :: Char `compare` not False :: Bool  =  LT-c :: Char `compare` not True :: Bool  =  LT-c :: Char `compare` not (not _) :: Bool  =  LT-c :: Char `compare` _ || _ :: Bool  =  LT-c :: Char `compare` d :: Char  =  LT-c :: Char `compare` ' ' :: Char  =  LT-c :: Char `compare` ys :: [Int]  =  LT-c :: Char `compare` [0] :: [Int]  =  LT-c :: Char `compare` _:xs :: [Int]  =  LT-c :: Char `compare` [_] :: [Int]  =  LT-c :: Char `compare` _:_:_ :: [Int]  =  LT-c :: Char `compare` x:_ :: [Int]  =  LT-c :: Char `compare` 0:_ :: [Int]  =  LT-c :: Char `compare` id _:_ :: [Int]  =  LT-c :: Char `compare` tail _ :: [Int]  =  LT-c :: Char `compare` _ ++ _ :: [Int]  =  LT-c :: Char `compare` negate :: Int -> Int  =  LT-c :: Char `compare` abs :: Int -> Int  =  LT-c :: Char `compare` (_ +) :: Int -> Int  =  LT-c :: Char `compare` (*) :: Int -> Int -> Int  =  LT-c :: Char `compare` not :: Bool -> Bool  =  LT-c :: Char `compare` (||) :: Bool -> Bool -> Bool  =  LT-'a' :: Char `compare` z :: Int  =  GT-'a' :: Char `compare` -1 :: Int  =  LT-'a' :: Char `compare` id y :: Int  =  LT-'a' :: Char `compare` id 1 :: Int  =  LT-'a' :: Char `compare` id (id x) :: Int  =  LT-'a' :: Char `compare` id (id 0) :: Int  =  LT-'a' :: Char `compare` id (id (id _)) :: Int  =  LT-'a' :: Char `compare` id (negate _) :: Int  =  LT-'a' :: Char `compare` id (abs _) :: Int  =  LT-'a' :: Char `compare` id (_ + _) :: Int  =  LT-'a' :: Char `compare` id (head _) :: Int  =  LT-'a' :: Char `compare` id (ord _) :: Int  =  LT-'a' :: Char `compare` negate x :: Int  =  LT-'a' :: Char `compare` negate 0 :: Int  =  LT-'a' :: Char `compare` negate (id _) :: Int  =  LT-'a' :: Char `compare` abs x :: Int  =  LT-'a' :: Char `compare` abs 0 :: Int  =  LT-'a' :: Char `compare` abs (id _) :: Int  =  LT-'a' :: Char `compare` _ + x :: Int  =  LT-'a' :: Char `compare` _ + 0 :: Int  =  LT-'a' :: Char `compare` _ + id _ :: Int  =  LT-'a' :: Char `compare` x + _ :: Int  =  LT-'a' :: Char `compare` 0 + _ :: Int  =  LT-'a' :: Char `compare` id _ + _ :: Int  =  LT-'a' :: Char `compare` _ * _ :: Int  =  LT-'a' :: Char `compare` f _ :: Int  =  LT-'a' :: Char `compare` head xs :: Int  =  LT-'a' :: Char `compare` head [] :: Int  =  LT-'a' :: Char `compare` head (_:_) :: Int  =  LT-'a' :: Char `compare` ord c :: Int  =  LT-'a' :: Char `compare` ord 'a' :: Int  =  LT-'a' :: Char `compare` q :: Bool  =  GT-'a' :: Char `compare` not p :: Bool  =  LT-'a' :: Char `compare` not False :: Bool  =  LT-'a' :: Char `compare` not True :: Bool  =  LT-'a' :: Char `compare` not (not _) :: Bool  =  LT-'a' :: Char `compare` _ || _ :: Bool  =  LT-'a' :: Char `compare` d :: Char  =  GT-'a' :: Char `compare` ' ' :: Char  =  GT-'a' :: Char `compare` ys :: [Int]  =  GT-'a' :: Char `compare` [0] :: [Int]  =  LT-'a' :: Char `compare` _:xs :: [Int]  =  LT-'a' :: Char `compare` [_] :: [Int]  =  LT-'a' :: Char `compare` _:_:_ :: [Int]  =  LT-'a' :: Char `compare` x:_ :: [Int]  =  LT-'a' :: Char `compare` 0:_ :: [Int]  =  LT-'a' :: Char `compare` id _:_ :: [Int]  =  LT-'a' :: Char `compare` tail _ :: [Int]  =  LT-'a' :: Char `compare` _ ++ _ :: [Int]  =  LT-'a' :: Char `compare` negate :: Int -> Int  =  LT-'a' :: Char `compare` abs :: Int -> Int  =  LT-'a' :: Char `compare` (_ +) :: Int -> Int  =  LT-'a' :: Char `compare` (*) :: Int -> Int -> Int  =  LT-'a' :: Char `compare` not :: Bool -> Bool  =  LT-'a' :: Char `compare` (||) :: Bool -> Bool -> Bool  =  LT-xs :: [Int] `compare` z :: Int  =  GT-xs :: [Int] `compare` -1 :: Int  =  LT-xs :: [Int] `compare` id y :: Int  =  LT-xs :: [Int] `compare` id 1 :: Int  =  LT-xs :: [Int] `compare` id (id x) :: Int  =  LT-xs :: [Int] `compare` id (id 0) :: Int  =  LT-xs :: [Int] `compare` id (id (id _)) :: Int  =  LT-xs :: [Int] `compare` id (negate _) :: Int  =  LT-xs :: [Int] `compare` id (abs _) :: Int  =  LT-xs :: [Int] `compare` id (_ + _) :: Int  =  LT-xs :: [Int] `compare` id (head _) :: Int  =  LT-xs :: [Int] `compare` id (ord _) :: Int  =  LT-xs :: [Int] `compare` negate x :: Int  =  LT-xs :: [Int] `compare` negate 0 :: Int  =  LT-xs :: [Int] `compare` negate (id _) :: Int  =  LT-xs :: [Int] `compare` abs x :: Int  =  LT-xs :: [Int] `compare` abs 0 :: Int  =  LT-xs :: [Int] `compare` abs (id _) :: Int  =  LT-xs :: [Int] `compare` _ + x :: Int  =  LT-xs :: [Int] `compare` _ + 0 :: Int  =  LT-xs :: [Int] `compare` _ + id _ :: Int  =  LT-xs :: [Int] `compare` x + _ :: Int  =  LT-xs :: [Int] `compare` 0 + _ :: Int  =  LT-xs :: [Int] `compare` id _ + _ :: Int  =  LT-xs :: [Int] `compare` _ * _ :: Int  =  LT-xs :: [Int] `compare` f _ :: Int  =  LT-xs :: [Int] `compare` head xs :: Int  =  LT-xs :: [Int] `compare` head [] :: Int  =  LT-xs :: [Int] `compare` head (_:_) :: Int  =  LT-xs :: [Int] `compare` ord c :: Int  =  LT-xs :: [Int] `compare` ord 'a' :: Int  =  LT-xs :: [Int] `compare` q :: Bool  =  GT-xs :: [Int] `compare` not p :: Bool  =  LT-xs :: [Int] `compare` not False :: Bool  =  LT-xs :: [Int] `compare` not True :: Bool  =  LT-xs :: [Int] `compare` not (not _) :: Bool  =  LT-xs :: [Int] `compare` _ || _ :: Bool  =  LT-xs :: [Int] `compare` d :: Char  =  GT-xs :: [Int] `compare` ' ' :: Char  =  LT-xs :: [Int] `compare` ys :: [Int]  =  LT-xs :: [Int] `compare` [0] :: [Int]  =  LT-xs :: [Int] `compare` _:xs :: [Int]  =  LT-xs :: [Int] `compare` [_] :: [Int]  =  LT-xs :: [Int] `compare` _:_:_ :: [Int]  =  LT-xs :: [Int] `compare` x:_ :: [Int]  =  LT-xs :: [Int] `compare` 0:_ :: [Int]  =  LT-xs :: [Int] `compare` id _:_ :: [Int]  =  LT-xs :: [Int] `compare` tail _ :: [Int]  =  LT-xs :: [Int] `compare` _ ++ _ :: [Int]  =  LT-xs :: [Int] `compare` negate :: Int -> Int  =  LT-xs :: [Int] `compare` abs :: Int -> Int  =  LT-xs :: [Int] `compare` (_ +) :: Int -> Int  =  LT-xs :: [Int] `compare` (*) :: Int -> Int -> Int  =  LT-xs :: [Int] `compare` not :: Bool -> Bool  =  LT-xs :: [Int] `compare` (||) :: Bool -> Bool -> Bool  =  LT-[] :: [Int] `compare` z :: Int  =  GT-[] :: [Int] `compare` -1 :: Int  =  GT-[] :: [Int] `compare` id y :: Int  =  LT-[] :: [Int] `compare` id 1 :: Int  =  LT-[] :: [Int] `compare` id (id x) :: Int  =  LT-[] :: [Int] `compare` id (id 0) :: Int  =  LT-[] :: [Int] `compare` id (id (id _)) :: Int  =  LT-[] :: [Int] `compare` id (negate _) :: Int  =  LT-[] :: [Int] `compare` id (abs _) :: Int  =  LT-[] :: [Int] `compare` id (_ + _) :: Int  =  LT-[] :: [Int] `compare` id (head _) :: Int  =  LT-[] :: [Int] `compare` id (ord _) :: Int  =  LT-[] :: [Int] `compare` negate x :: Int  =  LT-[] :: [Int] `compare` negate 0 :: Int  =  LT-[] :: [Int] `compare` negate (id _) :: Int  =  LT-[] :: [Int] `compare` abs x :: Int  =  LT-[] :: [Int] `compare` abs 0 :: Int  =  LT-[] :: [Int] `compare` abs (id _) :: Int  =  LT-[] :: [Int] `compare` _ + x :: Int  =  LT-[] :: [Int] `compare` _ + 0 :: Int  =  LT-[] :: [Int] `compare` _ + id _ :: Int  =  LT-[] :: [Int] `compare` x + _ :: Int  =  LT-[] :: [Int] `compare` 0 + _ :: Int  =  LT-[] :: [Int] `compare` id _ + _ :: Int  =  LT-[] :: [Int] `compare` _ * _ :: Int  =  LT-[] :: [Int] `compare` f _ :: Int  =  LT-[] :: [Int] `compare` head xs :: Int  =  LT-[] :: [Int] `compare` head [] :: Int  =  LT-[] :: [Int] `compare` head (_:_) :: Int  =  LT-[] :: [Int] `compare` ord c :: Int  =  LT-[] :: [Int] `compare` ord 'a' :: Int  =  LT-[] :: [Int] `compare` q :: Bool  =  GT-[] :: [Int] `compare` not p :: Bool  =  LT-[] :: [Int] `compare` not False :: Bool  =  LT-[] :: [Int] `compare` not True :: Bool  =  LT-[] :: [Int] `compare` not (not _) :: Bool  =  LT-[] :: [Int] `compare` _ || _ :: Bool  =  LT-[] :: [Int] `compare` d :: Char  =  GT-[] :: [Int] `compare` ' ' :: Char  =  GT-[] :: [Int] `compare` ys :: [Int]  =  GT-[] :: [Int] `compare` [0] :: [Int]  =  LT-[] :: [Int] `compare` _:xs :: [Int]  =  LT-[] :: [Int] `compare` [_] :: [Int]  =  LT-[] :: [Int] `compare` _:_:_ :: [Int]  =  LT-[] :: [Int] `compare` x:_ :: [Int]  =  LT-[] :: [Int] `compare` 0:_ :: [Int]  =  LT-[] :: [Int] `compare` id _:_ :: [Int]  =  LT-[] :: [Int] `compare` tail _ :: [Int]  =  LT-[] :: [Int] `compare` _ ++ _ :: [Int]  =  LT-[] :: [Int] `compare` negate :: Int -> Int  =  LT-[] :: [Int] `compare` abs :: Int -> Int  =  LT-[] :: [Int] `compare` (_ +) :: Int -> Int  =  LT-[] :: [Int] `compare` (*) :: Int -> Int -> Int  =  LT-[] :: [Int] `compare` not :: Bool -> Bool  =  LT-[] :: [Int] `compare` (||) :: Bool -> Bool -> Bool  =  LT-_:_ :: [Int] `compare` z :: Int  =  GT-_:_ :: [Int] `compare` -1 :: Int  =  GT-_:_ :: [Int] `compare` id y :: Int  =  GT-_:_ :: [Int] `compare` id 1 :: Int  =  GT-_:_ :: [Int] `compare` id (id x) :: Int  =  LT-_:_ :: [Int] `compare` id (id 0) :: Int  =  LT-_:_ :: [Int] `compare` id (id (id _)) :: Int  =  LT-_:_ :: [Int] `compare` id (negate _) :: Int  =  LT-_:_ :: [Int] `compare` id (abs _) :: Int  =  LT-_:_ :: [Int] `compare` id (_ + _) :: Int  =  LT-_:_ :: [Int] `compare` id (head _) :: Int  =  LT-_:_ :: [Int] `compare` id (ord _) :: Int  =  LT-_:_ :: [Int] `compare` negate x :: Int  =  GT-_:_ :: [Int] `compare` negate 0 :: Int  =  GT-_:_ :: [Int] `compare` negate (id _) :: Int  =  LT-_:_ :: [Int] `compare` abs x :: Int  =  GT-_:_ :: [Int] `compare` abs 0 :: Int  =  GT-_:_ :: [Int] `compare` abs (id _) :: Int  =  LT-_:_ :: [Int] `compare` _ + x :: Int  =  GT-_:_ :: [Int] `compare` _ + 0 :: Int  =  LT-_:_ :: [Int] `compare` _ + id _ :: Int  =  LT-_:_ :: [Int] `compare` x + _ :: Int  =  GT-_:_ :: [Int] `compare` 0 + _ :: Int  =  LT-_:_ :: [Int] `compare` id _ + _ :: Int  =  LT-_:_ :: [Int] `compare` _ * _ :: Int  =  LT-_:_ :: [Int] `compare` f _ :: Int  =  GT-_:_ :: [Int] `compare` head xs :: Int  =  GT-_:_ :: [Int] `compare` head [] :: Int  =  GT-_:_ :: [Int] `compare` head (_:_) :: Int  =  LT-_:_ :: [Int] `compare` ord c :: Int  =  GT-_:_ :: [Int] `compare` ord 'a' :: Int  =  GT-_:_ :: [Int] `compare` q :: Bool  =  GT-_:_ :: [Int] `compare` not p :: Bool  =  GT-_:_ :: [Int] `compare` not False :: Bool  =  GT-_:_ :: [Int] `compare` not True :: Bool  =  GT-_:_ :: [Int] `compare` not (not _) :: Bool  =  LT-_:_ :: [Int] `compare` _ || _ :: Bool  =  LT-_:_ :: [Int] `compare` d :: Char  =  GT-_:_ :: [Int] `compare` ' ' :: Char  =  GT-_:_ :: [Int] `compare` ys :: [Int]  =  GT-_:_ :: [Int] `compare` [0] :: [Int]  =  GT-_:_ :: [Int] `compare` _:xs :: [Int]  =  LT-_:_ :: [Int] `compare` [_] :: [Int]  =  LT-_:_ :: [Int] `compare` _:_:_ :: [Int]  =  LT-_:_ :: [Int] `compare` x:_ :: [Int]  =  LT-_:_ :: [Int] `compare` 0:_ :: [Int]  =  LT-_:_ :: [Int] `compare` id _:_ :: [Int]  =  LT-_:_ :: [Int] `compare` tail _ :: [Int]  =  GT-_:_ :: [Int] `compare` _ ++ _ :: [Int]  =  LT-_:_ :: [Int] `compare` negate :: Int -> Int  =  GT-_:_ :: [Int] `compare` abs :: Int -> Int  =  GT-_:_ :: [Int] `compare` (_ +) :: Int -> Int  =  GT-_:_ :: [Int] `compare` (*) :: Int -> Int -> Int  =  GT-_:_ :: [Int] `compare` not :: Bool -> Bool  =  GT-_:_ :: [Int] `compare` (||) :: Bool -> Bool -> Bool  =  GT-id :: Int -> Int `compare` z :: Int  =  GT-id :: Int -> Int `compare` -1 :: Int  =  GT-id :: Int -> Int `compare` id y :: Int  =  LT-id :: Int -> Int `compare` id 1 :: Int  =  LT-id :: Int -> Int `compare` id (id x) :: Int  =  LT-id :: Int -> Int `compare` id (id 0) :: Int  =  LT-id :: Int -> Int `compare` id (id (id _)) :: Int  =  LT-id :: Int -> Int `compare` id (negate _) :: Int  =  LT-id :: Int -> Int `compare` id (abs _) :: Int  =  LT-id :: Int -> Int `compare` id (_ + _) :: Int  =  LT-id :: Int -> Int `compare` id (head _) :: Int  =  LT-id :: Int -> Int `compare` id (ord _) :: Int  =  LT-id :: Int -> Int `compare` negate x :: Int  =  LT-id :: Int -> Int `compare` negate 0 :: Int  =  LT-id :: Int -> Int `compare` negate (id _) :: Int  =  LT-id :: Int -> Int `compare` abs x :: Int  =  LT-id :: Int -> Int `compare` abs 0 :: Int  =  LT-id :: Int -> Int `compare` abs (id _) :: Int  =  LT-id :: Int -> Int `compare` _ + x :: Int  =  LT-id :: Int -> Int `compare` _ + 0 :: Int  =  LT-id :: Int -> Int `compare` _ + id _ :: Int  =  LT-id :: Int -> Int `compare` x + _ :: Int  =  LT-id :: Int -> Int `compare` 0 + _ :: Int  =  LT-id :: Int -> Int `compare` id _ + _ :: Int  =  LT-id :: Int -> Int `compare` _ * _ :: Int  =  LT-id :: Int -> Int `compare` f _ :: Int  =  LT-id :: Int -> Int `compare` head xs :: Int  =  LT-id :: Int -> Int `compare` head [] :: Int  =  LT-id :: Int -> Int `compare` head (_:_) :: Int  =  LT-id :: Int -> Int `compare` ord c :: Int  =  LT-id :: Int -> Int `compare` ord 'a' :: Int  =  LT-id :: Int -> Int `compare` q :: Bool  =  GT-id :: Int -> Int `compare` not p :: Bool  =  LT-id :: Int -> Int `compare` not False :: Bool  =  LT-id :: Int -> Int `compare` not True :: Bool  =  LT-id :: Int -> Int `compare` not (not _) :: Bool  =  LT-id :: Int -> Int `compare` _ || _ :: Bool  =  LT-id :: Int -> Int `compare` d :: Char  =  GT-id :: Int -> Int `compare` ' ' :: Char  =  GT-id :: Int -> Int `compare` ys :: [Int]  =  GT-id :: Int -> Int `compare` [0] :: [Int]  =  GT-id :: Int -> Int `compare` _:xs :: [Int]  =  LT-id :: Int -> Int `compare` [_] :: [Int]  =  LT-id :: Int -> Int `compare` _:_:_ :: [Int]  =  LT-id :: Int -> Int `compare` x:_ :: [Int]  =  LT-id :: Int -> Int `compare` 0:_ :: [Int]  =  LT-id :: Int -> Int `compare` id _:_ :: [Int]  =  LT-id :: Int -> Int `compare` tail _ :: [Int]  =  LT-id :: Int -> Int `compare` _ ++ _ :: [Int]  =  LT-id :: Int -> Int `compare` negate :: Int -> Int  =  LT-id :: Int -> Int `compare` abs :: Int -> Int  =  LT-id :: Int -> Int `compare` (_ +) :: Int -> Int  =  LT-id :: Int -> Int `compare` (*) :: Int -> Int -> Int  =  LT-id :: Int -> Int `compare` not :: Bool -> Bool  =  GT-id :: Int -> Int `compare` (||) :: Bool -> Bool -> Bool  =  LT-(+) :: Int -> Int -> Int `compare` z :: Int  =  GT-(+) :: Int -> Int -> Int `compare` -1 :: Int  =  GT-(+) :: Int -> Int -> Int `compare` id y :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id 1 :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (id x) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (id 0) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (id (id _)) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (negate _) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (abs _) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (_ + _) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (head _) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id (ord _) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` negate x :: Int  =  LT-(+) :: Int -> Int -> Int `compare` negate 0 :: Int  =  LT-(+) :: Int -> Int -> Int `compare` negate (id _) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` abs x :: Int  =  LT-(+) :: Int -> Int -> Int `compare` abs 0 :: Int  =  LT-(+) :: Int -> Int -> Int `compare` abs (id _) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` _ + x :: Int  =  LT-(+) :: Int -> Int -> Int `compare` _ + 0 :: Int  =  LT-(+) :: Int -> Int -> Int `compare` _ + id _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` x + _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` 0 + _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` id _ + _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` _ * _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` f _ :: Int  =  LT-(+) :: Int -> Int -> Int `compare` head xs :: Int  =  LT-(+) :: Int -> Int -> Int `compare` head [] :: Int  =  LT-(+) :: Int -> Int -> Int `compare` head (_:_) :: Int  =  LT-(+) :: Int -> Int -> Int `compare` ord c :: Int  =  LT-(+) :: Int -> Int -> Int `compare` ord 'a' :: Int  =  LT-(+) :: Int -> Int -> Int `compare` q :: Bool  =  GT-(+) :: Int -> Int -> Int `compare` not p :: Bool  =  LT-(+) :: Int -> Int -> Int `compare` not False :: Bool  =  LT-(+) :: Int -> Int -> Int `compare` not True :: Bool  =  LT-(+) :: Int -> Int -> Int `compare` not (not _) :: Bool  =  LT-(+) :: Int -> Int -> Int `compare` _ || _ :: Bool  =  LT-(+) :: Int -> Int -> Int `compare` d :: Char  =  GT-(+) :: Int -> Int -> Int `compare` ' ' :: Char  =  GT-(+) :: Int -> Int -> Int `compare` ys :: [Int]  =  GT-(+) :: Int -> Int -> Int `compare` [0] :: [Int]  =  GT-(+) :: Int -> Int -> Int `compare` _:xs :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` [_] :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` _:_:_ :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` x:_ :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` 0:_ :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` id _:_ :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` tail _ :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` _ ++ _ :: [Int]  =  LT-(+) :: Int -> Int -> Int `compare` negate :: Int -> Int  =  GT-(+) :: Int -> Int -> Int `compare` abs :: Int -> Int  =  GT-(+) :: Int -> Int -> Int `compare` (_ +) :: Int -> Int  =  LT-(+) :: Int -> Int -> Int `compare` (*) :: Int -> Int -> Int  =  GT-(+) :: Int -> Int -> Int `compare` not :: Bool -> Bool  =  GT-(+) :: Int -> Int -> Int `compare` (||) :: Bool -> Bool -> Bool  =  GT-z :: Int `compare` y :: Int  =  GT-z :: Int `compare` 1 :: Int  =  LT-z :: Int `compare` id x :: Int  =  LT-z :: Int `compare` id 0 :: Int  =  LT-z :: Int `compare` id (id _) :: Int  =  LT-z :: Int `compare` negate _ :: Int  =  LT-z :: Int `compare` abs _ :: Int  =  LT-z :: Int `compare` _ + _ :: Int  =  LT-z :: Int `compare` head _ :: Int  =  LT-z :: Int `compare` ord _ :: Int  =  LT-z :: Int `compare` p :: Bool  =  GT-z :: Int `compare` False :: Bool  =  LT-z :: Int `compare` True :: Bool  =  LT-z :: Int `compare` not _ :: Bool  =  LT-z :: Int `compare` c :: Char  =  GT-z :: Int `compare` 'a' :: Char  =  LT-z :: Int `compare` xs :: [Int]  =  LT-z :: Int `compare` [] :: [Int]  =  LT-z :: Int `compare` _:_ :: [Int]  =  LT-z :: Int `compare` id :: Int -> Int  =  LT-z :: Int `compare` (+) :: Int -> Int -> Int  =  LT--1 :: Int `compare` y :: Int  =  GT--1 :: Int `compare` 1 :: Int  =  GT--1 :: Int `compare` id x :: Int  =  LT--1 :: Int `compare` id 0 :: Int  =  LT--1 :: Int `compare` id (id _) :: Int  =  LT--1 :: Int `compare` negate _ :: Int  =  LT--1 :: Int `compare` abs _ :: Int  =  LT--1 :: Int `compare` _ + _ :: Int  =  LT--1 :: Int `compare` head _ :: Int  =  LT--1 :: Int `compare` ord _ :: Int  =  LT--1 :: Int `compare` p :: Bool  =  GT--1 :: Int `compare` False :: Bool  =  GT--1 :: Int `compare` True :: Bool  =  GT--1 :: Int `compare` not _ :: Bool  =  LT--1 :: Int `compare` c :: Char  =  GT--1 :: Int `compare` 'a' :: Char  =  GT--1 :: Int `compare` xs :: [Int]  =  GT--1 :: Int `compare` [] :: [Int]  =  LT--1 :: Int `compare` _:_ :: [Int]  =  LT--1 :: Int `compare` id :: Int -> Int  =  LT--1 :: Int `compare` (+) :: Int -> Int -> Int  =  LT-id y :: Int `compare` y :: Int  =  GT-id y :: Int `compare` 1 :: Int  =  GT-id y :: Int `compare` id x :: Int  =  GT-id y :: Int `compare` id 0 :: Int  =  LT-id y :: Int `compare` id (id _) :: Int  =  LT-id y :: Int `compare` negate _ :: Int  =  LT-id y :: Int `compare` abs _ :: Int  =  LT-id y :: Int `compare` _ + _ :: Int  =  LT-id y :: Int `compare` head _ :: Int  =  LT-id y :: Int `compare` ord _ :: Int  =  GT-id y :: Int `compare` p :: Bool  =  GT-id y :: Int `compare` False :: Bool  =  GT-id y :: Int `compare` True :: Bool  =  GT-id y :: Int `compare` not _ :: Bool  =  GT-id y :: Int `compare` c :: Char  =  GT-id y :: Int `compare` 'a' :: Char  =  GT-id y :: Int `compare` xs :: [Int]  =  GT-id y :: Int `compare` [] :: [Int]  =  GT-id y :: Int `compare` _:_ :: [Int]  =  LT-id y :: Int `compare` id :: Int -> Int  =  GT-id y :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id 1 :: Int `compare` y :: Int  =  GT-id 1 :: Int `compare` 1 :: Int  =  GT-id 1 :: Int `compare` id x :: Int  =  GT-id 1 :: Int `compare` id 0 :: Int  =  GT-id 1 :: Int `compare` id (id _) :: Int  =  LT-id 1 :: Int `compare` negate _ :: Int  =  GT-id 1 :: Int `compare` abs _ :: Int  =  GT-id 1 :: Int `compare` _ + _ :: Int  =  LT-id 1 :: Int `compare` head _ :: Int  =  GT-id 1 :: Int `compare` ord _ :: Int  =  GT-id 1 :: Int `compare` p :: Bool  =  GT-id 1 :: Int `compare` False :: Bool  =  GT-id 1 :: Int `compare` True :: Bool  =  GT-id 1 :: Int `compare` not _ :: Bool  =  GT-id 1 :: Int `compare` c :: Char  =  GT-id 1 :: Int `compare` 'a' :: Char  =  GT-id 1 :: Int `compare` xs :: [Int]  =  GT-id 1 :: Int `compare` [] :: [Int]  =  GT-id 1 :: Int `compare` _:_ :: [Int]  =  LT-id 1 :: Int `compare` id :: Int -> Int  =  GT-id 1 :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (id x) :: Int `compare` y :: Int  =  GT-id (id x) :: Int `compare` 1 :: Int  =  GT-id (id x) :: Int `compare` id x :: Int  =  GT-id (id x) :: Int `compare` id 0 :: Int  =  GT-id (id x) :: Int `compare` id (id _) :: Int  =  GT-id (id x) :: Int `compare` negate _ :: Int  =  GT-id (id x) :: Int `compare` abs _ :: Int  =  GT-id (id x) :: Int `compare` _ + _ :: Int  =  GT-id (id x) :: Int `compare` head _ :: Int  =  GT-id (id x) :: Int `compare` ord _ :: Int  =  GT-id (id x) :: Int `compare` p :: Bool  =  GT-id (id x) :: Int `compare` False :: Bool  =  GT-id (id x) :: Int `compare` True :: Bool  =  GT-id (id x) :: Int `compare` not _ :: Bool  =  GT-id (id x) :: Int `compare` c :: Char  =  GT-id (id x) :: Int `compare` 'a' :: Char  =  GT-id (id x) :: Int `compare` xs :: [Int]  =  GT-id (id x) :: Int `compare` [] :: [Int]  =  GT-id (id x) :: Int `compare` _:_ :: [Int]  =  GT-id (id x) :: Int `compare` id :: Int -> Int  =  GT-id (id x) :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (id 0) :: Int `compare` y :: Int  =  GT-id (id 0) :: Int `compare` 1 :: Int  =  GT-id (id 0) :: Int `compare` id x :: Int  =  GT-id (id 0) :: Int `compare` id 0 :: Int  =  GT-id (id 0) :: Int `compare` id (id _) :: Int  =  GT-id (id 0) :: Int `compare` negate _ :: Int  =  GT-id (id 0) :: Int `compare` abs _ :: Int  =  GT-id (id 0) :: Int `compare` _ + _ :: Int  =  GT-id (id 0) :: Int `compare` head _ :: Int  =  GT-id (id 0) :: Int `compare` ord _ :: Int  =  GT-id (id 0) :: Int `compare` p :: Bool  =  GT-id (id 0) :: Int `compare` False :: Bool  =  GT-id (id 0) :: Int `compare` True :: Bool  =  GT-id (id 0) :: Int `compare` not _ :: Bool  =  GT-id (id 0) :: Int `compare` c :: Char  =  GT-id (id 0) :: Int `compare` 'a' :: Char  =  GT-id (id 0) :: Int `compare` xs :: [Int]  =  GT-id (id 0) :: Int `compare` [] :: [Int]  =  GT-id (id 0) :: Int `compare` _:_ :: [Int]  =  GT-id (id 0) :: Int `compare` id :: Int -> Int  =  GT-id (id 0) :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (id (id _)) :: Int `compare` y :: Int  =  GT-id (id (id _)) :: Int `compare` 1 :: Int  =  GT-id (id (id _)) :: Int `compare` id x :: Int  =  GT-id (id (id _)) :: Int `compare` id 0 :: Int  =  GT-id (id (id _)) :: Int `compare` id (id _) :: Int  =  GT-id (id (id _)) :: Int `compare` negate _ :: Int  =  GT-id (id (id _)) :: Int `compare` abs _ :: Int  =  GT-id (id (id _)) :: Int `compare` _ + _ :: Int  =  GT-id (id (id _)) :: Int `compare` head _ :: Int  =  GT-id (id (id _)) :: Int `compare` ord _ :: Int  =  GT-id (id (id _)) :: Int `compare` p :: Bool  =  GT-id (id (id _)) :: Int `compare` False :: Bool  =  GT-id (id (id _)) :: Int `compare` True :: Bool  =  GT-id (id (id _)) :: Int `compare` not _ :: Bool  =  GT-id (id (id _)) :: Int `compare` c :: Char  =  GT-id (id (id _)) :: Int `compare` 'a' :: Char  =  GT-id (id (id _)) :: Int `compare` xs :: [Int]  =  GT-id (id (id _)) :: Int `compare` [] :: [Int]  =  GT-id (id (id _)) :: Int `compare` _:_ :: [Int]  =  GT-id (id (id _)) :: Int `compare` id :: Int -> Int  =  GT-id (id (id _)) :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (negate _) :: Int `compare` y :: Int  =  GT-id (negate _) :: Int `compare` 1 :: Int  =  GT-id (negate _) :: Int `compare` id x :: Int  =  GT-id (negate _) :: Int `compare` id 0 :: Int  =  GT-id (negate _) :: Int `compare` id (id _) :: Int  =  GT-id (negate _) :: Int `compare` negate _ :: Int  =  GT-id (negate _) :: Int `compare` abs _ :: Int  =  GT-id (negate _) :: Int `compare` _ + _ :: Int  =  GT-id (negate _) :: Int `compare` head _ :: Int  =  GT-id (negate _) :: Int `compare` ord _ :: Int  =  GT-id (negate _) :: Int `compare` p :: Bool  =  GT-id (negate _) :: Int `compare` False :: Bool  =  GT-id (negate _) :: Int `compare` True :: Bool  =  GT-id (negate _) :: Int `compare` not _ :: Bool  =  GT-id (negate _) :: Int `compare` c :: Char  =  GT-id (negate _) :: Int `compare` 'a' :: Char  =  GT-id (negate _) :: Int `compare` xs :: [Int]  =  GT-id (negate _) :: Int `compare` [] :: [Int]  =  GT-id (negate _) :: Int `compare` _:_ :: [Int]  =  GT-id (negate _) :: Int `compare` id :: Int -> Int  =  GT-id (negate _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (abs _) :: Int `compare` y :: Int  =  GT-id (abs _) :: Int `compare` 1 :: Int  =  GT-id (abs _) :: Int `compare` id x :: Int  =  GT-id (abs _) :: Int `compare` id 0 :: Int  =  GT-id (abs _) :: Int `compare` id (id _) :: Int  =  GT-id (abs _) :: Int `compare` negate _ :: Int  =  GT-id (abs _) :: Int `compare` abs _ :: Int  =  GT-id (abs _) :: Int `compare` _ + _ :: Int  =  GT-id (abs _) :: Int `compare` head _ :: Int  =  GT-id (abs _) :: Int `compare` ord _ :: Int  =  GT-id (abs _) :: Int `compare` p :: Bool  =  GT-id (abs _) :: Int `compare` False :: Bool  =  GT-id (abs _) :: Int `compare` True :: Bool  =  GT-id (abs _) :: Int `compare` not _ :: Bool  =  GT-id (abs _) :: Int `compare` c :: Char  =  GT-id (abs _) :: Int `compare` 'a' :: Char  =  GT-id (abs _) :: Int `compare` xs :: [Int]  =  GT-id (abs _) :: Int `compare` [] :: [Int]  =  GT-id (abs _) :: Int `compare` _:_ :: [Int]  =  GT-id (abs _) :: Int `compare` id :: Int -> Int  =  GT-id (abs _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (_ + _) :: Int `compare` y :: Int  =  GT-id (_ + _) :: Int `compare` 1 :: Int  =  GT-id (_ + _) :: Int `compare` id x :: Int  =  GT-id (_ + _) :: Int `compare` id 0 :: Int  =  GT-id (_ + _) :: Int `compare` id (id _) :: Int  =  GT-id (_ + _) :: Int `compare` negate _ :: Int  =  GT-id (_ + _) :: Int `compare` abs _ :: Int  =  GT-id (_ + _) :: Int `compare` _ + _ :: Int  =  GT-id (_ + _) :: Int `compare` head _ :: Int  =  GT-id (_ + _) :: Int `compare` ord _ :: Int  =  GT-id (_ + _) :: Int `compare` p :: Bool  =  GT-id (_ + _) :: Int `compare` False :: Bool  =  GT-id (_ + _) :: Int `compare` True :: Bool  =  GT-id (_ + _) :: Int `compare` not _ :: Bool  =  GT-id (_ + _) :: Int `compare` c :: Char  =  GT-id (_ + _) :: Int `compare` 'a' :: Char  =  GT-id (_ + _) :: Int `compare` xs :: [Int]  =  GT-id (_ + _) :: Int `compare` [] :: [Int]  =  GT-id (_ + _) :: Int `compare` _:_ :: [Int]  =  GT-id (_ + _) :: Int `compare` id :: Int -> Int  =  GT-id (_ + _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (head _) :: Int `compare` y :: Int  =  GT-id (head _) :: Int `compare` 1 :: Int  =  GT-id (head _) :: Int `compare` id x :: Int  =  GT-id (head _) :: Int `compare` id 0 :: Int  =  GT-id (head _) :: Int `compare` id (id _) :: Int  =  GT-id (head _) :: Int `compare` negate _ :: Int  =  GT-id (head _) :: Int `compare` abs _ :: Int  =  GT-id (head _) :: Int `compare` _ + _ :: Int  =  GT-id (head _) :: Int `compare` head _ :: Int  =  GT-id (head _) :: Int `compare` ord _ :: Int  =  GT-id (head _) :: Int `compare` p :: Bool  =  GT-id (head _) :: Int `compare` False :: Bool  =  GT-id (head _) :: Int `compare` True :: Bool  =  GT-id (head _) :: Int `compare` not _ :: Bool  =  GT-id (head _) :: Int `compare` c :: Char  =  GT-id (head _) :: Int `compare` 'a' :: Char  =  GT-id (head _) :: Int `compare` xs :: [Int]  =  GT-id (head _) :: Int `compare` [] :: [Int]  =  GT-id (head _) :: Int `compare` _:_ :: [Int]  =  GT-id (head _) :: Int `compare` id :: Int -> Int  =  GT-id (head _) :: Int `compare` (+) :: Int -> Int -> Int  =  GT-id (ord _) :: Int `compare` y :: Int  =  GT-id (ord _) :: Int `compare` 1 :: Int  =  GT-id (ord _) :: Int `compare` id x :: Int  =  GT-id (ord _) :: Int `compare` id 0 :: Int  =  GT-id (ord _) :: Int `compare` id (id _) :: Int  =  GT-id (ord _) :: Int `compare` negate _ :: Int  =  GT-id (ord _) :: Int `compare` abs _ :: Int  =  GT-id (ord _) :: Int `compare` _ + _ :: Int  =  GT-id (ord _) :: Int `compare` head _ :: Int  =  GT-id (ord _) :: Int `compare` ord _ :: Int  =  GT-
− test/model/bench/match-list.out
@@ -1,795 +0,0 @@-id p  =  p-p && p  =  p-p || p  =  p-p && q  =  q && p-p || q  =  q || p-not (not p)  =  p-p && True  =  p-True && p  =  p-p && False  =  False-False && p  =  False-p || True  =  True-True || p  =  True-p || False  =  p-False || p  =  p-p && not p  =  False-p || not p  =  True-not p && p  =  False-not p || p  =  True-(p && q) && r  =  p && (q && r)-(p || q) || r  =  p || (q || r)-not (p && q)  =  not p || not q-not (p || q)  =  not p && not q-not False  =  True-not True  =  False-not (not p && not q)  =  p || q-not (not p || not q)  =  p && q-p && not (p && q)  =  p && not q-id x  =  x-abs (abs x)  =  abs x-x + 0  =  x-0 + x  =  x-x * 1  =  x-1 * x  =  x-x * 0  =  0-0 * x  =  0-x + y  =  y + x-x * y  =  y * x-(x + y) + z  =  x + (y + z)-(x * y) * z  =  x * (y * z)-(x + x) * y  =  x * (y + y)-x * (y + 1)  =  x + x * y-(x + 1) * y  =  x + x * y-x * (y + z)  =  x * y + x * z-(x + y) * z  =  x * z + y * z-negate (negate x)  =  x-x + negate x  =  0-negate x + x  =  0-abs (negate x)  =  abs x-2 * x  =  x + x-x * 2  =  x + x-3 * x  =  x + (x + x)-x * 3  =  x + (x + x)-4 * x  =  x + (x + (x + x))-x * 4  =  x + (x + (x + x))-abs (x * x)  =  x * x-abs x * abs y  =  abs (x * y)-abs x * abs x  =  abs (x + x)-abs (abs x + abs y)  =  abs x + abs y-abs (x + x) * y  =  abs x * y + abs x * y-abs x * signum x  =  x-signum x * abs x  =  x-id xs  =  xs-head (x:xs)  =  x-tail (x:xs)  =  xs-xs ++ []  =  xs-[] ++ xs  =  xs-[x] ++ xs  =  x:xs-(x:xs) ++ ys  =  x:(xs ++ ys)-(xs ++ ys) ++ zs  =  xs ++ (ys ++ zs)-elem x (sort xs)  =  elem x xs-elem x (insert y xs)  =  elem x (y:xs)-sort (sort xs)  =  sort xs-insert x []  =  [x]-sort (xs ++ ys)  =  sort (ys ++ xs)-sort (insert x xs)  =  insert x (sort xs)-sort (x:xs)  =  insert x (sort xs)-sort (xs ++ sort ys)  =  sort (xs ++ ys)-sort (sort xs ++ ys)  =  sort (xs ++ ys)-insert x (insert y xs)  =  insert y (insert x xs)-insert x (x:xs)  =  x:x:xs-insert x [y]  =  insert y [x]-length (x:xs)  =  length (y:xs)-length (xs ++ ys)  =  length (ys ++ xs)-length (x:y:xs)  =  length (z:x':xs)-length (x:(xs ++ ys))  =  length (y:(ys ++ xs))-length (xs ++ (ys ++ zs))  =  length (xs ++ (zs ++ ys))-not (odd x)  =  even x-not (even x)  =  odd x-x == x  =  True-x /= x  =  False-p == p  =  True-p /= p  =  False-f (g x)  =  (f . g) x-map id xs  =  xs-map (f . g) xs  =  map f (map g xs)-f . id  =  f-id . f  =  f-(f . g) . h  =  f . (g . h)-not . not  =  id--(id x :: Int,[(x :: Int,_ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id _ :: Int)],x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(id x :: Int,[(x :: Int,y :: Int)],x :: Int)-(id x :: Int,[(x :: Int,1 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord _ :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(not False :: Bool,[],True :: Bool)-(not True :: Bool,[],False :: Bool)-(not (not p) :: Bool,[(p :: Bool,_ :: Bool)],p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(id x :: Int,[(x :: Int,z :: Int)],x :: Int)-(id x :: Int,[(x :: Int,-1 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id y :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id 1 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (ord _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + id _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,x + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,0 + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id _ + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ * _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,f _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head xs :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head [] :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (_:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord c :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord 'a' :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,x :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,y :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,1 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,x :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ :: Int)],y * x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],x :: Int)-(not (not p) :: Bool,[(p :: Bool,p :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,False :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,True :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not _ :: Bool)],p :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(x == x :: Bool,[(x :: Int,_ :: Int)],True :: Bool)-(p == p :: Bool,[(p :: Bool,_ :: Bool)],True :: Bool)-(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])-(xs ++ [] :: [Int],[(xs :: [Int],_ :: [Int])],xs :: [Int])-([] ++ xs :: [Int],[(xs :: [Int],_ :: [Int])],xs :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-(id x :: Int,[(x :: Int,x' :: Int)],x :: Int)-(id x :: Int,[(x :: Int,2 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id z :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (-1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id y) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id 1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id x)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id 0)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (id _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (negate _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (abs _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (_ + _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (head _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (ord _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (x + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (0 + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id _ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ * _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (f _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head xs) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head []) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head (_:_)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (ord c) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (ord 'a') :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate y :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate 1 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (negate _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (abs _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (_ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (head _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (ord _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs y :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs 1 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (negate _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (abs _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (_ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (head _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (ord _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + y :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + 1 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + id x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + id 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + id (id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + negate _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + abs _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + (_ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + head _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ + ord _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,x + x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,x + 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,x + id _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,0 + x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,0 + 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,0 + id _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id _ + x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id _ + 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id _ + id _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ * x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ * 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,_ * id _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,f x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,f 0 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,f (id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,y + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,1 + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id x + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id 0 + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id _) + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate _ + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs _ + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,(_ + _) + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head _ + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord _ + _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,x * _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,0 * _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id _ * _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,g _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head ys :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head [0] :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (_:xs) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head [_] :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (_:_:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (x:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (0:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (id _:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (tail _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (_ ++ _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord d :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord ' ' :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,z :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,-1 :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head xs :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,head [] :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,head (_:_) :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord c :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord 'a' :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,x :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x * y :: Int,[(y :: Int,y :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,1 :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,head _ :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,y :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,y :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(y +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,1 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,1 :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(1 +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id x :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id x +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id 0 +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id (id _) +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(negate _ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(abs _ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,((_ + _) +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,head _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,head _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(head _ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(ord _ +) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,x :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,x :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x *) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,0 :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,0 :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 *) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,id _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,id _ :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,g :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,z :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,-1 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id y :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 1 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id x) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id 0) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id (id _)) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (negate _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (abs _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (_ + _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (head _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (ord _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate (id _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs (id _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + id _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,x + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ * _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,f _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head xs :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head [] :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head (_:_) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord c :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord 'a' :: Int)],y + x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,y :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,1 :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id x :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 0 :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id _) :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,head _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord _ :: Int)],y * x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],ys :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[0] :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:xs :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[_] :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],x:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],0:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],id _:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],tail _ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ ++ _ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,id _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,id _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,id _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,y :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,1 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id 0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id (id _) :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,negate _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,abs _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,_ + _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,head _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,ord _ :: Int)],x :: Int)-(not (not p) :: Bool,[(p :: Bool,q :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not p :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not False :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not True :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not (not _) :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,_ || _ :: Bool)],p :: Bool)-(not (p || q) :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],not p && not q :: Bool)-(not (p && q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],not p || not q :: Bool)-(not (odd x) :: Bool,[(x :: Int,_ :: Int)],even x :: Bool)-(not (even x) :: Bool,[(x :: Int,_ :: Int)],odd x :: Bool)-(p || q :: Bool,[(q :: Bool,q :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not p :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not False :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not True :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not (not _) :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ || _ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p && q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,q :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not (not _) :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ || _ :: Bool)],q || p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],q && p :: Bool)-(tail (x:xs) :: [Int],[(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],xs :: [Int])-(xs ++ [] :: [Int],[(xs :: [Int],xs :: [Int])],xs :: [Int])-([] ++ xs :: [Int],[(xs :: [Int],xs :: [Int])],xs :: [Int])-(xs ++ [] :: [Int],[(xs :: [Int],[] :: [Int])],xs :: [Int])-([] ++ xs :: [Int],[(xs :: [Int],_:_ :: [Int])],xs :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],xs :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-(xs ++ [] :: [Int],[(xs :: [Int],_:_ :: [Int])],xs :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_:_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],x:(xs ++ ys) :: [Int])-((xs ++ ys) ++ zs :: [Int],[(zs :: [Int],_ :: [Int]),(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int])],xs ++ (ys ++ zs) :: [Int])-(sort (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],insert x (sort xs) :: [Int])-(insert x [] :: [Int],[(x :: Int,_ :: Int)],[x] :: [Int])-(insert x (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:x:xs :: [Int])-(id x :: Int,[(x :: Int,y' :: Int)],x :: Int)-(id x :: Int,[(x :: Int,-2 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id x' :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id 2 :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id z) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (-1)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id y)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id 1)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (id x))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (id 0))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (id (id _)))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (negate _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (abs _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (_ + _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (head _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id (ord _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (negate x)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (negate 0)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (negate (id _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (abs x)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (abs 0)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (abs (id _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (_ + x)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (_ + 0)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (_ + id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (x + _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (0 + _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id _ + _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (_ * _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (f _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (head xs)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (head [])) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (head (_:_))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (ord c)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (ord 'a')) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate y) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate 1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (id x)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (id 0)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (id (id _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (negate _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (abs _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (_ + _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (head _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate (ord _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs y) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs 1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (id x)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (id 0)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (id (id _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (negate _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (abs _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (_ + _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (head _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs (ord _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + y) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + 1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + id x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + id 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + id (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + negate _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + abs _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + (_ + _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + head _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ + ord _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (x + x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (x + 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (x + id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (0 + x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (0 + 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (0 + id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id _ + x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id _ + 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id _ + id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ * x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ * 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (_ * id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (f x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (f 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (f (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (y + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (1 + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id x + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id 0 + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id (id _) + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (negate _ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (abs _ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id ((_ + _) + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head _ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (ord _ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (x * _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (0 * _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (id _ * _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (g _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head ys) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head [0]) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head (_:xs)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head [_]) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head (_:_:_)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head (x:_)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head (0:_)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head (id _:_)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head (tail _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (head (_ ++ _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (ord d) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,id (ord ' ') :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate z :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (-1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id y) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id 1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (id x)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (id 0)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (id (id _))) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (negate _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (abs _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (_ + _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (head _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id (ord _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (negate x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (negate 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (negate (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (abs x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (abs 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (abs (id _)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (_ + x) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (_ + 0) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (_ + id _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (x + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (0 + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (id _ + _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (_ * _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (f _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (head xs) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (head []) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (head (_:_)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (ord c) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,negate (ord 'a') :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs z :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (-1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id y) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id 1) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id (id x)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id (id 0)) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,abs (id (id (id _))) :: Int)],x :: Int)--True
− test/model/bench/match-noop.out
@@ -1,1182 +0,0 @@-id p  =  p-p && p  =  p-p || p  =  p-p && q  =  q && p-p || q  =  q || p-not (not p)  =  p-p && True  =  p-True && p  =  p-p && False  =  False-False && p  =  False-p || True  =  True-True || p  =  True-p || False  =  p-False || p  =  p-p && not p  =  False-p || not p  =  True-not p && p  =  False-not p || p  =  True-(p && q) && r  =  p && (q && r)-(p || q) || r  =  p || (q || r)-not (p && q)  =  not p || not q-not (p || q)  =  not p && not q-not False  =  True-not True  =  False-not (not p && not q)  =  p || q-not (not p || not q)  =  p && q-p && not (p && q)  =  p && not q-id x  =  x-abs (abs x)  =  abs x-x + 0  =  x-0 + x  =  x-x * 1  =  x-1 * x  =  x-x * 0  =  0-0 * x  =  0-x + y  =  y + x-x * y  =  y * x-(x + y) + z  =  x + (y + z)-(x * y) * z  =  x * (y * z)-(x + x) * y  =  x * (y + y)-x * (y + 1)  =  x + x * y-(x + 1) * y  =  x + x * y-x * (y + z)  =  x * y + x * z-(x + y) * z  =  x * z + y * z-negate (negate x)  =  x-x + negate x  =  0-negate x + x  =  0-abs (negate x)  =  abs x-2 * x  =  x + x-x * 2  =  x + x-3 * x  =  x + (x + x)-x * 3  =  x + (x + x)-4 * x  =  x + (x + (x + x))-x * 4  =  x + (x + (x + x))-abs (x * x)  =  x * x-abs x * abs y  =  abs (x * y)-abs x * abs x  =  abs (x + x)-abs (abs x + abs y)  =  abs x + abs y-abs (x + x) * y  =  abs x * y + abs x * y-abs x * signum x  =  x-signum x * abs x  =  x-id xs  =  xs-head (x:xs)  =  x-tail (x:xs)  =  xs-xs ++ []  =  xs-[] ++ xs  =  xs-[x] ++ xs  =  x:xs-(x:xs) ++ ys  =  x:(xs ++ ys)-(xs ++ ys) ++ zs  =  xs ++ (ys ++ zs)-elem x (sort xs)  =  elem x xs-elem x (insert y xs)  =  elem x (y:xs)-sort (sort xs)  =  sort xs-insert x []  =  [x]-sort (xs ++ ys)  =  sort (ys ++ xs)-sort (insert x xs)  =  insert x (sort xs)-sort (x:xs)  =  insert x (sort xs)-sort (xs ++ sort ys)  =  sort (xs ++ ys)-sort (sort xs ++ ys)  =  sort (xs ++ ys)-insert x (insert y xs)  =  insert y (insert x xs)-insert x (x:xs)  =  x:x:xs-insert x [y]  =  insert y [x]-length (x:xs)  =  length (y:xs)-length (xs ++ ys)  =  length (ys ++ xs)-length (x:y:xs)  =  length (z:x':xs)-length (x:(xs ++ ys))  =  length (y:(ys ++ xs))-length (xs ++ (ys ++ zs))  =  length (xs ++ (zs ++ ys))-not (odd x)  =  even x-not (even x)  =  odd x-x == x  =  True-x /= x  =  False-p == p  =  True-p /= p  =  False-f (g x)  =  (f . g) x-map id xs  =  xs-map (f . g) xs  =  map f (map g xs)-f . id  =  f-id . f  =  f-(f . g) . h  =  f . (g . h)-not . not  =  id--(_ :: Int,[],_ :: Int)-(x :: Int,[],x :: Int)-(0 :: Int,[],0 :: Int)-(id _ :: Int,[],id _ :: Int)-(_ :: Bool,[],_ :: Bool)-(_ :: Char,[],_ :: Char)-(_ :: [Int],[],_ :: [Int])-(y :: Int,[],y :: Int)-(1 :: Int,[],1 :: Int)-(id x :: Int,[],id x :: Int)-(id 0 :: Int,[],id 0 :: Int)-(id (id _) :: Int,[],id (id _) :: Int)-(negate _ :: Int,[],negate _ :: Int)-(abs _ :: Int,[],abs _ :: Int)-(_ + _ :: Int,[],_ + _ :: Int)-(head _ :: Int,[],head _ :: Int)-(ord _ :: Int,[],ord _ :: Int)-(p :: Bool,[],p :: Bool)-(False :: Bool,[],False :: Bool)-(True :: Bool,[],True :: Bool)-(not _ :: Bool,[],not _ :: Bool)-(c :: Char,[],c :: Char)-('a' :: Char,[],'a' :: Char)-(xs :: [Int],[],xs :: [Int])-([] :: [Int],[],[] :: [Int])-(_:_ :: [Int],[],_:_ :: [Int])-(id :: Int -> Int,[],id :: Int -> Int)-((+) :: Int -> Int -> Int,[],(+) :: Int -> Int -> Int)-(z :: Int,[],z :: Int)-(-1 :: Int,[],-1 :: Int)-(id y :: Int,[],id y :: Int)-(id 1 :: Int,[],id 1 :: Int)-(id (id x) :: Int,[],id (id x) :: Int)-(id (id 0) :: Int,[],id (id 0) :: Int)-(id (id (id _)) :: Int,[],id (id (id _)) :: Int)-(id (negate _) :: Int,[],id (negate _) :: Int)-(id (abs _) :: Int,[],id (abs _) :: Int)-(id (_ + _) :: Int,[],id (_ + _) :: Int)-(id (head _) :: Int,[],id (head _) :: Int)-(id (ord _) :: Int,[],id (ord _) :: Int)-(negate x :: Int,[],negate x :: Int)-(negate 0 :: Int,[],negate 0 :: Int)-(negate (id _) :: Int,[],negate (id _) :: Int)-(abs x :: Int,[],abs x :: Int)-(abs 0 :: Int,[],abs 0 :: Int)-(abs (id _) :: Int,[],abs (id _) :: Int)-(_ + x :: Int,[],_ + x :: Int)-(_ + 0 :: Int,[],_ + 0 :: Int)-(_ + id _ :: Int,[],_ + id _ :: Int)-(x + _ :: Int,[],x + _ :: Int)-(0 + _ :: Int,[],0 + _ :: Int)-(id _ + _ :: Int,[],id _ + _ :: Int)-(_ * _ :: Int,[],_ * _ :: Int)-(f _ :: Int,[],f _ :: Int)-(head xs :: Int,[],head xs :: Int)-(head [] :: Int,[],head [] :: Int)-(head (_:_) :: Int,[],head (_:_) :: Int)-(ord c :: Int,[],ord c :: Int)-(ord 'a' :: Int,[],ord 'a' :: Int)-(q :: Bool,[],q :: Bool)-(not p :: Bool,[],not p :: Bool)-(not False :: Bool,[],not False :: Bool)-(not True :: Bool,[],not True :: Bool)-(not (not _) :: Bool,[],not (not _) :: Bool)-(_ || _ :: Bool,[],_ || _ :: Bool)-(d :: Char,[],d :: Char)-(' ' :: Char,[],' ' :: Char)-(ys :: [Int],[],ys :: [Int])-([0] :: [Int],[],[0] :: [Int])-(_:xs :: [Int],[],_:xs :: [Int])-([_] :: [Int],[],[_] :: [Int])-(_:_:_ :: [Int],[],_:_:_ :: [Int])-(x:_ :: [Int],[],x:_ :: [Int])-(0:_ :: [Int],[],0:_ :: [Int])-(id _:_ :: [Int],[],id _:_ :: [Int])-(tail _ :: [Int],[],tail _ :: [Int])-(_ ++ _ :: [Int],[],_ ++ _ :: [Int])-(negate :: Int -> Int,[],negate :: Int -> Int)-(abs :: Int -> Int,[],abs :: Int -> Int)-((_ +) :: Int -> Int,[],(_ +) :: Int -> Int)-((*) :: Int -> Int -> Int,[],(*) :: Int -> Int -> Int)-(not :: Bool -> Bool,[],not :: Bool -> Bool)-((||) :: Bool -> Bool -> Bool,[],(||) :: Bool -> Bool -> Bool)-(x' :: Int,[],x' :: Int)-(2 :: Int,[],2 :: Int)-(id z :: Int,[],id z :: Int)-(id (-1) :: Int,[],id (-1) :: Int)-(id (id y) :: Int,[],id (id y) :: Int)-(id (id 1) :: Int,[],id (id 1) :: Int)-(id (id (id x)) :: Int,[],id (id (id x)) :: Int)-(id (id (id 0)) :: Int,[],id (id (id 0)) :: Int)-(id (id (id (id _))) :: Int,[],id (id (id (id _))) :: Int)-(id (id (negate _)) :: Int,[],id (id (negate _)) :: Int)-(id (id (abs _)) :: Int,[],id (id (abs _)) :: Int)-(id (id (_ + _)) :: Int,[],id (id (_ + _)) :: Int)-(id (id (head _)) :: Int,[],id (id (head _)) :: Int)-(id (id (ord _)) :: Int,[],id (id (ord _)) :: Int)-(id (negate x) :: Int,[],id (negate x) :: Int)-(id (negate 0) :: Int,[],id (negate 0) :: Int)-(id (negate (id _)) :: Int,[],id (negate (id _)) :: Int)-(id (abs x) :: Int,[],id (abs x) :: Int)-(id (abs 0) :: Int,[],id (abs 0) :: Int)-(id (abs (id _)) :: Int,[],id (abs (id _)) :: Int)-(id (_ + x) :: Int,[],id (_ + x) :: Int)-(id (_ + 0) :: Int,[],id (_ + 0) :: Int)-(id (_ + id _) :: Int,[],id (_ + id _) :: Int)-(id (x + _) :: Int,[],id (x + _) :: Int)-(id (0 + _) :: Int,[],id (0 + _) :: Int)-(id (id _ + _) :: Int,[],id (id _ + _) :: Int)-(id (_ * _) :: Int,[],id (_ * _) :: Int)-(id (f _) :: Int,[],id (f _) :: Int)-(id (head xs) :: Int,[],id (head xs) :: Int)-(id (head []) :: Int,[],id (head []) :: Int)-(id (head (_:_)) :: Int,[],id (head (_:_)) :: Int)-(id (ord c) :: Int,[],id (ord c) :: Int)-(id (ord 'a') :: Int,[],id (ord 'a') :: Int)-(negate y :: Int,[],negate y :: Int)-(negate 1 :: Int,[],negate 1 :: Int)-(negate (id x) :: Int,[],negate (id x) :: Int)-(negate (id 0) :: Int,[],negate (id 0) :: Int)-(negate (id (id _)) :: Int,[],negate (id (id _)) :: Int)-(negate (negate _) :: Int,[],negate (negate _) :: Int)-(negate (abs _) :: Int,[],negate (abs _) :: Int)-(negate (_ + _) :: Int,[],negate (_ + _) :: Int)-(negate (head _) :: Int,[],negate (head _) :: Int)-(negate (ord _) :: Int,[],negate (ord _) :: Int)-(abs y :: Int,[],abs y :: Int)-(abs 1 :: Int,[],abs 1 :: Int)-(abs (id x) :: Int,[],abs (id x) :: Int)-(abs (id 0) :: Int,[],abs (id 0) :: Int)-(abs (id (id _)) :: Int,[],abs (id (id _)) :: Int)-(abs (negate _) :: Int,[],abs (negate _) :: Int)-(abs (abs _) :: Int,[],abs (abs _) :: Int)-(abs (_ + _) :: Int,[],abs (_ + _) :: Int)-(abs (head _) :: Int,[],abs (head _) :: Int)-(abs (ord _) :: Int,[],abs (ord _) :: Int)-(_ + y :: Int,[],_ + y :: Int)-(_ + 1 :: Int,[],_ + 1 :: Int)-(_ + id x :: Int,[],_ + id x :: Int)-(_ + id 0 :: Int,[],_ + id 0 :: Int)-(_ + id (id _) :: Int,[],_ + id (id _) :: Int)-(_ + negate _ :: Int,[],_ + negate _ :: Int)-(_ + abs _ :: Int,[],_ + abs _ :: Int)-(_ + (_ + _) :: Int,[],_ + (_ + _) :: Int)-(_ + head _ :: Int,[],_ + head _ :: Int)-(_ + ord _ :: Int,[],_ + ord _ :: Int)-(x + x :: Int,[],x + x :: Int)-(x + 0 :: Int,[],x + 0 :: Int)-(x + id _ :: Int,[],x + id _ :: Int)-(0 + x :: Int,[],0 + x :: Int)-(0 + 0 :: Int,[],0 + 0 :: Int)-(0 + id _ :: Int,[],0 + id _ :: Int)-(id _ + x :: Int,[],id _ + x :: Int)-(id _ + 0 :: Int,[],id _ + 0 :: Int)-(id _ + id _ :: Int,[],id _ + id _ :: Int)-(_ * x :: Int,[],_ * x :: Int)-(_ * 0 :: Int,[],_ * 0 :: Int)-(_ * id _ :: Int,[],_ * id _ :: Int)-(f x :: Int,[],f x :: Int)-(f 0 :: Int,[],f 0 :: Int)-(f (id _) :: Int,[],f (id _) :: Int)-(y + _ :: Int,[],y + _ :: Int)-(1 + _ :: Int,[],1 + _ :: Int)-(id x + _ :: Int,[],id x + _ :: Int)-(id 0 + _ :: Int,[],id 0 + _ :: Int)-(id (id _) + _ :: Int,[],id (id _) + _ :: Int)-(negate _ + _ :: Int,[],negate _ + _ :: Int)-(abs _ + _ :: Int,[],abs _ + _ :: Int)-((_ + _) + _ :: Int,[],(_ + _) + _ :: Int)-(head _ + _ :: Int,[],head _ + _ :: Int)-(ord _ + _ :: Int,[],ord _ + _ :: Int)-(x * _ :: Int,[],x * _ :: Int)-(0 * _ :: Int,[],0 * _ :: Int)-(id _ * _ :: Int,[],id _ * _ :: Int)-(g _ :: Int,[],g _ :: Int)-(head ys :: Int,[],head ys :: Int)-(head [0] :: Int,[],head [0] :: Int)-(head (_:xs) :: Int,[],head (_:xs) :: Int)-(head [_] :: Int,[],head [_] :: Int)-(head (_:_:_) :: Int,[],head (_:_:_) :: Int)-(head (x:_) :: Int,[],head (x:_) :: Int)-(head (0:_) :: Int,[],head (0:_) :: Int)-(head (id _:_) :: Int,[],head (id _:_) :: Int)-(head (tail _) :: Int,[],head (tail _) :: Int)-(head (_ ++ _) :: Int,[],head (_ ++ _) :: Int)-(ord d :: Int,[],ord d :: Int)-(ord ' ' :: Int,[],ord ' ' :: Int)-(r :: Bool,[],r :: Bool)-(not q :: Bool,[],not q :: Bool)-(not (not p) :: Bool,[],not (not p) :: Bool)-(not (not False) :: Bool,[],not (not False) :: Bool)-(not (not True) :: Bool,[],not (not True) :: Bool)-(not (not (not _)) :: Bool,[],not (not (not _)) :: Bool)-(not (_ || _) :: Bool,[],not (_ || _) :: Bool)-(_ || p :: Bool,[],_ || p :: Bool)-(_ || False :: Bool,[],_ || False :: Bool)-(_ || True :: Bool,[],_ || True :: Bool)-(_ || not _ :: Bool,[],_ || not _ :: Bool)-(p || _ :: Bool,[],p || _ :: Bool)-(False || _ :: Bool,[],False || _ :: Bool)-(True || _ :: Bool,[],True || _ :: Bool)-(not _ || _ :: Bool,[],not _ || _ :: Bool)-(_ && _ :: Bool,[],_ && _ :: Bool)-(_ == _ :: Bool,[],_ == _ :: Bool)-(_ == _ :: Bool,[],_ == _ :: Bool)-(odd _ :: Bool,[],odd _ :: Bool)-(even _ :: Bool,[],even _ :: Bool)-(elem _ _ :: Bool,[],elem _ _ :: Bool)-(e :: Char,[],e :: Char)-('b' :: Char,[],'b' :: Char)-(zs :: [Int],[],zs :: [Int])-([0,0] :: [Int],[],[0,0] :: [Int])-([1] :: [Int],[],[1] :: [Int])-(_:ys :: [Int],[],_:ys :: [Int])-([_,0] :: [Int],[],[_,0] :: [Int])-(_:_:xs :: [Int],[],_:_:xs :: [Int])-([_,_] :: [Int],[],[_,_] :: [Int])-(_:_:_:_ :: [Int],[],_:_:_:_ :: [Int])-(_:x:_ :: [Int],[],_:x:_ :: [Int])-(_:0:_ :: [Int],[],_:0:_ :: [Int])-(_:id _:_ :: [Int],[],_:id _:_ :: [Int])-(_:tail _ :: [Int],[],_:tail _ :: [Int])-(_:(_ ++ _) :: [Int],[],_:(_ ++ _) :: [Int])-(x:xs :: [Int],[],x:xs :: [Int])-([x] :: [Int],[],[x] :: [Int])-(x:_:_ :: [Int],[],x:_:_ :: [Int])-(0:xs :: [Int],[],0:xs :: [Int])-([0] :: [Int],[],[0] :: [Int])-(0:_:_ :: [Int],[],0:_:_ :: [Int])-(id _:xs :: [Int],[],id _:xs :: [Int])-([id _] :: [Int],[],[id _] :: [Int])-(id _:_:_ :: [Int],[],id _:_:_ :: [Int])-(y:_ :: [Int],[],y:_ :: [Int])-(1:_ :: [Int],[],1:_ :: [Int])-(id x:_ :: [Int],[],id x:_ :: [Int])-(id 0:_ :: [Int],[],id 0:_ :: [Int])-(id (id _):_ :: [Int],[],id (id _):_ :: [Int])-(negate _:_ :: [Int],[],negate _:_ :: [Int])-(abs _:_ :: [Int],[],abs _:_ :: [Int])-(_ + _:_ :: [Int],[],_ + _:_ :: [Int])-(head _:_ :: [Int],[],head _:_ :: [Int])-(ord _:_ :: [Int],[],ord _:_ :: [Int])-(tail xs :: [Int],[],tail xs :: [Int])-(tail [] :: [Int],[],tail [] :: [Int])-(tail (_:_) :: [Int],[],tail (_:_) :: [Int])-(_ ++ xs :: [Int],[],_ ++ xs :: [Int])-(_ ++ [] :: [Int],[],_ ++ [] :: [Int])-(_ ++ (_:_) :: [Int],[],_ ++ (_:_) :: [Int])-(xs ++ _ :: [Int],[],xs ++ _ :: [Int])-([] ++ _ :: [Int],[],[] ++ _ :: [Int])-((_:_) ++ _ :: [Int],[],(_:_) ++ _ :: [Int])-(sort _ :: [Int],[],sort _ :: [Int])-(insert _ _ :: [Int],[],insert _ _ :: [Int])-((x +) :: Int -> Int,[],(x +) :: Int -> Int)-((0 +) :: Int -> Int,[],(0 +) :: Int -> Int)-((id _ +) :: Int -> Int,[],(id _ +) :: Int -> Int)-((_ *) :: Int -> Int,[],(_ *) :: Int -> Int)-(f :: Int -> Int,[],f :: Int -> Int)-((_ ||) :: Bool -> Bool,[],(_ ||) :: Bool -> Bool)-((&&) :: Bool -> Bool -> Bool,[],(&&) :: Bool -> Bool -> Bool)-(y' :: Int,[],y' :: Int)-(-2 :: Int,[],-2 :: Int)-(id x' :: Int,[],id x' :: Int)-(id 2 :: Int,[],id 2 :: Int)-(id (id z) :: Int,[],id (id z) :: Int)-(id (id (-1)) :: Int,[],id (id (-1)) :: Int)-(id (id (id y)) :: Int,[],id (id (id y)) :: Int)-(id (id (id 1)) :: Int,[],id (id (id 1)) :: Int)-(id (id (id (id x))) :: Int,[],id (id (id (id x))) :: Int)-(id (id (id (id 0))) :: Int,[],id (id (id (id 0))) :: Int)-(id (id (id (id (id _)))) :: Int,[],id (id (id (id (id _)))) :: Int)-(id (id (id (negate _))) :: Int,[],id (id (id (negate _))) :: Int)-(id (id (id (abs _))) :: Int,[],id (id (id (abs _))) :: Int)-(id (id (id (_ + _))) :: Int,[],id (id (id (_ + _))) :: Int)-(id (id (id (head _))) :: Int,[],id (id (id (head _))) :: Int)-(id (id (id (ord _))) :: Int,[],id (id (id (ord _))) :: Int)-(id (id (negate x)) :: Int,[],id (id (negate x)) :: Int)-(id (id (negate 0)) :: Int,[],id (id (negate 0)) :: Int)-(id (id (negate (id _))) :: Int,[],id (id (negate (id _))) :: Int)-(id (id (abs x)) :: Int,[],id (id (abs x)) :: Int)-(id (id (abs 0)) :: Int,[],id (id (abs 0)) :: Int)-(id (id (abs (id _))) :: Int,[],id (id (abs (id _))) :: Int)-(id (id (_ + x)) :: Int,[],id (id (_ + x)) :: Int)-(id (id (_ + 0)) :: Int,[],id (id (_ + 0)) :: Int)-(id (id (_ + id _)) :: Int,[],id (id (_ + id _)) :: Int)-(id (id (x + _)) :: Int,[],id (id (x + _)) :: Int)-(id (id (0 + _)) :: Int,[],id (id (0 + _)) :: Int)-(id (id (id _ + _)) :: Int,[],id (id (id _ + _)) :: Int)-(id (id (_ * _)) :: Int,[],id (id (_ * _)) :: Int)-(id (id (f _)) :: Int,[],id (id (f _)) :: Int)-(id (id (head xs)) :: Int,[],id (id (head xs)) :: Int)-(id (id (head [])) :: Int,[],id (id (head [])) :: Int)-(id (id (head (_:_))) :: Int,[],id (id (head (_:_))) :: Int)-(id (id (ord c)) :: Int,[],id (id (ord c)) :: Int)-(id (id (ord 'a')) :: Int,[],id (id (ord 'a')) :: Int)-(id (negate y) :: Int,[],id (negate y) :: Int)-(id (negate 1) :: Int,[],id (negate 1) :: Int)-(id (negate (id x)) :: Int,[],id (negate (id x)) :: Int)-(id (negate (id 0)) :: Int,[],id (negate (id 0)) :: Int)-(id (negate (id (id _))) :: Int,[],id (negate (id (id _))) :: Int)-(id (negate (negate _)) :: Int,[],id (negate (negate _)) :: Int)-(id (negate (abs _)) :: Int,[],id (negate (abs _)) :: Int)-(id (negate (_ + _)) :: Int,[],id (negate (_ + _)) :: Int)-(id (negate (head _)) :: Int,[],id (negate (head _)) :: Int)-(id (negate (ord _)) :: Int,[],id (negate (ord _)) :: Int)-(id (abs y) :: Int,[],id (abs y) :: Int)-(id (abs 1) :: Int,[],id (abs 1) :: Int)-(id (abs (id x)) :: Int,[],id (abs (id x)) :: Int)-(id (abs (id 0)) :: Int,[],id (abs (id 0)) :: Int)-(id (abs (id (id _))) :: Int,[],id (abs (id (id _))) :: Int)-(id (abs (negate _)) :: Int,[],id (abs (negate _)) :: Int)-(id (abs (abs _)) :: Int,[],id (abs (abs _)) :: Int)-(id (abs (_ + _)) :: Int,[],id (abs (_ + _)) :: Int)-(id (abs (head _)) :: Int,[],id (abs (head _)) :: Int)-(id (abs (ord _)) :: Int,[],id (abs (ord _)) :: Int)-(id (_ + y) :: Int,[],id (_ + y) :: Int)-(id (_ + 1) :: Int,[],id (_ + 1) :: Int)-(id (_ + id x) :: Int,[],id (_ + id x) :: Int)-(id (_ + id 0) :: Int,[],id (_ + id 0) :: Int)-(id (_ + id (id _)) :: Int,[],id (_ + id (id _)) :: Int)-(id (_ + negate _) :: Int,[],id (_ + negate _) :: Int)-(id (_ + abs _) :: Int,[],id (_ + abs _) :: Int)-(id (_ + (_ + _)) :: Int,[],id (_ + (_ + _)) :: Int)-(id (_ + head _) :: Int,[],id (_ + head _) :: Int)-(id (_ + ord _) :: Int,[],id (_ + ord _) :: Int)-(id (x + x) :: Int,[],id (x + x) :: Int)-(id (x + 0) :: Int,[],id (x + 0) :: Int)-(id (x + id _) :: Int,[],id (x + id _) :: Int)-(id (0 + x) :: Int,[],id (0 + x) :: Int)-(id (0 + 0) :: Int,[],id (0 + 0) :: Int)-(id (0 + id _) :: Int,[],id (0 + id _) :: Int)-(id (id _ + x) :: Int,[],id (id _ + x) :: Int)-(id (id _ + 0) :: Int,[],id (id _ + 0) :: Int)-(id (id _ + id _) :: Int,[],id (id _ + id _) :: Int)-(id (_ * x) :: Int,[],id (_ * x) :: Int)-(id (_ * 0) :: Int,[],id (_ * 0) :: Int)-(id (_ * id _) :: Int,[],id (_ * id _) :: Int)-(id (f x) :: Int,[],id (f x) :: Int)-(id (f 0) :: Int,[],id (f 0) :: Int)-(id (f (id _)) :: Int,[],id (f (id _)) :: Int)-(id (y + _) :: Int,[],id (y + _) :: Int)-(id (1 + _) :: Int,[],id (1 + _) :: Int)-(id (id x + _) :: Int,[],id (id x + _) :: Int)-(id (id 0 + _) :: Int,[],id (id 0 + _) :: Int)-(id (id (id _) + _) :: Int,[],id (id (id _) + _) :: Int)-(id (negate _ + _) :: Int,[],id (negate _ + _) :: Int)-(id (abs _ + _) :: Int,[],id (abs _ + _) :: Int)-(id ((_ + _) + _) :: Int,[],id ((_ + _) + _) :: Int)-(id (head _ + _) :: Int,[],id (head _ + _) :: Int)-(id (ord _ + _) :: Int,[],id (ord _ + _) :: Int)-(id (x * _) :: Int,[],id (x * _) :: Int)-(id (0 * _) :: Int,[],id (0 * _) :: Int)-(id (id _ * _) :: Int,[],id (id _ * _) :: Int)-(id (g _) :: Int,[],id (g _) :: Int)-(id (head ys) :: Int,[],id (head ys) :: Int)-(id (head [0]) :: Int,[],id (head [0]) :: Int)-(id (head (_:xs)) :: Int,[],id (head (_:xs)) :: Int)-(id (head [_]) :: Int,[],id (head [_]) :: Int)-(id (head (_:_:_)) :: Int,[],id (head (_:_:_)) :: Int)-(id (head (x:_)) :: Int,[],id (head (x:_)) :: Int)-(id (head (0:_)) :: Int,[],id (head (0:_)) :: Int)-(id (head (id _:_)) :: Int,[],id (head (id _:_)) :: Int)-(id (head (tail _)) :: Int,[],id (head (tail _)) :: Int)-(id (head (_ ++ _)) :: Int,[],id (head (_ ++ _)) :: Int)-(id (ord d) :: Int,[],id (ord d) :: Int)-(id (ord ' ') :: Int,[],id (ord ' ') :: Int)-(negate z :: Int,[],negate z :: Int)-(negate (-1) :: Int,[],negate (-1) :: Int)-(negate (id y) :: Int,[],negate (id y) :: Int)-(negate (id 1) :: Int,[],negate (id 1) :: Int)-(negate (id (id x)) :: Int,[],negate (id (id x)) :: Int)-(negate (id (id 0)) :: Int,[],negate (id (id 0)) :: Int)-(negate (id (id (id _))) :: Int,[],negate (id (id (id _))) :: Int)-(negate (id (negate _)) :: Int,[],negate (id (negate _)) :: Int)-(negate (id (abs _)) :: Int,[],negate (id (abs _)) :: Int)-(negate (id (_ + _)) :: Int,[],negate (id (_ + _)) :: Int)-(negate (id (head _)) :: Int,[],negate (id (head _)) :: Int)-(negate (id (ord _)) :: Int,[],negate (id (ord _)) :: Int)-(negate (negate x) :: Int,[],negate (negate x) :: Int)-(negate (negate 0) :: Int,[],negate (negate 0) :: Int)-(negate (negate (id _)) :: Int,[],negate (negate (id _)) :: Int)-(negate (abs x) :: Int,[],negate (abs x) :: Int)-(negate (abs 0) :: Int,[],negate (abs 0) :: Int)-(negate (abs (id _)) :: Int,[],negate (abs (id _)) :: Int)-(negate (_ + x) :: Int,[],negate (_ + x) :: Int)-(negate (_ + 0) :: Int,[],negate (_ + 0) :: Int)-(negate (_ + id _) :: Int,[],negate (_ + id _) :: Int)-(negate (x + _) :: Int,[],negate (x + _) :: Int)-(negate (0 + _) :: Int,[],negate (0 + _) :: Int)-(negate (id _ + _) :: Int,[],negate (id _ + _) :: Int)-(negate (_ * _) :: Int,[],negate (_ * _) :: Int)-(negate (f _) :: Int,[],negate (f _) :: Int)-(negate (head xs) :: Int,[],negate (head xs) :: Int)-(negate (head []) :: Int,[],negate (head []) :: Int)-(negate (head (_:_)) :: Int,[],negate (head (_:_)) :: Int)-(negate (ord c) :: Int,[],negate (ord c) :: Int)-(negate (ord 'a') :: Int,[],negate (ord 'a') :: Int)-(abs z :: Int,[],abs z :: Int)-(abs (-1) :: Int,[],abs (-1) :: Int)-(abs (id y) :: Int,[],abs (id y) :: Int)-(abs (id 1) :: Int,[],abs (id 1) :: Int)-(abs (id (id x)) :: Int,[],abs (id (id x)) :: Int)-(abs (id (id 0)) :: Int,[],abs (id (id 0)) :: Int)-(abs (id (id (id _))) :: Int,[],abs (id (id (id _))) :: Int)-(abs (id (negate _)) :: Int,[],abs (id (negate _)) :: Int)-(abs (id (abs _)) :: Int,[],abs (id (abs _)) :: Int)-(abs (id (_ + _)) :: Int,[],abs (id (_ + _)) :: Int)-(abs (id (head _)) :: Int,[],abs (id (head _)) :: Int)-(abs (id (ord _)) :: Int,[],abs (id (ord _)) :: Int)-(abs (negate x) :: Int,[],abs (negate x) :: Int)-(abs (negate 0) :: Int,[],abs (negate 0) :: Int)-(abs (negate (id _)) :: Int,[],abs (negate (id _)) :: Int)-(abs (abs x) :: Int,[],abs (abs x) :: Int)-(abs (abs 0) :: Int,[],abs (abs 0) :: Int)-(abs (abs (id _)) :: Int,[],abs (abs (id _)) :: Int)-(abs (_ + x) :: Int,[],abs (_ + x) :: Int)-(abs (_ + 0) :: Int,[],abs (_ + 0) :: Int)-(abs (_ + id _) :: Int,[],abs (_ + id _) :: Int)-(abs (x + _) :: Int,[],abs (x + _) :: Int)-(abs (0 + _) :: Int,[],abs (0 + _) :: Int)-(abs (id _ + _) :: Int,[],abs (id _ + _) :: Int)-(abs (_ * _) :: Int,[],abs (_ * _) :: Int)-(abs (f _) :: Int,[],abs (f _) :: Int)-(abs (head xs) :: Int,[],abs (head xs) :: Int)-(abs (head []) :: Int,[],abs (head []) :: Int)-(abs (head (_:_)) :: Int,[],abs (head (_:_)) :: Int)-(abs (ord c) :: Int,[],abs (ord c) :: Int)-(abs (ord 'a') :: Int,[],abs (ord 'a') :: Int)-(_ + z :: Int,[],_ + z :: Int)-(_ + (-1) :: Int,[],_ + (-1) :: Int)-(_ + id y :: Int,[],_ + id y :: Int)-(_ + id 1 :: Int,[],_ + id 1 :: Int)-(_ + id (id x) :: Int,[],_ + id (id x) :: Int)-(_ + id (id 0) :: Int,[],_ + id (id 0) :: Int)-(_ + id (id (id _)) :: Int,[],_ + id (id (id _)) :: Int)-(_ + id (negate _) :: Int,[],_ + id (negate _) :: Int)-(_ + id (abs _) :: Int,[],_ + id (abs _) :: Int)-(_ + id (_ + _) :: Int,[],_ + id (_ + _) :: Int)-(_ + id (head _) :: Int,[],_ + id (head _) :: Int)-(_ + id (ord _) :: Int,[],_ + id (ord _) :: Int)-(_ + negate x :: Int,[],_ + negate x :: Int)-(_ + negate 0 :: Int,[],_ + negate 0 :: Int)-(_ + negate (id _) :: Int,[],_ + negate (id _) :: Int)-(_ + abs x :: Int,[],_ + abs x :: Int)-(_ + abs 0 :: Int,[],_ + abs 0 :: Int)-(_ + abs (id _) :: Int,[],_ + abs (id _) :: Int)-(_ + (_ + x) :: Int,[],_ + (_ + x) :: Int)-(_ + (_ + 0) :: Int,[],_ + (_ + 0) :: Int)-(_ + (_ + id _) :: Int,[],_ + (_ + id _) :: Int)-(_ + (x + _) :: Int,[],_ + (x + _) :: Int)-(_ + (0 + _) :: Int,[],_ + (0 + _) :: Int)-(_ + (id _ + _) :: Int,[],_ + (id _ + _) :: Int)-(_ + _ * _ :: Int,[],_ + _ * _ :: Int)-(_ + f _ :: Int,[],_ + f _ :: Int)-(_ + head xs :: Int,[],_ + head xs :: Int)-(_ + head [] :: Int,[],_ + head [] :: Int)-(_ + head (_:_) :: Int,[],_ + head (_:_) :: Int)-(_ + ord c :: Int,[],_ + ord c :: Int)-(_ + ord 'a' :: Int,[],_ + ord 'a' :: Int)-(x + y :: Int,[],x + y :: Int)-(x + 1 :: Int,[],x + 1 :: Int)-(x + id x :: Int,[],x + id x :: Int)-(x + id 0 :: Int,[],x + id 0 :: Int)-(x + id (id _) :: Int,[],x + id (id _) :: Int)-(x + negate _ :: Int,[],x + negate _ :: Int)-(x + abs _ :: Int,[],x + abs _ :: Int)-(x + (_ + _) :: Int,[],x + (_ + _) :: Int)-(x + head _ :: Int,[],x + head _ :: Int)-(x + ord _ :: Int,[],x + ord _ :: Int)-(0 + y :: Int,[],0 + y :: Int)-(0 + 1 :: Int,[],0 + 1 :: Int)-(0 + id x :: Int,[],0 + id x :: Int)-(0 + id 0 :: Int,[],0 + id 0 :: Int)-(0 + id (id _) :: Int,[],0 + id (id _) :: Int)-(0 + negate _ :: Int,[],0 + negate _ :: Int)-(0 + abs _ :: Int,[],0 + abs _ :: Int)-(0 + (_ + _) :: Int,[],0 + (_ + _) :: Int)-(0 + head _ :: Int,[],0 + head _ :: Int)-(0 + ord _ :: Int,[],0 + ord _ :: Int)-(id _ + y :: Int,[],id _ + y :: Int)-(id _ + 1 :: Int,[],id _ + 1 :: Int)-(id _ + id x :: Int,[],id _ + id x :: Int)-(id _ + id 0 :: Int,[],id _ + id 0 :: Int)-(id _ + id (id _) :: Int,[],id _ + id (id _) :: Int)-(id _ + negate _ :: Int,[],id _ + negate _ :: Int)-(id _ + abs _ :: Int,[],id _ + abs _ :: Int)-(id _ + (_ + _) :: Int,[],id _ + (_ + _) :: Int)-(id _ + head _ :: Int,[],id _ + head _ :: Int)-(id _ + ord _ :: Int,[],id _ + ord _ :: Int)-(_ * y :: Int,[],_ * y :: Int)-(_ * 1 :: Int,[],_ * 1 :: Int)-(_ * id x :: Int,[],_ * id x :: Int)-(_ * id 0 :: Int,[],_ * id 0 :: Int)-(_ * id (id _) :: Int,[],_ * id (id _) :: Int)-(_ * negate _ :: Int,[],_ * negate _ :: Int)-(_ * abs _ :: Int,[],_ * abs _ :: Int)-(_ * (_ + _) :: Int,[],_ * (_ + _) :: Int)-(_ * head _ :: Int,[],_ * head _ :: Int)-(_ * ord _ :: Int,[],_ * ord _ :: Int)-(f y :: Int,[],f y :: Int)-(f 1 :: Int,[],f 1 :: Int)-(f (id x) :: Int,[],f (id x) :: Int)-(f (id 0) :: Int,[],f (id 0) :: Int)-(f (id (id _)) :: Int,[],f (id (id _)) :: Int)-(f (negate _) :: Int,[],f (negate _) :: Int)-(f (abs _) :: Int,[],f (abs _) :: Int)-(f (_ + _) :: Int,[],f (_ + _) :: Int)-(f (head _) :: Int,[],f (head _) :: Int)-(f (ord _) :: Int,[],f (ord _) :: Int)-(y + x :: Int,[],y + x :: Int)-(y + 0 :: Int,[],y + 0 :: Int)-(y + id _ :: Int,[],y + id _ :: Int)-(1 + x :: Int,[],1 + x :: Int)-(1 + 0 :: Int,[],1 + 0 :: Int)-(1 + id _ :: Int,[],1 + id _ :: Int)-(id x + x :: Int,[],id x + x :: Int)-(id x + 0 :: Int,[],id x + 0 :: Int)-(id x + id _ :: Int,[],id x + id _ :: Int)-(id 0 + x :: Int,[],id 0 + x :: Int)-(id 0 + 0 :: Int,[],id 0 + 0 :: Int)-(id 0 + id _ :: Int,[],id 0 + id _ :: Int)-(id (id _) + x :: Int,[],id (id _) + x :: Int)-(id (id _) + 0 :: Int,[],id (id _) + 0 :: Int)-(id (id _) + id _ :: Int,[],id (id _) + id _ :: Int)-(negate _ + x :: Int,[],negate _ + x :: Int)-(negate _ + 0 :: Int,[],negate _ + 0 :: Int)-(negate _ + id _ :: Int,[],negate _ + id _ :: Int)-(abs _ + x :: Int,[],abs _ + x :: Int)-(abs _ + 0 :: Int,[],abs _ + 0 :: Int)-(abs _ + id _ :: Int,[],abs _ + id _ :: Int)-((_ + _) + x :: Int,[],(_ + _) + x :: Int)-((_ + _) + 0 :: Int,[],(_ + _) + 0 :: Int)-((_ + _) + id _ :: Int,[],(_ + _) + id _ :: Int)-(head _ + x :: Int,[],head _ + x :: Int)-(head _ + 0 :: Int,[],head _ + 0 :: Int)-(head _ + id _ :: Int,[],head _ + id _ :: Int)-(ord _ + x :: Int,[],ord _ + x :: Int)-(ord _ + 0 :: Int,[],ord _ + 0 :: Int)-(ord _ + id _ :: Int,[],ord _ + id _ :: Int)-(x * x :: Int,[],x * x :: Int)-(x * 0 :: Int,[],x * 0 :: Int)-(x * id _ :: Int,[],x * id _ :: Int)-(0 * x :: Int,[],0 * x :: Int)-(0 * 0 :: Int,[],0 * 0 :: Int)-(0 * id _ :: Int,[],0 * id _ :: Int)-(id _ * x :: Int,[],id _ * x :: Int)-(id _ * 0 :: Int,[],id _ * 0 :: Int)-(id _ * id _ :: Int,[],id _ * id _ :: Int)-(g x :: Int,[],g x :: Int)-(g 0 :: Int,[],g 0 :: Int)-(g (id _) :: Int,[],g (id _) :: Int)-(z + _ :: Int,[],z + _ :: Int)-((-1) + _ :: Int,[],(-1) + _ :: Int)-(id y + _ :: Int,[],id y + _ :: Int)-(id 1 + _ :: Int,[],id 1 + _ :: Int)-(id (id x) + _ :: Int,[],id (id x) + _ :: Int)-(id (id 0) + _ :: Int,[],id (id 0) + _ :: Int)-(id (id (id _)) + _ :: Int,[],id (id (id _)) + _ :: Int)-(id (negate _) + _ :: Int,[],id (negate _) + _ :: Int)-(id (abs _) + _ :: Int,[],id (abs _) + _ :: Int)-(id (_ + _) + _ :: Int,[],id (_ + _) + _ :: Int)-(id (head _) + _ :: Int,[],id (head _) + _ :: Int)-(id (ord _) + _ :: Int,[],id (ord _) + _ :: Int)-(negate x + _ :: Int,[],negate x + _ :: Int)-(negate 0 + _ :: Int,[],negate 0 + _ :: Int)-(negate (id _) + _ :: Int,[],negate (id _) + _ :: Int)-(abs x + _ :: Int,[],abs x + _ :: Int)-(abs 0 + _ :: Int,[],abs 0 + _ :: Int)-(abs (id _) + _ :: Int,[],abs (id _) + _ :: Int)-((_ + x) + _ :: Int,[],(_ + x) + _ :: Int)-((_ + 0) + _ :: Int,[],(_ + 0) + _ :: Int)-((_ + id _) + _ :: Int,[],(_ + id _) + _ :: Int)-((x + _) + _ :: Int,[],(x + _) + _ :: Int)-((0 + _) + _ :: Int,[],(0 + _) + _ :: Int)-((id _ + _) + _ :: Int,[],(id _ + _) + _ :: Int)-(_ * _ + _ :: Int,[],_ * _ + _ :: Int)-(f _ + _ :: Int,[],f _ + _ :: Int)-(head xs + _ :: Int,[],head xs + _ :: Int)-(head [] + _ :: Int,[],head [] + _ :: Int)-(head (_:_) + _ :: Int,[],head (_:_) + _ :: Int)-(ord c + _ :: Int,[],ord c + _ :: Int)-(ord 'a' + _ :: Int,[],ord 'a' + _ :: Int)-(y * _ :: Int,[],y * _ :: Int)-(1 * _ :: Int,[],1 * _ :: Int)-(id x * _ :: Int,[],id x * _ :: Int)-(id 0 * _ :: Int,[],id 0 * _ :: Int)-(id (id _) * _ :: Int,[],id (id _) * _ :: Int)-(negate _ * _ :: Int,[],negate _ * _ :: Int)-(abs _ * _ :: Int,[],abs _ * _ :: Int)-((_ + _) * _ :: Int,[],(_ + _) * _ :: Int)-(head _ * _ :: Int,[],head _ * _ :: Int)-(ord _ * _ :: Int,[],ord _ * _ :: Int)-(h _ :: Int,[],h _ :: Int)-(head zs :: Int,[],head zs :: Int)-(head [0,0] :: Int,[],head [0,0] :: Int)-(head [1] :: Int,[],head [1] :: Int)-(head (_:ys) :: Int,[],head (_:ys) :: Int)-(head [_,0] :: Int,[],head [_,0] :: Int)-(head (_:_:xs) :: Int,[],head (_:_:xs) :: Int)-(head [_,_] :: Int,[],head [_,_] :: Int)-(head (_:_:_:_) :: Int,[],head (_:_:_:_) :: Int)-(head (_:x:_) :: Int,[],head (_:x:_) :: Int)-(head (_:0:_) :: Int,[],head (_:0:_) :: Int)-(head (_:id _:_) :: Int,[],head (_:id _:_) :: Int)-(head (_:tail _) :: Int,[],head (_:tail _) :: Int)-(head (_:(_ ++ _)) :: Int,[],head (_:(_ ++ _)) :: Int)-(head (x:xs) :: Int,[],head (x:xs) :: Int)-(head [x] :: Int,[],head [x] :: Int)-(head (x:_:_) :: Int,[],head (x:_:_) :: Int)-(head (0:xs) :: Int,[],head (0:xs) :: Int)-(head [0] :: Int,[],head [0] :: Int)-(head (0:_:_) :: Int,[],head (0:_:_) :: Int)-(head (id _:xs) :: Int,[],head (id _:xs) :: Int)-(head [id _] :: Int,[],head [id _] :: Int)-(head (id _:_:_) :: Int,[],head (id _:_:_) :: Int)-(head (y:_) :: Int,[],head (y:_) :: Int)-(head (1:_) :: Int,[],head (1:_) :: Int)-(head (id x:_) :: Int,[],head (id x:_) :: Int)-(head (id 0:_) :: Int,[],head (id 0:_) :: Int)-(head (id (id _):_) :: Int,[],head (id (id _):_) :: Int)-(head (negate _:_) :: Int,[],head (negate _:_) :: Int)-(head (abs _:_) :: Int,[],head (abs _:_) :: Int)-(head (_ + _:_) :: Int,[],head (_ + _:_) :: Int)-(head (head _:_) :: Int,[],head (head _:_) :: Int)-(head (ord _:_) :: Int,[],head (ord _:_) :: Int)-(head (tail xs) :: Int,[],head (tail xs) :: Int)-(head (tail []) :: Int,[],head (tail []) :: Int)-(head (tail (_:_)) :: Int,[],head (tail (_:_)) :: Int)-(head (_ ++ xs) :: Int,[],head (_ ++ xs) :: Int)-(head (_ ++ []) :: Int,[],head (_ ++ []) :: Int)-(head (_ ++ (_:_)) :: Int,[],head (_ ++ (_:_)) :: Int)-(head (xs ++ _) :: Int,[],head (xs ++ _) :: Int)-(head ([] ++ _) :: Int,[],head ([] ++ _) :: Int)-(head ((_:_) ++ _) :: Int,[],head ((_:_) ++ _) :: Int)-(head (sort _) :: Int,[],head (sort _) :: Int)-(head (insert _ _) :: Int,[],head (insert _ _) :: Int)-(ord e :: Int,[],ord e :: Int)-(ord 'b' :: Int,[],ord 'b' :: Int)-(p' :: Bool,[],p' :: Bool)-(not r :: Bool,[],not r :: Bool)-(not (not q) :: Bool,[],not (not q) :: Bool)-(not (not (not p)) :: Bool,[],not (not (not p)) :: Bool)-(not (not (not False)) :: Bool,[],not (not (not False)) :: Bool)-(not (not (not True)) :: Bool,[],not (not (not True)) :: Bool)-(not (not (not (not _))) :: Bool,[],not (not (not (not _))) :: Bool)-(not (not (_ || _)) :: Bool,[],not (not (_ || _)) :: Bool)-(not (_ || p) :: Bool,[],not (_ || p) :: Bool)-(not (_ || False) :: Bool,[],not (_ || False) :: Bool)-(not (_ || True) :: Bool,[],not (_ || True) :: Bool)-(not (_ || not _) :: Bool,[],not (_ || not _) :: Bool)-(not (p || _) :: Bool,[],not (p || _) :: Bool)-(not (False || _) :: Bool,[],not (False || _) :: Bool)-(not (True || _) :: Bool,[],not (True || _) :: Bool)-(not (not _ || _) :: Bool,[],not (not _ || _) :: Bool)-(not (_ && _) :: Bool,[],not (_ && _) :: Bool)-(not (_ == _) :: Bool,[],not (_ == _) :: Bool)-(not (_ == _) :: Bool,[],not (_ == _) :: Bool)-(not (odd _) :: Bool,[],not (odd _) :: Bool)-(not (even _) :: Bool,[],not (even _) :: Bool)-(not (elem _ _) :: Bool,[],not (elem _ _) :: Bool)-(_ || q :: Bool,[],_ || q :: Bool)-(_ || not p :: Bool,[],_ || not p :: Bool)-(_ || not False :: Bool,[],_ || not False :: Bool)-(_ || not True :: Bool,[],_ || not True :: Bool)-(_ || not (not _) :: Bool,[],_ || not (not _) :: Bool)-(_ || (_ || _) :: Bool,[],_ || (_ || _) :: Bool)-(p || p :: Bool,[],p || p :: Bool)-(p || False :: Bool,[],p || False :: Bool)-(p || True :: Bool,[],p || True :: Bool)-(p || not _ :: Bool,[],p || not _ :: Bool)-(False || p :: Bool,[],False || p :: Bool)-(False || False :: Bool,[],False || False :: Bool)-(False || True :: Bool,[],False || True :: Bool)-(False || not _ :: Bool,[],False || not _ :: Bool)-(True || p :: Bool,[],True || p :: Bool)-(True || False :: Bool,[],True || False :: Bool)-(True || True :: Bool,[],True || True :: Bool)-(True || not _ :: Bool,[],True || not _ :: Bool)-(not _ || p :: Bool,[],not _ || p :: Bool)-(not _ || False :: Bool,[],not _ || False :: Bool)-(not _ || True :: Bool,[],not _ || True :: Bool)-(not _ || not _ :: Bool,[],not _ || not _ :: Bool)-(_ && p :: Bool,[],_ && p :: Bool)-(_ && False :: Bool,[],_ && False :: Bool)-(_ && True :: Bool,[],_ && True :: Bool)-(_ && not _ :: Bool,[],_ && not _ :: Bool)-(q || _ :: Bool,[],q || _ :: Bool)-(not p || _ :: Bool,[],not p || _ :: Bool)-(not False || _ :: Bool,[],not False || _ :: Bool)-(not True || _ :: Bool,[],not True || _ :: Bool)-(not (not _) || _ :: Bool,[],not (not _) || _ :: Bool)-((_ || _) || _ :: Bool,[],(_ || _) || _ :: Bool)-(p && _ :: Bool,[],p && _ :: Bool)-(False && _ :: Bool,[],False && _ :: Bool)-(True && _ :: Bool,[],True && _ :: Bool)-(not _ && _ :: Bool,[],not _ && _ :: Bool)-(_ ==> _ :: Bool,[],_ ==> _ :: Bool)-(_ == x :: Bool,[],_ == x :: Bool)-(_ == 0 :: Bool,[],_ == 0 :: Bool)-(_ == id _ :: Bool,[],_ == id _ :: Bool)-(x == _ :: Bool,[],x == _ :: Bool)-(0 == _ :: Bool,[],0 == _ :: Bool)-(id _ == _ :: Bool,[],id _ == _ :: Bool)-(_ == p :: Bool,[],_ == p :: Bool)-(_ == False :: Bool,[],_ == False :: Bool)-(_ == True :: Bool,[],_ == True :: Bool)-(_ == not _ :: Bool,[],_ == not _ :: Bool)-(p == _ :: Bool,[],p == _ :: Bool)-(False == _ :: Bool,[],False == _ :: Bool)-(True == _ :: Bool,[],True == _ :: Bool)-(not _ == _ :: Bool,[],not _ == _ :: Bool)-(_ <= _ :: Bool,[],_ <= _ :: Bool)-(_ <= _ :: Bool,[],_ <= _ :: Bool)-(odd x :: Bool,[],odd x :: Bool)-(odd 0 :: Bool,[],odd 0 :: Bool)-(odd (id _) :: Bool,[],odd (id _) :: Bool)-(even x :: Bool,[],even x :: Bool)-(even 0 :: Bool,[],even 0 :: Bool)-(even (id _) :: Bool,[],even (id _) :: Bool)-(elem _ xs :: Bool,[],elem _ xs :: Bool)-(elem _ [] :: Bool,[],elem _ [] :: Bool)-(elem _ (_:_) :: Bool,[],elem _ (_:_) :: Bool)-(elem x _ :: Bool,[],elem x _ :: Bool)-(elem 0 _ :: Bool,[],elem 0 _ :: Bool)-(elem (id _) _ :: Bool,[],elem (id _) _ :: Bool)-(c' :: Char,[],c' :: Char)-('A' :: Char,[],'A' :: Char)-(xs' :: [Int],[],xs' :: [Int])-([0,0,0] :: [Int],[],[0,0,0] :: [Int])-([0,1] :: [Int],[],[0,1] :: [Int])-([1,0] :: [Int],[],[1,0] :: [Int])-([-1] :: [Int],[],[-1] :: [Int])-(_:zs :: [Int],[],_:zs :: [Int])-([_,0,0] :: [Int],[],[_,0,0] :: [Int])-([_,1] :: [Int],[],[_,1] :: [Int])-(_:_:ys :: [Int],[],_:_:ys :: [Int])-([_,_,0] :: [Int],[],[_,_,0] :: [Int])-(_:_:_:xs :: [Int],[],_:_:_:xs :: [Int])-([_,_,_] :: [Int],[],[_,_,_] :: [Int])-(_:_:_:_:_ :: [Int],[],_:_:_:_:_ :: [Int])-(_:_:x:_ :: [Int],[],_:_:x:_ :: [Int])-(_:_:0:_ :: [Int],[],_:_:0:_ :: [Int])-(_:_:id _:_ :: [Int],[],_:_:id _:_ :: [Int])-(_:_:tail _ :: [Int],[],_:_:tail _ :: [Int])-(_:_:(_ ++ _) :: [Int],[],_:_:(_ ++ _) :: [Int])-(_:x:xs :: [Int],[],_:x:xs :: [Int])-([_,x] :: [Int],[],[_,x] :: [Int])-(_:x:_:_ :: [Int],[],_:x:_:_ :: [Int])-(_:0:xs :: [Int],[],_:0:xs :: [Int])-([_,0] :: [Int],[],[_,0] :: [Int])-(_:0:_:_ :: [Int],[],_:0:_:_ :: [Int])-(_:id _:xs :: [Int],[],_:id _:xs :: [Int])-([_,id _] :: [Int],[],[_,id _] :: [Int])-(_:id _:_:_ :: [Int],[],_:id _:_:_ :: [Int])-(_:y:_ :: [Int],[],_:y:_ :: [Int])-(_:1:_ :: [Int],[],_:1:_ :: [Int])-(_:id x:_ :: [Int],[],_:id x:_ :: [Int])-(_:id 0:_ :: [Int],[],_:id 0:_ :: [Int])-(_:id (id _):_ :: [Int],[],_:id (id _):_ :: [Int])-(_:negate _:_ :: [Int],[],_:negate _:_ :: [Int])-(_:abs _:_ :: [Int],[],_:abs _:_ :: [Int])-(_:_ + _:_ :: [Int],[],_:_ + _:_ :: [Int])-(_:head _:_ :: [Int],[],_:head _:_ :: [Int])-(_:ord _:_ :: [Int],[],_:ord _:_ :: [Int])-(_:tail xs :: [Int],[],_:tail xs :: [Int])-(_:tail [] :: [Int],[],_:tail [] :: [Int])-(_:tail (_:_) :: [Int],[],_:tail (_:_) :: [Int])-(_:(_ ++ xs) :: [Int],[],_:(_ ++ xs) :: [Int])-(_:(_ ++ []) :: [Int],[],_:(_ ++ []) :: [Int])-(_:(_ ++ (_:_)) :: [Int],[],_:(_ ++ (_:_)) :: [Int])-(_:(xs ++ _) :: [Int],[],_:(xs ++ _) :: [Int])-(_:([] ++ _) :: [Int],[],_:([] ++ _) :: [Int])-(_:((_:_) ++ _) :: [Int],[],_:((_:_) ++ _) :: [Int])-(_:sort _ :: [Int],[],_:sort _ :: [Int])-(_:insert _ _ :: [Int],[],_:insert _ _ :: [Int])-(x:ys :: [Int],[],x:ys :: [Int])-([x,0] :: [Int],[],[x,0] :: [Int])-(x:_:xs :: [Int],[],x:_:xs :: [Int])-([x,_] :: [Int],[],[x,_] :: [Int])-(x:_:_:_ :: [Int],[],x:_:_:_ :: [Int])-(x:x:_ :: [Int],[],x:x:_ :: [Int])-(x:0:_ :: [Int],[],x:0:_ :: [Int])-(x:id _:_ :: [Int],[],x:id _:_ :: [Int])-(x:tail _ :: [Int],[],x:tail _ :: [Int])-(x:(_ ++ _) :: [Int],[],x:(_ ++ _) :: [Int])-(0:ys :: [Int],[],0:ys :: [Int])-([0,0] :: [Int],[],[0,0] :: [Int])-(0:_:xs :: [Int],[],0:_:xs :: [Int])-([0,_] :: [Int],[],[0,_] :: [Int])-(0:_:_:_ :: [Int],[],0:_:_:_ :: [Int])-(0:x:_ :: [Int],[],0:x:_ :: [Int])-(0:0:_ :: [Int],[],0:0:_ :: [Int])-(0:id _:_ :: [Int],[],0:id _:_ :: [Int])-(0:tail _ :: [Int],[],0:tail _ :: [Int])-(0:(_ ++ _) :: [Int],[],0:(_ ++ _) :: [Int])-(id _:ys :: [Int],[],id _:ys :: [Int])-([id _,0] :: [Int],[],[id _,0] :: [Int])-(id _:_:xs :: [Int],[],id _:_:xs :: [Int])-([id _,_] :: [Int],[],[id _,_] :: [Int])-(id _:_:_:_ :: [Int],[],id _:_:_:_ :: [Int])-(id _:x:_ :: [Int],[],id _:x:_ :: [Int])-(id _:0:_ :: [Int],[],id _:0:_ :: [Int])-(id _:id _:_ :: [Int],[],id _:id _:_ :: [Int])-(id _:tail _ :: [Int],[],id _:tail _ :: [Int])-(id _:(_ ++ _) :: [Int],[],id _:(_ ++ _) :: [Int])-(y:xs :: [Int],[],y:xs :: [Int])-([y] :: [Int],[],[y] :: [Int])-(y:_:_ :: [Int],[],y:_:_ :: [Int])-(1:xs :: [Int],[],1:xs :: [Int])-([1] :: [Int],[],[1] :: [Int])-(1:_:_ :: [Int],[],1:_:_ :: [Int])-(id x:xs :: [Int],[],id x:xs :: [Int])-([id x] :: [Int],[],[id x] :: [Int])-(id x:_:_ :: [Int],[],id x:_:_ :: [Int])-(id 0:xs :: [Int],[],id 0:xs :: [Int])-([id 0] :: [Int],[],[id 0] :: [Int])-(id 0:_:_ :: [Int],[],id 0:_:_ :: [Int])-(id (id _):xs :: [Int],[],id (id _):xs :: [Int])-([id (id _)] :: [Int],[],[id (id _)] :: [Int])-(id (id _):_:_ :: [Int],[],id (id _):_:_ :: [Int])-(negate _:xs :: [Int],[],negate _:xs :: [Int])-([negate _] :: [Int],[],[negate _] :: [Int])-(negate _:_:_ :: [Int],[],negate _:_:_ :: [Int])-(abs _:xs :: [Int],[],abs _:xs :: [Int])-([abs _] :: [Int],[],[abs _] :: [Int])-(abs _:_:_ :: [Int],[],abs _:_:_ :: [Int])-(_ + _:xs :: [Int],[],_ + _:xs :: [Int])-([_ + _] :: [Int],[],[_ + _] :: [Int])-(_ + _:_:_ :: [Int],[],_ + _:_:_ :: [Int])-(head _:xs :: [Int],[],head _:xs :: [Int])-([head _] :: [Int],[],[head _] :: [Int])-(head _:_:_ :: [Int],[],head _:_:_ :: [Int])-(ord _:xs :: [Int],[],ord _:xs :: [Int])-([ord _] :: [Int],[],[ord _] :: [Int])-(ord _:_:_ :: [Int],[],ord _:_:_ :: [Int])-(z:_ :: [Int],[],z:_ :: [Int])-((-1):_ :: [Int],[],(-1):_ :: [Int])-(id y:_ :: [Int],[],id y:_ :: [Int])-(id 1:_ :: [Int],[],id 1:_ :: [Int])-(id (id x):_ :: [Int],[],id (id x):_ :: [Int])-(id (id 0):_ :: [Int],[],id (id 0):_ :: [Int])-(id (id (id _)):_ :: [Int],[],id (id (id _)):_ :: [Int])-(id (negate _):_ :: [Int],[],id (negate _):_ :: [Int])-(id (abs _):_ :: [Int],[],id (abs _):_ :: [Int])-(id (_ + _):_ :: [Int],[],id (_ + _):_ :: [Int])-(id (head _):_ :: [Int],[],id (head _):_ :: [Int])-(id (ord _):_ :: [Int],[],id (ord _):_ :: [Int])-(negate x:_ :: [Int],[],negate x:_ :: [Int])-(negate 0:_ :: [Int],[],negate 0:_ :: [Int])-(negate (id _):_ :: [Int],[],negate (id _):_ :: [Int])-(abs x:_ :: [Int],[],abs x:_ :: [Int])-(abs 0:_ :: [Int],[],abs 0:_ :: [Int])-(abs (id _):_ :: [Int],[],abs (id _):_ :: [Int])-(_ + x:_ :: [Int],[],_ + x:_ :: [Int])-(_ + 0:_ :: [Int],[],_ + 0:_ :: [Int])-(_ + id _:_ :: [Int],[],_ + id _:_ :: [Int])-(x + _:_ :: [Int],[],x + _:_ :: [Int])-(0 + _:_ :: [Int],[],0 + _:_ :: [Int])-(id _ + _:_ :: [Int],[],id _ + _:_ :: [Int])-(_ * _:_ :: [Int],[],_ * _:_ :: [Int])-(f _:_ :: [Int],[],f _:_ :: [Int])-(head xs:_ :: [Int],[],head xs:_ :: [Int])-(head []:_ :: [Int],[],head []:_ :: [Int])-(head (_:_):_ :: [Int],[],head (_:_):_ :: [Int])-(ord c:_ :: [Int],[],ord c:_ :: [Int])-(ord 'a':_ :: [Int],[],ord 'a':_ :: [Int])-(tail ys :: [Int],[],tail ys :: [Int])-(tail [0] :: [Int],[],tail [0] :: [Int])-(tail (_:xs) :: [Int],[],tail (_:xs) :: [Int])-(tail [_] :: [Int],[],tail [_] :: [Int])-(tail (_:_:_) :: [Int],[],tail (_:_:_) :: [Int])-(tail (x:_) :: [Int],[],tail (x:_) :: [Int])-(tail (0:_) :: [Int],[],tail (0:_) :: [Int])-(tail (id _:_) :: [Int],[],tail (id _:_) :: [Int])-(tail (tail _) :: [Int],[],tail (tail _) :: [Int])-(tail (_ ++ _) :: [Int],[],tail (_ ++ _) :: [Int])-(_ ++ ys :: [Int],[],_ ++ ys :: [Int])-(_ ++ [0] :: [Int],[],_ ++ [0] :: [Int])-(_ ++ (_:xs) :: [Int],[],_ ++ (_:xs) :: [Int])-(_ ++ [_] :: [Int],[],_ ++ [_] :: [Int])-(_ ++ (_:_:_) :: [Int],[],_ ++ (_:_:_) :: [Int])-(_ ++ (x:_) :: [Int],[],_ ++ (x:_) :: [Int])-(_ ++ (0:_) :: [Int],[],_ ++ (0:_) :: [Int])-(_ ++ (id _:_) :: [Int],[],_ ++ (id _:_) :: [Int])-(_ ++ tail _ :: [Int],[],_ ++ tail _ :: [Int])-(_ ++ (_ ++ _) :: [Int],[],_ ++ (_ ++ _) :: [Int])-(xs ++ xs :: [Int],[],xs ++ xs :: [Int])-(xs ++ [] :: [Int],[],xs ++ [] :: [Int])-(xs ++ (_:_) :: [Int],[],xs ++ (_:_) :: [Int])-([] ++ xs :: [Int],[],[] ++ xs :: [Int])-([] ++ [] :: [Int],[],[] ++ [] :: [Int])-([] ++ (_:_) :: [Int],[],[] ++ (_:_) :: [Int])-((_:_) ++ xs :: [Int],[],(_:_) ++ xs :: [Int])-((_:_) ++ [] :: [Int],[],(_:_) ++ [] :: [Int])-((_:_) ++ (_:_) :: [Int],[],(_:_) ++ (_:_) :: [Int])-(ys ++ _ :: [Int],[],ys ++ _ :: [Int])-([0] ++ _ :: [Int],[],[0] ++ _ :: [Int])-((_:xs) ++ _ :: [Int],[],(_:xs) ++ _ :: [Int])-([_] ++ _ :: [Int],[],[_] ++ _ :: [Int])-((_:_:_) ++ _ :: [Int],[],(_:_:_) ++ _ :: [Int])-((x:_) ++ _ :: [Int],[],(x:_) ++ _ :: [Int])-((0:_) ++ _ :: [Int],[],(0:_) ++ _ :: [Int])-((id _:_) ++ _ :: [Int],[],(id _:_) ++ _ :: [Int])-(tail _ ++ _ :: [Int],[],tail _ ++ _ :: [Int])-((_ ++ _) ++ _ :: [Int],[],(_ ++ _) ++ _ :: [Int])-(sort xs :: [Int],[],sort xs :: [Int])-(sort [] :: [Int],[],sort [] :: [Int])-(sort (_:_) :: [Int],[],sort (_:_) :: [Int])-(insert _ xs :: [Int],[],insert _ xs :: [Int])-(insert _ [] :: [Int],[],insert _ [] :: [Int])-(insert _ (_:_) :: [Int],[],insert _ (_:_) :: [Int])-(insert x _ :: [Int],[],insert x _ :: [Int])-(insert 0 _ :: [Int],[],insert 0 _ :: [Int])-(insert (id _) _ :: [Int],[],insert (id _) _ :: [Int])-((y +) :: Int -> Int,[],(y +) :: Int -> Int)-((1 +) :: Int -> Int,[],(1 +) :: Int -> Int)-((id x +) :: Int -> Int,[],(id x +) :: Int -> Int)-((id 0 +) :: Int -> Int,[],(id 0 +) :: Int -> Int)-((id (id _) +) :: Int -> Int,[],(id (id _) +) :: Int -> Int)-((negate _ +) :: Int -> Int,[],(negate _ +) :: Int -> Int)-((abs _ +) :: Int -> Int,[],(abs _ +) :: Int -> Int)-(((_ + _) +) :: Int -> Int,[],((_ + _) +) :: Int -> Int)-((head _ +) :: Int -> Int,[],(head _ +) :: Int -> Int)-((ord _ +) :: Int -> Int,[],(ord _ +) :: Int -> Int)-((x *) :: Int -> Int,[],(x *) :: Int -> Int)-((0 *) :: Int -> Int,[],(0 *) :: Int -> Int)-((id _ *) :: Int -> Int,[],(id _ *) :: Int -> Int)-(g :: Int -> Int,[],g :: Int -> Int)-((p ||) :: Bool -> Bool,[],(p ||) :: Bool -> Bool)-((False ||) :: Bool -> Bool,[],(False ||) :: Bool -> Bool)-((True ||) :: Bool -> Bool,[],(True ||) :: Bool -> Bool)-((not _ ||) :: Bool -> Bool,[],(not _ ||) :: Bool -> Bool)-((_ &&) :: Bool -> Bool,[],(_ &&) :: Bool -> Bool)-((==>) :: Bool -> Bool -> Bool,[],(==>) :: Bool -> Bool -> Bool)-(z' :: Int,[],z' :: Int)-(3 :: Int,[],3 :: Int)-(id y' :: Int,[],id y' :: Int)-(id (-2) :: Int,[],id (-2) :: Int)-(id (id x') :: Int,[],id (id x') :: Int)-(id (id 2) :: Int,[],id (id 2) :: Int)-(id (id (id z)) :: Int,[],id (id (id z)) :: Int)-(id (id (id (-1))) :: Int,[],id (id (id (-1))) :: Int)-(id (id (id (id y))) :: Int,[],id (id (id (id y))) :: Int)-(id (id (id (id 1))) :: Int,[],id (id (id (id 1))) :: Int)-(id (id (id (id (id x)))) :: Int,[],id (id (id (id (id x)))) :: Int)-(id (id (id (id (id 0)))) :: Int,[],id (id (id (id (id 0)))) :: Int)-(id (id (id (id (id (id _))))) :: Int,[],id (id (id (id (id (id _))))) :: Int)-(id (id (id (id (negate _)))) :: Int,[],id (id (id (id (negate _)))) :: Int)-(id (id (id (id (abs _)))) :: Int,[],id (id (id (id (abs _)))) :: Int)-(id (id (id (id (_ + _)))) :: Int,[],id (id (id (id (_ + _)))) :: Int)-(id (id (id (id (head _)))) :: Int,[],id (id (id (id (head _)))) :: Int)-(id (id (id (id (ord _)))) :: Int,[],id (id (id (id (ord _)))) :: Int)-(id (id (id (negate x))) :: Int,[],id (id (id (negate x))) :: Int)-(id (id (id (negate 0))) :: Int,[],id (id (id (negate 0))) :: Int)-(id (id (id (negate (id _)))) :: Int,[],id (id (id (negate (id _)))) :: Int)-(id (id (id (abs x))) :: Int,[],id (id (id (abs x))) :: Int)-(id (id (id (abs 0))) :: Int,[],id (id (id (abs 0))) :: Int)-(id (id (id (abs (id _)))) :: Int,[],id (id (id (abs (id _)))) :: Int)-(id (id (id (_ + x))) :: Int,[],id (id (id (_ + x))) :: Int)-(id (id (id (_ + 0))) :: Int,[],id (id (id (_ + 0))) :: Int)-(id (id (id (_ + id _))) :: Int,[],id (id (id (_ + id _))) :: Int)-(id (id (id (x + _))) :: Int,[],id (id (id (x + _))) :: Int)-(id (id (id (0 + _))) :: Int,[],id (id (id (0 + _))) :: Int)-(id (id (id (id _ + _))) :: Int,[],id (id (id (id _ + _))) :: Int)-(id (id (id (_ * _))) :: Int,[],id (id (id (_ * _))) :: Int)-(id (id (id (f _))) :: Int,[],id (id (id (f _))) :: Int)-(id (id (id (head xs))) :: Int,[],id (id (id (head xs))) :: Int)-(id (id (id (head []))) :: Int,[],id (id (id (head []))) :: Int)-(id (id (id (head (_:_)))) :: Int,[],id (id (id (head (_:_)))) :: Int)-(id (id (id (ord c))) :: Int,[],id (id (id (ord c))) :: Int)-(id (id (id (ord 'a'))) :: Int,[],id (id (id (ord 'a'))) :: Int)-(id (id (negate y)) :: Int,[],id (id (negate y)) :: Int)-(id (id (negate 1)) :: Int,[],id (id (negate 1)) :: Int)-(id (id (negate (id x))) :: Int,[],id (id (negate (id x))) :: Int)-(id (id (negate (id 0))) :: Int,[],id (id (negate (id 0))) :: Int)-(id (id (negate (id (id _)))) :: Int,[],id (id (negate (id (id _)))) :: Int)-(id (id (negate (negate _))) :: Int,[],id (id (negate (negate _))) :: Int)-(id (id (negate (abs _))) :: Int,[],id (id (negate (abs _))) :: Int)-(id (id (negate (_ + _))) :: Int,[],id (id (negate (_ + _))) :: Int)-(id (id (negate (head _))) :: Int,[],id (id (negate (head _))) :: Int)-(id (id (negate (ord _))) :: Int,[],id (id (negate (ord _))) :: Int)-(id (id (abs y)) :: Int,[],id (id (abs y)) :: Int)-(id (id (abs 1)) :: Int,[],id (id (abs 1)) :: Int)-(id (id (abs (id x))) :: Int,[],id (id (abs (id x))) :: Int)-(id (id (abs (id 0))) :: Int,[],id (id (abs (id 0))) :: Int)-(id (id (abs (id (id _)))) :: Int,[],id (id (abs (id (id _)))) :: Int)-(id (id (abs (negate _))) :: Int,[],id (id (abs (negate _))) :: Int)-(id (id (abs (abs _))) :: Int,[],id (id (abs (abs _))) :: Int)-(id (id (abs (_ + _))) :: Int,[],id (id (abs (_ + _))) :: Int)-(id (id (abs (head _))) :: Int,[],id (id (abs (head _))) :: Int)-(id (id (abs (ord _))) :: Int,[],id (id (abs (ord _))) :: Int)-(id (id (_ + y)) :: Int,[],id (id (_ + y)) :: Int)-(id (id (_ + 1)) :: Int,[],id (id (_ + 1)) :: Int)-(id (id (_ + id x)) :: Int,[],id (id (_ + id x)) :: Int)-(id (id (_ + id 0)) :: Int,[],id (id (_ + id 0)) :: Int)-(id (id (_ + id (id _))) :: Int,[],id (id (_ + id (id _))) :: Int)-(id (id (_ + negate _)) :: Int,[],id (id (_ + negate _)) :: Int)-(id (id (_ + abs _)) :: Int,[],id (id (_ + abs _)) :: Int)-(id (id (_ + (_ + _))) :: Int,[],id (id (_ + (_ + _))) :: Int)-(id (id (_ + head _)) :: Int,[],id (id (_ + head _)) :: Int)-(id (id (_ + ord _)) :: Int,[],id (id (_ + ord _)) :: Int)-(id (id (x + x)) :: Int,[],id (id (x + x)) :: Int)-(id (id (x + 0)) :: Int,[],id (id (x + 0)) :: Int)-(id (id (x + id _)) :: Int,[],id (id (x + id _)) :: Int)-(id (id (0 + x)) :: Int,[],id (id (0 + x)) :: Int)-(id (id (0 + 0)) :: Int,[],id (id (0 + 0)) :: Int)-(id (id (0 + id _)) :: Int,[],id (id (0 + id _)) :: Int)-(id (id (id _ + x)) :: Int,[],id (id (id _ + x)) :: Int)-(id (id (id _ + 0)) :: Int,[],id (id (id _ + 0)) :: Int)-(id (id (id _ + id _)) :: Int,[],id (id (id _ + id _)) :: Int)-(id (id (_ * x)) :: Int,[],id (id (_ * x)) :: Int)-(id (id (_ * 0)) :: Int,[],id (id (_ * 0)) :: Int)-(id (id (_ * id _)) :: Int,[],id (id (_ * id _)) :: Int)-(id (id (f x)) :: Int,[],id (id (f x)) :: Int)-(id (id (f 0)) :: Int,[],id (id (f 0)) :: Int)-(id (id (f (id _))) :: Int,[],id (id (f (id _))) :: Int)-(id (id (y + _)) :: Int,[],id (id (y + _)) :: Int)-(id (id (1 + _)) :: Int,[],id (id (1 + _)) :: Int)-(id (id (id x + _)) :: Int,[],id (id (id x + _)) :: Int)-(id (id (id 0 + _)) :: Int,[],id (id (id 0 + _)) :: Int)-(id (id (id (id _) + _)) :: Int,[],id (id (id (id _) + _)) :: Int)-(id (id (negate _ + _)) :: Int,[],id (id (negate _ + _)) :: Int)-(id (id (abs _ + _)) :: Int,[],id (id (abs _ + _)) :: Int)-(id (id ((_ + _) + _)) :: Int,[],id (id ((_ + _) + _)) :: Int)-(id (id (head _ + _)) :: Int,[],id (id (head _ + _)) :: Int)-(id (id (ord _ + _)) :: Int,[],id (id (ord _ + _)) :: Int)-(id (id (x * _)) :: Int,[],id (id (x * _)) :: Int)-(id (id (0 * _)) :: Int,[],id (id (0 * _)) :: Int)-(id (id (id _ * _)) :: Int,[],id (id (id _ * _)) :: Int)-(id (id (g _)) :: Int,[],id (id (g _)) :: Int)-(id (id (head ys)) :: Int,[],id (id (head ys)) :: Int)-(id (id (head [0])) :: Int,[],id (id (head [0])) :: Int)-(id (id (head (_:xs))) :: Int,[],id (id (head (_:xs))) :: Int)-(id (id (head [_])) :: Int,[],id (id (head [_])) :: Int)-(id (id (head (_:_:_))) :: Int,[],id (id (head (_:_:_))) :: Int)-(id (id (head (x:_))) :: Int,[],id (id (head (x:_))) :: Int)-(id (id (head (0:_))) :: Int,[],id (id (head (0:_))) :: Int)-(id (id (head (id _:_))) :: Int,[],id (id (head (id _:_))) :: Int)-(id (id (head (tail _))) :: Int,[],id (id (head (tail _))) :: Int)-(id (id (head (_ ++ _))) :: Int,[],id (id (head (_ ++ _))) :: Int)-(id (id (ord d)) :: Int,[],id (id (ord d)) :: Int)-(id (id (ord ' ')) :: Int,[],id (id (ord ' ')) :: Int)-(id (negate z) :: Int,[],id (negate z) :: Int)-(id (negate (-1)) :: Int,[],id (negate (-1)) :: Int)-(id (negate (id y)) :: Int,[],id (negate (id y)) :: Int)-(id (negate (id 1)) :: Int,[],id (negate (id 1)) :: Int)-(id (negate (id (id x))) :: Int,[],id (negate (id (id x))) :: Int)-(id (negate (id (id 0))) :: Int,[],id (negate (id (id 0))) :: Int)-(id (negate (id (id (id _)))) :: Int,[],id (negate (id (id (id _)))) :: Int)-(id (negate (id (negate _))) :: Int,[],id (negate (id (negate _))) :: Int)-(id (negate (id (abs _))) :: Int,[],id (negate (id (abs _))) :: Int)-(id (negate (id (_ + _))) :: Int,[],id (negate (id (_ + _))) :: Int)-(id (negate (id (head _))) :: Int,[],id (negate (id (head _))) :: Int)-(id (negate (id (ord _))) :: Int,[],id (negate (id (ord _))) :: Int)-(id (negate (negate x)) :: Int,[],id (negate (negate x)) :: Int)-(id (negate (negate 0)) :: Int,[],id (negate (negate 0)) :: Int)-(id (negate (negate (id _))) :: Int,[],id (negate (negate (id _))) :: Int)-(id (negate (abs x)) :: Int,[],id (negate (abs x)) :: Int)-(id (negate (abs 0)) :: Int,[],id (negate (abs 0)) :: Int)-(id (negate (abs (id _))) :: Int,[],id (negate (abs (id _))) :: Int)-(id (negate (_ + x)) :: Int,[],id (negate (_ + x)) :: Int)-(id (negate (_ + 0)) :: Int,[],id (negate (_ + 0)) :: Int)-(id (negate (_ + id _)) :: Int,[],id (negate (_ + id _)) :: Int)-(id (negate (x + _)) :: Int,[],id (negate (x + _)) :: Int)-(id (negate (0 + _)) :: Int,[],id (negate (0 + _)) :: Int)-(id (negate (id _ + _)) :: Int,[],id (negate (id _ + _)) :: Int)-(id (negate (_ * _)) :: Int,[],id (negate (_ * _)) :: Int)-(id (negate (f _)) :: Int,[],id (negate (f _)) :: Int)-(id (negate (head xs)) :: Int,[],id (negate (head xs)) :: Int)-(id (negate (head [])) :: Int,[],id (negate (head [])) :: Int)-(id (negate (head (_:_))) :: Int,[],id (negate (head (_:_))) :: Int)-(id (negate (ord c)) :: Int,[],id (negate (ord c)) :: Int)-(id (negate (ord 'a')) :: Int,[],id (negate (ord 'a')) :: Int)-(id (abs z) :: Int,[],id (abs z) :: Int)-(id (abs (-1)) :: Int,[],id (abs (-1)) :: Int)-(id (abs (id y)) :: Int,[],id (abs (id y)) :: Int)-(id (abs (id 1)) :: Int,[],id (abs (id 1)) :: Int)-(id (abs (id (id x))) :: Int,[],id (abs (id (id x))) :: Int)-(id (abs (id (id 0))) :: Int,[],id (abs (id (id 0))) :: Int)-(id (abs (id (id (id _)))) :: Int,[],id (abs (id (id (id _)))) :: Int)--True
− test/model/bench/match-triexpr.out
@@ -1,795 +0,0 @@-id p  =  p-p && p  =  p-p || p  =  p-p && q  =  q && p-p || q  =  q || p-not (not p)  =  p-p && True  =  p-True && p  =  p-p && False  =  False-False && p  =  False-p || True  =  True-True || p  =  True-p || False  =  p-False || p  =  p-p && not p  =  False-p || not p  =  True-not p && p  =  False-not p || p  =  True-(p && q) && r  =  p && (q && r)-(p || q) || r  =  p || (q || r)-not (p && q)  =  not p || not q-not (p || q)  =  not p && not q-not False  =  True-not True  =  False-not (not p && not q)  =  p || q-not (not p || not q)  =  p && q-p && not (p && q)  =  p && not q-id x  =  x-abs (abs x)  =  abs x-x + 0  =  x-0 + x  =  x-x * 1  =  x-1 * x  =  x-x * 0  =  0-0 * x  =  0-x + y  =  y + x-x * y  =  y * x-(x + y) + z  =  x + (y + z)-(x * y) * z  =  x * (y * z)-(x + x) * y  =  x * (y + y)-x * (y + 1)  =  x + x * y-(x + 1) * y  =  x + x * y-x * (y + z)  =  x * y + x * z-(x + y) * z  =  x * z + y * z-negate (negate x)  =  x-x + negate x  =  0-negate x + x  =  0-abs (negate x)  =  abs x-2 * x  =  x + x-x * 2  =  x + x-3 * x  =  x + (x + x)-x * 3  =  x + (x + x)-4 * x  =  x + (x + (x + x))-x * 4  =  x + (x + (x + x))-abs (x * x)  =  x * x-abs x * abs y  =  abs (x * y)-abs x * abs x  =  abs (x + x)-abs (abs x + abs y)  =  abs x + abs y-abs (x + x) * y  =  abs x * y + abs x * y-abs x * signum x  =  x-signum x * abs x  =  x-id xs  =  xs-head (x:xs)  =  x-tail (x:xs)  =  xs-xs ++ []  =  xs-[] ++ xs  =  xs-[x] ++ xs  =  x:xs-(x:xs) ++ ys  =  x:(xs ++ ys)-(xs ++ ys) ++ zs  =  xs ++ (ys ++ zs)-elem x (sort xs)  =  elem x xs-elem x (insert y xs)  =  elem x (y:xs)-sort (sort xs)  =  sort xs-insert x []  =  [x]-sort (xs ++ ys)  =  sort (ys ++ xs)-sort (insert x xs)  =  insert x (sort xs)-sort (x:xs)  =  insert x (sort xs)-sort (xs ++ sort ys)  =  sort (xs ++ ys)-sort (sort xs ++ ys)  =  sort (xs ++ ys)-insert x (insert y xs)  =  insert y (insert x xs)-insert x (x:xs)  =  x:x:xs-insert x [y]  =  insert y [x]-length (x:xs)  =  length (y:xs)-length (xs ++ ys)  =  length (ys ++ xs)-length (x:y:xs)  =  length (z:x':xs)-length (x:(xs ++ ys))  =  length (y:(ys ++ xs))-length (xs ++ (ys ++ zs))  =  length (xs ++ (zs ++ ys))-not (odd x)  =  even x-not (even x)  =  odd x-x == x  =  True-x /= x  =  False-p == p  =  True-p /= p  =  False-f (g x)  =  (f . g) x-map id xs  =  xs-map (f . g) xs  =  map f (map g xs)-f . id  =  f-id . f  =  f-(f . g) . h  =  f . (g . h)-not . not  =  id--(id x :: Int,[(x :: Int,_ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,x :: Int)],x :: Int)-(id x :: Int,[(x :: Int,0 :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(id x :: Int,[(x :: Int,y :: Int)],x :: Int)-(id x :: Int,[(x :: Int,1 :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(id x :: Int,[(x :: Int,head _ :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord _ :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(not False :: Bool,[],True :: Bool)-(not True :: Bool,[],False :: Bool)-(not (not p) :: Bool,[(p :: Bool,_ :: Bool)],p :: Bool)-(p || p :: Bool,[(p :: Bool,_ :: Bool)],p :: Bool)-(id x :: Int,[(x :: Int,z :: Int)],x :: Int)-(id x :: Int,[(x :: Int,-1 :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(id x :: Int,[(x :: Int,head xs :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head [] :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (_:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord c :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord 'a' :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,x :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,y :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,1 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,x :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ :: Int)],y * x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],x :: Int)-(not (not p) :: Bool,[(p :: Bool,p :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,False :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,True :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not _ :: Bool)],p :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p && p :: Bool,[(p :: Bool,_ :: Bool)],p :: Bool)-(x == x :: Bool,[(x :: Int,_ :: Int)],True :: Bool)-(p == p :: Bool,[(p :: Bool,_ :: Bool)],True :: Bool)-(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])-(xs ++ [] :: [Int],[(xs :: [Int],_ :: [Int])],xs :: [Int])-([] ++ xs :: [Int],[(xs :: [Int],_ :: [Int])],xs :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-(id x :: Int,[(x :: Int,x' :: Int)],x :: Int)-(id x :: Int,[(x :: Int,2 :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,z :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,-1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (negate _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (abs _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (_ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (head _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (ord _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ * _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,f _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head xs :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head [] :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (_:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord c :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord 'a' :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(y +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(1 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id x +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id 0 +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id (id _) +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(negate _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(abs _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,((_ + _) +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(head _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(ord _ +) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ *) :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,g :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(id x :: Int,[(x :: Int,head ys :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head [0] :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (_:xs) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head [_] :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (_:_:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (x:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (0:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (id _:_) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (tail _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,head (_ ++ _) :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord d :: Int)],x :: Int)-(id x :: Int,[(x :: Int,ord ' ' :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,negate :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,abs :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,z :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,-1 :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(x +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(0 +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(id _ +) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ *) :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,f :: Int -> Int),(f :: Int -> Int,(_ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head xs :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,head [] :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,head (_:_) :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord c :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord 'a' :: Int),(x :: Int,_ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,x :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(x +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(0 +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,y :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,1 :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(id _ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,head _ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,id _ :: Int)],y + x :: Int)-(x * y :: Int,[(y :: Int,y :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,1 :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,(_ *) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,head _ :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,ord _ :: Int),(x :: Int,_ :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,(_ +) :: Int -> Int),(f :: Int -> Int,f :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,y :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,y :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(y +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,1 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,1 :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(1 +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id x :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id x +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id 0 :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id 0 +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,id (id _) :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id (id _) +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,negate _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(negate _ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,abs _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(abs _ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,_ + _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,((_ + _) +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,head _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,head _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(head _ +) :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,x :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,0 :: Int),(x :: Int,ord _ :: Int)],y + x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(ord _ +) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,x :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,x :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(x *) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,0 :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,0 :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(0 *) :: Int -> Int)],(f . g) x :: Int)-(x * y :: Int,[(y :: Int,x :: Int),(x :: Int,id _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,0 :: Int),(x :: Int,id _ :: Int)],y * x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,(id _ *) :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,g :: Int -> Int)],(f . g) x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,z :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,-1 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id y :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 1 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id x) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id 0) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id (id _)) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (negate _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (abs _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (_ + _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (head _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (ord _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate (id _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs (id _) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + x :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + 0 :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + id _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,x + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,0 + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,id _ + _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ * _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,f _ :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head xs :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head [] :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,head (_:_) :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord c :: Int)],y + x :: Int)-(x + y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord 'a' :: Int)],y + x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,y :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,1 :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id x :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id 0 :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,id (id _) :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,negate _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,abs _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,_ + _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,head _ :: Int)],y * x :: Int)-(x * y :: Int,[(y :: Int,_ :: Int),(x :: Int,ord _ :: Int)],y * x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],ys :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[0] :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:xs :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[_] :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],x:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],0:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],id _:_ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],tail _ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ ++ _ :: [Int]),(x :: Int,_ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],xs :: [Int]),(x :: Int,id _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],[] :: [Int]),(x :: Int,id _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_:_ :: [Int]),(x :: Int,id _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,y :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,1 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id x :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id 0 :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,id (id _) :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,negate _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,abs _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,_ + _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,head _ :: Int)],x :: Int)-(head (x:xs) :: Int,[(xs :: [Int],_ :: [Int]),(x :: Int,ord _ :: Int)],x :: Int)-(not (not p) :: Bool,[(p :: Bool,q :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not p :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not False :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not True :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,not (not _) :: Bool)],p :: Bool)-(not (not p) :: Bool,[(p :: Bool,_ || _ :: Bool)],p :: Bool)-(not (p || q) :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],not p && not q :: Bool)-(not (p || q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],not p && not q :: Bool)-(not (p && q) :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ :: Bool)],not p || not q :: Bool)-(not (odd x) :: Bool,[(x :: Int,_ :: Int)],even x :: Bool)-(not (even x) :: Bool,[(x :: Int,_ :: Int)],odd x :: Bool)-(p || q :: Bool,[(q :: Bool,q :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not p :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not False :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not True :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not (not _) :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ || _ :: Bool),(p :: Bool,_ :: Bool)],q || p :: Bool)-(p || p :: Bool,[(p :: Bool,p :: Bool)],p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || p :: Bool,[(p :: Bool,False :: Bool)],p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || p :: Bool,[(p :: Bool,True :: Bool)],p :: Bool)-(p || q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,not _ :: Bool)],q || p :: Bool)-(p || p :: Bool,[(p :: Bool,not _ :: Bool)],p :: Bool)-(p && q :: Bool,[(q :: Bool,p :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,False :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,True :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,not _ :: Bool),(p :: Bool,_ :: Bool)],q && p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,q :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not p :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not False :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not True :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not (not _) :: Bool)],q || p :: Bool)-(p || q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,_ || _ :: Bool)],q || p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,p :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,False :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,True :: Bool)],q && p :: Bool)-(p && q :: Bool,[(q :: Bool,_ :: Bool),(p :: Bool,not _ :: Bool)],q && p :: Bool)-(tail (x:xs) :: [Int],[(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],xs :: [Int])-(tail (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],xs :: [Int])-(xs ++ [] :: [Int],[(xs :: [Int],xs :: [Int])],xs :: [Int])-([] ++ xs :: [Int],[(xs :: [Int],xs :: [Int])],xs :: [Int])-(xs ++ [] :: [Int],[(xs :: [Int],[] :: [Int])],xs :: [Int])-([] ++ xs :: [Int],[(xs :: [Int],_:_ :: [Int])],xs :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],xs :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-(xs ++ [] :: [Int],[(xs :: [Int],_:_ :: [Int])],xs :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_:_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],xs :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],[] :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_:_ :: [Int]),(x :: Int,_ :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,x :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,0 :: Int)],x:(xs ++ ys) :: [Int])-((x:xs) ++ ys :: [Int],[(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int]),(x :: Int,id _ :: Int)],x:(xs ++ ys) :: [Int])-((xs ++ ys) ++ zs :: [Int],[(zs :: [Int],_ :: [Int]),(ys :: [Int],_ :: [Int]),(xs :: [Int],_ :: [Int])],xs ++ (ys ++ zs) :: [Int])-(sort (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],insert x (sort xs) :: [Int])-(insert x [] :: [Int],[(x :: Int,_ :: Int)],[x] :: [Int])-(insert x (x:xs) :: [Int],[(xs :: [Int],_ :: [Int]),(x :: Int,_ :: Int)],x:x:xs :: [Int])-(id x :: Int,[(x :: Int,y' :: Int)],x :: Int)-(id x :: Int,[(x :: Int,-2 :: Int)],x :: Int)-(f (g x) :: Int,[(x :: Int,x' :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,2 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id z :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (-1) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id y) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id 1) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (id x)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (id 0)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (id (id _))) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (negate _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (abs _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (_ + _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (head _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (ord _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (negate x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (negate 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (negate (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (abs x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (abs 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (abs (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (_ + x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (_ + 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (_ + id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (x + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (0 + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (_ * _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (f _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (head xs) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (head []) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (head (_:_)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (ord c) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (ord 'a') :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate 1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (id x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (id 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (id (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (negate _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (abs _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (_ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (head _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (ord _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs 1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (id x) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (id 0) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (id (id _)) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (negate _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (abs _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (_ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (head _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (ord _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + y :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + 1 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + id x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + id 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + id (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + negate _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + abs _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + (_ + _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + head _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + ord _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x + x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x + 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x + id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 + x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 + 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 + id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ + x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ + 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ + id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ * x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ * 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ * id _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,f x :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,f 0 :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,f (id _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,y + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,1 + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id x + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 0 + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id _) + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,(_ + _) + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord _ + _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x * _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 * _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ * _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,g _ :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head ys :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head [0] :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (_:xs) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head [_] :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (_:_:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (x:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (0:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (id _:_) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (tail _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (_ ++ _) :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord d :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord ' ' :: Int),(g :: Int -> Int,id :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,z :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,-1 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id y :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 1 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id x) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id 0) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (id _)) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (negate _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (abs _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (_ + _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (head _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (ord _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate 0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,negate (id _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs 0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,abs (id _) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + x :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + 0 :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ + id _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,x + _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,0 + _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id _ + _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,_ * _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,f _ :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head xs :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head [] :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,head (_:_) :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord c :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,ord 'a' :: Int),(g :: Int -> Int,negate :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,z :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,-1 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id y :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id 1 :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id x) :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id 0) :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)-(f (g x) :: Int,[(x :: Int,id (id (id _)) :: Int),(g :: Int -> Int,abs :: Int -> Int),(f :: Int -> Int,id :: Int -> Int)],(f . g) x :: Int)--True
− test/model/bench/pairs.out
@@ -1,1001 +0,0 @@-(_ :: Int,_ :: Int)-(_ :: Int,x :: Int)-(_ :: Int,0 :: Int)-(_ :: Int,id _ :: Int)-(_ :: Int,_ :: Bool)-(_ :: Int,_ :: Char)-(_ :: Int,_ :: [Int])-(x :: Int,_ :: Int)-(0 :: Int,_ :: Int)-(id _ :: Int,_ :: Int)-(_ :: Bool,_ :: Int)-(_ :: Char,_ :: Int)-(_ :: [Int],_ :: Int)-(_ :: Int,y :: Int)-(_ :: Int,1 :: Int)-(_ :: Int,id x :: Int)-(_ :: Int,id 0 :: Int)-(_ :: Int,id (id _) :: Int)-(_ :: Int,negate _ :: Int)-(_ :: Int,abs _ :: Int)-(_ :: Int,_ + _ :: Int)-(_ :: Int,head _ :: Int)-(_ :: Int,ord _ :: Int)-(_ :: Int,p :: Bool)-(_ :: Int,False :: Bool)-(_ :: Int,True :: Bool)-(_ :: Int,not _ :: Bool)-(_ :: Int,c :: Char)-(_ :: Int,'a' :: Char)-(_ :: Int,xs :: [Int])-(_ :: Int,[] :: [Int])-(_ :: Int,_:_ :: [Int])-(_ :: Int,id :: Int -> Int)-(_ :: Int,(+) :: Int -> Int -> Int)-(x :: Int,x :: Int)-(x :: Int,0 :: Int)-(x :: Int,id _ :: Int)-(x :: Int,_ :: Bool)-(x :: Int,_ :: Char)-(x :: Int,_ :: [Int])-(0 :: Int,x :: Int)-(0 :: Int,0 :: Int)-(0 :: Int,id _ :: Int)-(0 :: Int,_ :: Bool)-(0 :: Int,_ :: Char)-(0 :: Int,_ :: [Int])-(id _ :: Int,x :: Int)-(id _ :: Int,0 :: Int)-(id _ :: Int,id _ :: Int)-(id _ :: Int,_ :: Bool)-(id _ :: Int,_ :: Char)-(id _ :: Int,_ :: [Int])-(_ :: Bool,x :: Int)-(_ :: Bool,0 :: Int)-(_ :: Bool,id _ :: Int)-(_ :: Bool,_ :: Bool)-(_ :: Bool,_ :: Char)-(_ :: Bool,_ :: [Int])-(_ :: Char,x :: Int)-(_ :: Char,0 :: Int)-(_ :: Char,id _ :: Int)-(_ :: Char,_ :: Bool)-(_ :: Char,_ :: Char)-(_ :: Char,_ :: [Int])-(_ :: [Int],x :: Int)-(_ :: [Int],0 :: Int)-(_ :: [Int],id _ :: Int)-(_ :: [Int],_ :: Bool)-(_ :: [Int],_ :: Char)-(_ :: [Int],_ :: [Int])-(y :: Int,_ :: Int)-(1 :: Int,_ :: Int)-(id x :: Int,_ :: Int)-(id 0 :: Int,_ :: Int)-(id (id _) :: Int,_ :: Int)-(negate _ :: Int,_ :: Int)-(abs _ :: Int,_ :: Int)-(_ + _ :: Int,_ :: Int)-(head _ :: Int,_ :: Int)-(ord _ :: Int,_ :: Int)-(p :: Bool,_ :: Int)-(False :: Bool,_ :: Int)-(True :: Bool,_ :: Int)-(not _ :: Bool,_ :: Int)-(c :: Char,_ :: Int)-('a' :: Char,_ :: Int)-(xs :: [Int],_ :: Int)-([] :: [Int],_ :: Int)-(_:_ :: [Int],_ :: Int)-(id :: Int -> Int,_ :: Int)-((+) :: Int -> Int -> Int,_ :: Int)-(_ :: Int,z :: Int)-(_ :: Int,-1 :: Int)-(_ :: Int,id y :: Int)-(_ :: Int,id 1 :: Int)-(_ :: Int,id (id x) :: Int)-(_ :: Int,id (id 0) :: Int)-(_ :: Int,id (id (id _)) :: Int)-(_ :: Int,id (negate _) :: Int)-(_ :: Int,id (abs _) :: Int)-(_ :: Int,id (_ + _) :: Int)-(_ :: Int,id (head _) :: Int)-(_ :: Int,id (ord _) :: Int)-(_ :: Int,negate x :: Int)-(_ :: Int,negate 0 :: Int)-(_ :: Int,negate (id _) :: Int)-(_ :: Int,abs x :: Int)-(_ :: Int,abs 0 :: Int)-(_ :: Int,abs (id _) :: Int)-(_ :: Int,_ + x :: Int)-(_ :: Int,_ + 0 :: Int)-(_ :: Int,_ + id _ :: Int)-(_ :: Int,x + _ :: Int)-(_ :: Int,0 + _ :: Int)-(_ :: Int,id _ + _ :: Int)-(_ :: Int,_ * _ :: Int)-(_ :: Int,f _ :: Int)-(_ :: Int,head xs :: Int)-(_ :: Int,head [] :: Int)-(_ :: Int,head (_:_) :: Int)-(_ :: Int,ord c :: Int)-(_ :: Int,ord 'a' :: Int)-(_ :: Int,q :: Bool)-(_ :: Int,not p :: Bool)-(_ :: Int,not False :: Bool)-(_ :: Int,not True :: Bool)-(_ :: Int,not (not _) :: Bool)-(_ :: Int,_ || _ :: Bool)-(_ :: Int,d :: Char)-(_ :: Int,' ' :: Char)-(_ :: Int,ys :: [Int])-(_ :: Int,[0] :: [Int])-(_ :: Int,_:xs :: [Int])-(_ :: Int,[_] :: [Int])-(_ :: Int,_:_:_ :: [Int])-(_ :: Int,x:_ :: [Int])-(_ :: Int,0:_ :: [Int])-(_ :: Int,id _:_ :: [Int])-(_ :: Int,tail _ :: [Int])-(_ :: Int,_ ++ _ :: [Int])-(_ :: Int,negate :: Int -> Int)-(_ :: Int,abs :: Int -> Int)-(_ :: Int,(_ +) :: Int -> Int)-(_ :: Int,(*) :: Int -> Int -> Int)-(_ :: Int,not :: Bool -> Bool)-(_ :: Int,(||) :: Bool -> Bool -> Bool)-(x :: Int,y :: Int)-(x :: Int,1 :: Int)-(x :: Int,id x :: Int)-(x :: Int,id 0 :: Int)-(x :: Int,id (id _) :: Int)-(x :: Int,negate _ :: Int)-(x :: Int,abs _ :: Int)-(x :: Int,_ + _ :: Int)-(x :: Int,head _ :: Int)-(x :: Int,ord _ :: Int)-(x :: Int,p :: Bool)-(x :: Int,False :: Bool)-(x :: Int,True :: Bool)-(x :: Int,not _ :: Bool)-(x :: Int,c :: Char)-(x :: Int,'a' :: Char)-(x :: Int,xs :: [Int])-(x :: Int,[] :: [Int])-(x :: Int,_:_ :: [Int])-(x :: Int,id :: Int -> Int)-(x :: Int,(+) :: Int -> Int -> Int)-(0 :: Int,y :: Int)-(0 :: Int,1 :: Int)-(0 :: Int,id x :: Int)-(0 :: Int,id 0 :: Int)-(0 :: Int,id (id _) :: Int)-(0 :: Int,negate _ :: Int)-(0 :: Int,abs _ :: Int)-(0 :: Int,_ + _ :: Int)-(0 :: Int,head _ :: Int)-(0 :: Int,ord _ :: Int)-(0 :: Int,p :: Bool)-(0 :: Int,False :: Bool)-(0 :: Int,True :: Bool)-(0 :: Int,not _ :: Bool)-(0 :: Int,c :: Char)-(0 :: Int,'a' :: Char)-(0 :: Int,xs :: [Int])-(0 :: Int,[] :: [Int])-(0 :: Int,_:_ :: [Int])-(0 :: Int,id :: Int -> Int)-(0 :: Int,(+) :: Int -> Int -> Int)-(id _ :: Int,y :: Int)-(id _ :: Int,1 :: Int)-(id _ :: Int,id x :: Int)-(id _ :: Int,id 0 :: Int)-(id _ :: Int,id (id _) :: Int)-(id _ :: Int,negate _ :: Int)-(id _ :: Int,abs _ :: Int)-(id _ :: Int,_ + _ :: Int)-(id _ :: Int,head _ :: Int)-(id _ :: Int,ord _ :: Int)-(id _ :: Int,p :: Bool)-(id _ :: Int,False :: Bool)-(id _ :: Int,True :: Bool)-(id _ :: Int,not _ :: Bool)-(id _ :: Int,c :: Char)-(id _ :: Int,'a' :: Char)-(id _ :: Int,xs :: [Int])-(id _ :: Int,[] :: [Int])-(id _ :: Int,_:_ :: [Int])-(id _ :: Int,id :: Int -> Int)-(id _ :: Int,(+) :: Int -> Int -> Int)-(_ :: Bool,y :: Int)-(_ :: Bool,1 :: Int)-(_ :: Bool,id x :: Int)-(_ :: Bool,id 0 :: Int)-(_ :: Bool,id (id _) :: Int)-(_ :: Bool,negate _ :: Int)-(_ :: Bool,abs _ :: Int)-(_ :: Bool,_ + _ :: Int)-(_ :: Bool,head _ :: Int)-(_ :: Bool,ord _ :: Int)-(_ :: Bool,p :: Bool)-(_ :: Bool,False :: Bool)-(_ :: Bool,True :: Bool)-(_ :: Bool,not _ :: Bool)-(_ :: Bool,c :: Char)-(_ :: Bool,'a' :: Char)-(_ :: Bool,xs :: [Int])-(_ :: Bool,[] :: [Int])-(_ :: Bool,_:_ :: [Int])-(_ :: Bool,id :: Int -> Int)-(_ :: Bool,(+) :: Int -> Int -> Int)-(_ :: Char,y :: Int)-(_ :: Char,1 :: Int)-(_ :: Char,id x :: Int)-(_ :: Char,id 0 :: Int)-(_ :: Char,id (id _) :: Int)-(_ :: Char,negate _ :: Int)-(_ :: Char,abs _ :: Int)-(_ :: Char,_ + _ :: Int)-(_ :: Char,head _ :: Int)-(_ :: Char,ord _ :: Int)-(_ :: Char,p :: Bool)-(_ :: Char,False :: Bool)-(_ :: Char,True :: Bool)-(_ :: Char,not _ :: Bool)-(_ :: Char,c :: Char)-(_ :: Char,'a' :: Char)-(_ :: Char,xs :: [Int])-(_ :: Char,[] :: [Int])-(_ :: Char,_:_ :: [Int])-(_ :: Char,id :: Int -> Int)-(_ :: Char,(+) :: Int -> Int -> Int)-(_ :: [Int],y :: Int)-(_ :: [Int],1 :: Int)-(_ :: [Int],id x :: Int)-(_ :: [Int],id 0 :: Int)-(_ :: [Int],id (id _) :: Int)-(_ :: [Int],negate _ :: Int)-(_ :: [Int],abs _ :: Int)-(_ :: [Int],_ + _ :: Int)-(_ :: [Int],head _ :: Int)-(_ :: [Int],ord _ :: Int)-(_ :: [Int],p :: Bool)-(_ :: [Int],False :: Bool)-(_ :: [Int],True :: Bool)-(_ :: [Int],not _ :: Bool)-(_ :: [Int],c :: Char)-(_ :: [Int],'a' :: Char)-(_ :: [Int],xs :: [Int])-(_ :: [Int],[] :: [Int])-(_ :: [Int],_:_ :: [Int])-(_ :: [Int],id :: Int -> Int)-(_ :: [Int],(+) :: Int -> Int -> Int)-(y :: Int,x :: Int)-(y :: Int,0 :: Int)-(y :: Int,id _ :: Int)-(y :: Int,_ :: Bool)-(y :: Int,_ :: Char)-(y :: Int,_ :: [Int])-(1 :: Int,x :: Int)-(1 :: Int,0 :: Int)-(1 :: Int,id _ :: Int)-(1 :: Int,_ :: Bool)-(1 :: Int,_ :: Char)-(1 :: Int,_ :: [Int])-(id x :: Int,x :: Int)-(id x :: Int,0 :: Int)-(id x :: Int,id _ :: Int)-(id x :: Int,_ :: Bool)-(id x :: Int,_ :: Char)-(id x :: Int,_ :: [Int])-(id 0 :: Int,x :: Int)-(id 0 :: Int,0 :: Int)-(id 0 :: Int,id _ :: Int)-(id 0 :: Int,_ :: Bool)-(id 0 :: Int,_ :: Char)-(id 0 :: Int,_ :: [Int])-(id (id _) :: Int,x :: Int)-(id (id _) :: Int,0 :: Int)-(id (id _) :: Int,id _ :: Int)-(id (id _) :: Int,_ :: Bool)-(id (id _) :: Int,_ :: Char)-(id (id _) :: Int,_ :: [Int])-(negate _ :: Int,x :: Int)-(negate _ :: Int,0 :: Int)-(negate _ :: Int,id _ :: Int)-(negate _ :: Int,_ :: Bool)-(negate _ :: Int,_ :: Char)-(negate _ :: Int,_ :: [Int])-(abs _ :: Int,x :: Int)-(abs _ :: Int,0 :: Int)-(abs _ :: Int,id _ :: Int)-(abs _ :: Int,_ :: Bool)-(abs _ :: Int,_ :: Char)-(abs _ :: Int,_ :: [Int])-(_ + _ :: Int,x :: Int)-(_ + _ :: Int,0 :: Int)-(_ + _ :: Int,id _ :: Int)-(_ + _ :: Int,_ :: Bool)-(_ + _ :: Int,_ :: Char)-(_ + _ :: Int,_ :: [Int])-(head _ :: Int,x :: Int)-(head _ :: Int,0 :: Int)-(head _ :: Int,id _ :: Int)-(head _ :: Int,_ :: Bool)-(head _ :: Int,_ :: Char)-(head _ :: Int,_ :: [Int])-(ord _ :: Int,x :: Int)-(ord _ :: Int,0 :: Int)-(ord _ :: Int,id _ :: Int)-(ord _ :: Int,_ :: Bool)-(ord _ :: Int,_ :: Char)-(ord _ :: Int,_ :: [Int])-(p :: Bool,x :: Int)-(p :: Bool,0 :: Int)-(p :: Bool,id _ :: Int)-(p :: Bool,_ :: Bool)-(p :: Bool,_ :: Char)-(p :: Bool,_ :: [Int])-(False :: Bool,x :: Int)-(False :: Bool,0 :: Int)-(False :: Bool,id _ :: Int)-(False :: Bool,_ :: Bool)-(False :: Bool,_ :: Char)-(False :: Bool,_ :: [Int])-(True :: Bool,x :: Int)-(True :: Bool,0 :: Int)-(True :: Bool,id _ :: Int)-(True :: Bool,_ :: Bool)-(True :: Bool,_ :: Char)-(True :: Bool,_ :: [Int])-(not _ :: Bool,x :: Int)-(not _ :: Bool,0 :: Int)-(not _ :: Bool,id _ :: Int)-(not _ :: Bool,_ :: Bool)-(not _ :: Bool,_ :: Char)-(not _ :: Bool,_ :: [Int])-(c :: Char,x :: Int)-(c :: Char,0 :: Int)-(c :: Char,id _ :: Int)-(c :: Char,_ :: Bool)-(c :: Char,_ :: Char)-(c :: Char,_ :: [Int])-('a' :: Char,x :: Int)-('a' :: Char,0 :: Int)-('a' :: Char,id _ :: Int)-('a' :: Char,_ :: Bool)-('a' :: Char,_ :: Char)-('a' :: Char,_ :: [Int])-(xs :: [Int],x :: Int)-(xs :: [Int],0 :: Int)-(xs :: [Int],id _ :: Int)-(xs :: [Int],_ :: Bool)-(xs :: [Int],_ :: Char)-(xs :: [Int],_ :: [Int])-([] :: [Int],x :: Int)-([] :: [Int],0 :: Int)-([] :: [Int],id _ :: Int)-([] :: [Int],_ :: Bool)-([] :: [Int],_ :: Char)-([] :: [Int],_ :: [Int])-(_:_ :: [Int],x :: Int)-(_:_ :: [Int],0 :: Int)-(_:_ :: [Int],id _ :: Int)-(_:_ :: [Int],_ :: Bool)-(_:_ :: [Int],_ :: Char)-(_:_ :: [Int],_ :: [Int])-(id :: Int -> Int,x :: Int)-(id :: Int -> Int,0 :: Int)-(id :: Int -> Int,id _ :: Int)-(id :: Int -> Int,_ :: Bool)-(id :: Int -> Int,_ :: Char)-(id :: Int -> Int,_ :: [Int])-((+) :: Int -> Int -> Int,x :: Int)-((+) :: Int -> Int -> Int,0 :: Int)-((+) :: Int -> Int -> Int,id _ :: Int)-((+) :: Int -> Int -> Int,_ :: Bool)-((+) :: Int -> Int -> Int,_ :: Char)-((+) :: Int -> Int -> Int,_ :: [Int])-(z :: Int,_ :: Int)-(-1 :: Int,_ :: Int)-(id y :: Int,_ :: Int)-(id 1 :: Int,_ :: Int)-(id (id x) :: Int,_ :: Int)-(id (id 0) :: Int,_ :: Int)-(id (id (id _)) :: Int,_ :: Int)-(id (negate _) :: Int,_ :: Int)-(id (abs _) :: Int,_ :: Int)-(id (_ + _) :: Int,_ :: Int)-(id (head _) :: Int,_ :: Int)-(id (ord _) :: Int,_ :: Int)-(negate x :: Int,_ :: Int)-(negate 0 :: Int,_ :: Int)-(negate (id _) :: Int,_ :: Int)-(abs x :: Int,_ :: Int)-(abs 0 :: Int,_ :: Int)-(abs (id _) :: Int,_ :: Int)-(_ + x :: Int,_ :: Int)-(_ + 0 :: Int,_ :: Int)-(_ + id _ :: Int,_ :: Int)-(x + _ :: Int,_ :: Int)-(0 + _ :: Int,_ :: Int)-(id _ + _ :: Int,_ :: Int)-(_ * _ :: Int,_ :: Int)-(f _ :: Int,_ :: Int)-(head xs :: Int,_ :: Int)-(head [] :: Int,_ :: Int)-(head (_:_) :: Int,_ :: Int)-(ord c :: Int,_ :: Int)-(ord 'a' :: Int,_ :: Int)-(q :: Bool,_ :: Int)-(not p :: Bool,_ :: Int)-(not False :: Bool,_ :: Int)-(not True :: Bool,_ :: Int)-(not (not _) :: Bool,_ :: Int)-(_ || _ :: Bool,_ :: Int)-(d :: Char,_ :: Int)-(' ' :: Char,_ :: Int)-(ys :: [Int],_ :: Int)-([0] :: [Int],_ :: Int)-(_:xs :: [Int],_ :: Int)-([_] :: [Int],_ :: Int)-(_:_:_ :: [Int],_ :: Int)-(x:_ :: [Int],_ :: Int)-(0:_ :: [Int],_ :: Int)-(id _:_ :: [Int],_ :: Int)-(tail _ :: [Int],_ :: Int)-(_ ++ _ :: [Int],_ :: Int)-(negate :: Int -> Int,_ :: Int)-(abs :: Int -> Int,_ :: Int)-((_ +) :: Int -> Int,_ :: Int)-((*) :: Int -> Int -> Int,_ :: Int)-(not :: Bool -> Bool,_ :: Int)-((||) :: Bool -> Bool -> Bool,_ :: Int)-(_ :: Int,x' :: Int)-(_ :: Int,2 :: Int)-(_ :: Int,id z :: Int)-(_ :: Int,id (-1) :: Int)-(_ :: Int,id (id y) :: Int)-(_ :: Int,id (id 1) :: Int)-(_ :: Int,id (id (id x)) :: Int)-(_ :: Int,id (id (id 0)) :: Int)-(_ :: Int,id (id (id (id _))) :: Int)-(_ :: Int,id (id (negate _)) :: Int)-(_ :: Int,id (id (abs _)) :: Int)-(_ :: Int,id (id (_ + _)) :: Int)-(_ :: Int,id (id (head _)) :: Int)-(_ :: Int,id (id (ord _)) :: Int)-(_ :: Int,id (negate x) :: Int)-(_ :: Int,id (negate 0) :: Int)-(_ :: Int,id (negate (id _)) :: Int)-(_ :: Int,id (abs x) :: Int)-(_ :: Int,id (abs 0) :: Int)-(_ :: Int,id (abs (id _)) :: Int)-(_ :: Int,id (_ + x) :: Int)-(_ :: Int,id (_ + 0) :: Int)-(_ :: Int,id (_ + id _) :: Int)-(_ :: Int,id (x + _) :: Int)-(_ :: Int,id (0 + _) :: Int)-(_ :: Int,id (id _ + _) :: Int)-(_ :: Int,id (_ * _) :: Int)-(_ :: Int,id (f _) :: Int)-(_ :: Int,id (head xs) :: Int)-(_ :: Int,id (head []) :: Int)-(_ :: Int,id (head (_:_)) :: Int)-(_ :: Int,id (ord c) :: Int)-(_ :: Int,id (ord 'a') :: Int)-(_ :: Int,negate y :: Int)-(_ :: Int,negate 1 :: Int)-(_ :: Int,negate (id x) :: Int)-(_ :: Int,negate (id 0) :: Int)-(_ :: Int,negate (id (id _)) :: Int)-(_ :: Int,negate (negate _) :: Int)-(_ :: Int,negate (abs _) :: Int)-(_ :: Int,negate (_ + _) :: Int)-(_ :: Int,negate (head _) :: Int)-(_ :: Int,negate (ord _) :: Int)-(_ :: Int,abs y :: Int)-(_ :: Int,abs 1 :: Int)-(_ :: Int,abs (id x) :: Int)-(_ :: Int,abs (id 0) :: Int)-(_ :: Int,abs (id (id _)) :: Int)-(_ :: Int,abs (negate _) :: Int)-(_ :: Int,abs (abs _) :: Int)-(_ :: Int,abs (_ + _) :: Int)-(_ :: Int,abs (head _) :: Int)-(_ :: Int,abs (ord _) :: Int)-(_ :: Int,_ + y :: Int)-(_ :: Int,_ + 1 :: Int)-(_ :: Int,_ + id x :: Int)-(_ :: Int,_ + id 0 :: Int)-(_ :: Int,_ + id (id _) :: Int)-(_ :: Int,_ + negate _ :: Int)-(_ :: Int,_ + abs _ :: Int)-(_ :: Int,_ + (_ + _) :: Int)-(_ :: Int,_ + head _ :: Int)-(_ :: Int,_ + ord _ :: Int)-(_ :: Int,x + x :: Int)-(_ :: Int,x + 0 :: Int)-(_ :: Int,x + id _ :: Int)-(_ :: Int,0 + x :: Int)-(_ :: Int,0 + 0 :: Int)-(_ :: Int,0 + id _ :: Int)-(_ :: Int,id _ + x :: Int)-(_ :: Int,id _ + 0 :: Int)-(_ :: Int,id _ + id _ :: Int)-(_ :: Int,_ * x :: Int)-(_ :: Int,_ * 0 :: Int)-(_ :: Int,_ * id _ :: Int)-(_ :: Int,f x :: Int)-(_ :: Int,f 0 :: Int)-(_ :: Int,f (id _) :: Int)-(_ :: Int,y + _ :: Int)-(_ :: Int,1 + _ :: Int)-(_ :: Int,id x + _ :: Int)-(_ :: Int,id 0 + _ :: Int)-(_ :: Int,id (id _) + _ :: Int)-(_ :: Int,negate _ + _ :: Int)-(_ :: Int,abs _ + _ :: Int)-(_ :: Int,(_ + _) + _ :: Int)-(_ :: Int,head _ + _ :: Int)-(_ :: Int,ord _ + _ :: Int)-(_ :: Int,x * _ :: Int)-(_ :: Int,0 * _ :: Int)-(_ :: Int,id _ * _ :: Int)-(_ :: Int,g _ :: Int)-(_ :: Int,head ys :: Int)-(_ :: Int,head [0] :: Int)-(_ :: Int,head (_:xs) :: Int)-(_ :: Int,head [_] :: Int)-(_ :: Int,head (_:_:_) :: Int)-(_ :: Int,head (x:_) :: Int)-(_ :: Int,head (0:_) :: Int)-(_ :: Int,head (id _:_) :: Int)-(_ :: Int,head (tail _) :: Int)-(_ :: Int,head (_ ++ _) :: Int)-(_ :: Int,ord d :: Int)-(_ :: Int,ord ' ' :: Int)-(_ :: Int,r :: Bool)-(_ :: Int,not q :: Bool)-(_ :: Int,not (not p) :: Bool)-(_ :: Int,not (not False) :: Bool)-(_ :: Int,not (not True) :: Bool)-(_ :: Int,not (not (not _)) :: Bool)-(_ :: Int,not (_ || _) :: Bool)-(_ :: Int,_ || p :: Bool)-(_ :: Int,_ || False :: Bool)-(_ :: Int,_ || True :: Bool)-(_ :: Int,_ || not _ :: Bool)-(_ :: Int,p || _ :: Bool)-(_ :: Int,False || _ :: Bool)-(_ :: Int,True || _ :: Bool)-(_ :: Int,not _ || _ :: Bool)-(_ :: Int,_ && _ :: Bool)-(_ :: Int,_ == _ :: Bool)-(_ :: Int,_ == _ :: Bool)-(_ :: Int,odd _ :: Bool)-(_ :: Int,even _ :: Bool)-(_ :: Int,elem _ _ :: Bool)-(_ :: Int,e :: Char)-(_ :: Int,'b' :: Char)-(_ :: Int,zs :: [Int])-(_ :: Int,[0,0] :: [Int])-(_ :: Int,[1] :: [Int])-(_ :: Int,_:ys :: [Int])-(_ :: Int,[_,0] :: [Int])-(_ :: Int,_:_:xs :: [Int])-(_ :: Int,[_,_] :: [Int])-(_ :: Int,_:_:_:_ :: [Int])-(_ :: Int,_:x:_ :: [Int])-(_ :: Int,_:0:_ :: [Int])-(_ :: Int,_:id _:_ :: [Int])-(_ :: Int,_:tail _ :: [Int])-(_ :: Int,_:(_ ++ _) :: [Int])-(_ :: Int,x:xs :: [Int])-(_ :: Int,[x] :: [Int])-(_ :: Int,x:_:_ :: [Int])-(_ :: Int,0:xs :: [Int])-(_ :: Int,[0] :: [Int])-(_ :: Int,0:_:_ :: [Int])-(_ :: Int,id _:xs :: [Int])-(_ :: Int,[id _] :: [Int])-(_ :: Int,id _:_:_ :: [Int])-(_ :: Int,y:_ :: [Int])-(_ :: Int,1:_ :: [Int])-(_ :: Int,id x:_ :: [Int])-(_ :: Int,id 0:_ :: [Int])-(_ :: Int,id (id _):_ :: [Int])-(_ :: Int,negate _:_ :: [Int])-(_ :: Int,abs _:_ :: [Int])-(_ :: Int,_ + _:_ :: [Int])-(_ :: Int,head _:_ :: [Int])-(_ :: Int,ord _:_ :: [Int])-(_ :: Int,tail xs :: [Int])-(_ :: Int,tail [] :: [Int])-(_ :: Int,tail (_:_) :: [Int])-(_ :: Int,_ ++ xs :: [Int])-(_ :: Int,_ ++ [] :: [Int])-(_ :: Int,_ ++ (_:_) :: [Int])-(_ :: Int,xs ++ _ :: [Int])-(_ :: Int,[] ++ _ :: [Int])-(_ :: Int,(_:_) ++ _ :: [Int])-(_ :: Int,sort _ :: [Int])-(_ :: Int,insert _ _ :: [Int])-(_ :: Int,(x +) :: Int -> Int)-(_ :: Int,(0 +) :: Int -> Int)-(_ :: Int,(id _ +) :: Int -> Int)-(_ :: Int,(_ *) :: Int -> Int)-(_ :: Int,f :: Int -> Int)-(_ :: Int,(_ ||) :: Bool -> Bool)-(_ :: Int,(&&) :: Bool -> Bool -> Bool)-(x :: Int,z :: Int)-(x :: Int,-1 :: Int)-(x :: Int,id y :: Int)-(x :: Int,id 1 :: Int)-(x :: Int,id (id x) :: Int)-(x :: Int,id (id 0) :: Int)-(x :: Int,id (id (id _)) :: Int)-(x :: Int,id (negate _) :: Int)-(x :: Int,id (abs _) :: Int)-(x :: Int,id (_ + _) :: Int)-(x :: Int,id (head _) :: Int)-(x :: Int,id (ord _) :: Int)-(x :: Int,negate x :: Int)-(x :: Int,negate 0 :: Int)-(x :: Int,negate (id _) :: Int)-(x :: Int,abs x :: Int)-(x :: Int,abs 0 :: Int)-(x :: Int,abs (id _) :: Int)-(x :: Int,_ + x :: Int)-(x :: Int,_ + 0 :: Int)-(x :: Int,_ + id _ :: Int)-(x :: Int,x + _ :: Int)-(x :: Int,0 + _ :: Int)-(x :: Int,id _ + _ :: Int)-(x :: Int,_ * _ :: Int)-(x :: Int,f _ :: Int)-(x :: Int,head xs :: Int)-(x :: Int,head [] :: Int)-(x :: Int,head (_:_) :: Int)-(x :: Int,ord c :: Int)-(x :: Int,ord 'a' :: Int)-(x :: Int,q :: Bool)-(x :: Int,not p :: Bool)-(x :: Int,not False :: Bool)-(x :: Int,not True :: Bool)-(x :: Int,not (not _) :: Bool)-(x :: Int,_ || _ :: Bool)-(x :: Int,d :: Char)-(x :: Int,' ' :: Char)-(x :: Int,ys :: [Int])-(x :: Int,[0] :: [Int])-(x :: Int,_:xs :: [Int])-(x :: Int,[_] :: [Int])-(x :: Int,_:_:_ :: [Int])-(x :: Int,x:_ :: [Int])-(x :: Int,0:_ :: [Int])-(x :: Int,id _:_ :: [Int])-(x :: Int,tail _ :: [Int])-(x :: Int,_ ++ _ :: [Int])-(x :: Int,negate :: Int -> Int)-(x :: Int,abs :: Int -> Int)-(x :: Int,(_ +) :: Int -> Int)-(x :: Int,(*) :: Int -> Int -> Int)-(x :: Int,not :: Bool -> Bool)-(x :: Int,(||) :: Bool -> Bool -> Bool)-(0 :: Int,z :: Int)-(0 :: Int,-1 :: Int)-(0 :: Int,id y :: Int)-(0 :: Int,id 1 :: Int)-(0 :: Int,id (id x) :: Int)-(0 :: Int,id (id 0) :: Int)-(0 :: Int,id (id (id _)) :: Int)-(0 :: Int,id (negate _) :: Int)-(0 :: Int,id (abs _) :: Int)-(0 :: Int,id (_ + _) :: Int)-(0 :: Int,id (head _) :: Int)-(0 :: Int,id (ord _) :: Int)-(0 :: Int,negate x :: Int)-(0 :: Int,negate 0 :: Int)-(0 :: Int,negate (id _) :: Int)-(0 :: Int,abs x :: Int)-(0 :: Int,abs 0 :: Int)-(0 :: Int,abs (id _) :: Int)-(0 :: Int,_ + x :: Int)-(0 :: Int,_ + 0 :: Int)-(0 :: Int,_ + id _ :: Int)-(0 :: Int,x + _ :: Int)-(0 :: Int,0 + _ :: Int)-(0 :: Int,id _ + _ :: Int)-(0 :: Int,_ * _ :: Int)-(0 :: Int,f _ :: Int)-(0 :: Int,head xs :: Int)-(0 :: Int,head [] :: Int)-(0 :: Int,head (_:_) :: Int)-(0 :: Int,ord c :: Int)-(0 :: Int,ord 'a' :: Int)-(0 :: Int,q :: Bool)-(0 :: Int,not p :: Bool)-(0 :: Int,not False :: Bool)-(0 :: Int,not True :: Bool)-(0 :: Int,not (not _) :: Bool)-(0 :: Int,_ || _ :: Bool)-(0 :: Int,d :: Char)-(0 :: Int,' ' :: Char)-(0 :: Int,ys :: [Int])-(0 :: Int,[0] :: [Int])-(0 :: Int,_:xs :: [Int])-(0 :: Int,[_] :: [Int])-(0 :: Int,_:_:_ :: [Int])-(0 :: Int,x:_ :: [Int])-(0 :: Int,0:_ :: [Int])-(0 :: Int,id _:_ :: [Int])-(0 :: Int,tail _ :: [Int])-(0 :: Int,_ ++ _ :: [Int])-(0 :: Int,negate :: Int -> Int)-(0 :: Int,abs :: Int -> Int)-(0 :: Int,(_ +) :: Int -> Int)-(0 :: Int,(*) :: Int -> Int -> Int)-(0 :: Int,not :: Bool -> Bool)-(0 :: Int,(||) :: Bool -> Bool -> Bool)-(id _ :: Int,z :: Int)-(id _ :: Int,-1 :: Int)-(id _ :: Int,id y :: Int)-(id _ :: Int,id 1 :: Int)-(id _ :: Int,id (id x) :: Int)-(id _ :: Int,id (id 0) :: Int)-(id _ :: Int,id (id (id _)) :: Int)-(id _ :: Int,id (negate _) :: Int)-(id _ :: Int,id (abs _) :: Int)-(id _ :: Int,id (_ + _) :: Int)-(id _ :: Int,id (head _) :: Int)-(id _ :: Int,id (ord _) :: Int)-(id _ :: Int,negate x :: Int)-(id _ :: Int,negate 0 :: Int)-(id _ :: Int,negate (id _) :: Int)-(id _ :: Int,abs x :: Int)-(id _ :: Int,abs 0 :: Int)-(id _ :: Int,abs (id _) :: Int)-(id _ :: Int,_ + x :: Int)-(id _ :: Int,_ + 0 :: Int)-(id _ :: Int,_ + id _ :: Int)-(id _ :: Int,x + _ :: Int)-(id _ :: Int,0 + _ :: Int)-(id _ :: Int,id _ + _ :: Int)-(id _ :: Int,_ * _ :: Int)-(id _ :: Int,f _ :: Int)-(id _ :: Int,head xs :: Int)-(id _ :: Int,head [] :: Int)-(id _ :: Int,head (_:_) :: Int)-(id _ :: Int,ord c :: Int)-(id _ :: Int,ord 'a' :: Int)-(id _ :: Int,q :: Bool)-(id _ :: Int,not p :: Bool)-(id _ :: Int,not False :: Bool)-(id _ :: Int,not True :: Bool)-(id _ :: Int,not (not _) :: Bool)-(id _ :: Int,_ || _ :: Bool)-(id _ :: Int,d :: Char)-(id _ :: Int,' ' :: Char)-(id _ :: Int,ys :: [Int])-(id _ :: Int,[0] :: [Int])-(id _ :: Int,_:xs :: [Int])-(id _ :: Int,[_] :: [Int])-(id _ :: Int,_:_:_ :: [Int])-(id _ :: Int,x:_ :: [Int])-(id _ :: Int,0:_ :: [Int])-(id _ :: Int,id _:_ :: [Int])-(id _ :: Int,tail _ :: [Int])-(id _ :: Int,_ ++ _ :: [Int])-(id _ :: Int,negate :: Int -> Int)-(id _ :: Int,abs :: Int -> Int)-(id _ :: Int,(_ +) :: Int -> Int)-(id _ :: Int,(*) :: Int -> Int -> Int)-(id _ :: Int,not :: Bool -> Bool)-(id _ :: Int,(||) :: Bool -> Bool -> Bool)-(_ :: Bool,z :: Int)-(_ :: Bool,-1 :: Int)-(_ :: Bool,id y :: Int)-(_ :: Bool,id 1 :: Int)-(_ :: Bool,id (id x) :: Int)-(_ :: Bool,id (id 0) :: Int)-(_ :: Bool,id (id (id _)) :: Int)-(_ :: Bool,id (negate _) :: Int)-(_ :: Bool,id (abs _) :: Int)-(_ :: Bool,id (_ + _) :: Int)-(_ :: Bool,id (head _) :: Int)-(_ :: Bool,id (ord _) :: Int)-(_ :: Bool,negate x :: Int)-(_ :: Bool,negate 0 :: Int)-(_ :: Bool,negate (id _) :: Int)-(_ :: Bool,abs x :: Int)-(_ :: Bool,abs 0 :: Int)-(_ :: Bool,abs (id _) :: Int)-(_ :: Bool,_ + x :: Int)-(_ :: Bool,_ + 0 :: Int)-(_ :: Bool,_ + id _ :: Int)-(_ :: Bool,x + _ :: Int)-(_ :: Bool,0 + _ :: Int)-(_ :: Bool,id _ + _ :: Int)-(_ :: Bool,_ * _ :: Int)-(_ :: Bool,f _ :: Int)-(_ :: Bool,head xs :: Int)-(_ :: Bool,head [] :: Int)-(_ :: Bool,head (_:_) :: Int)-(_ :: Bool,ord c :: Int)-(_ :: Bool,ord 'a' :: Int)-(_ :: Bool,q :: Bool)-(_ :: Bool,not p :: Bool)-(_ :: Bool,not False :: Bool)-(_ :: Bool,not True :: Bool)-(_ :: Bool,not (not _) :: Bool)-(_ :: Bool,_ || _ :: Bool)-(_ :: Bool,d :: Char)-(_ :: Bool,' ' :: Char)-(_ :: Bool,ys :: [Int])-(_ :: Bool,[0] :: [Int])-(_ :: Bool,_:xs :: [Int])-(_ :: Bool,[_] :: [Int])-(_ :: Bool,_:_:_ :: [Int])-(_ :: Bool,x:_ :: [Int])-(_ :: Bool,0:_ :: [Int])-(_ :: Bool,id _:_ :: [Int])-(_ :: Bool,tail _ :: [Int])-(_ :: Bool,_ ++ _ :: [Int])-(_ :: Bool,negate :: Int -> Int)-(_ :: Bool,abs :: Int -> Int)-(_ :: Bool,(_ +) :: Int -> Int)-(_ :: Bool,(*) :: Int -> Int -> Int)-(_ :: Bool,not :: Bool -> Bool)-(_ :: Bool,(||) :: Bool -> Bool -> Bool)-(_ :: Char,z :: Int)-(_ :: Char,-1 :: Int)-(_ :: Char,id y :: Int)-(_ :: Char,id 1 :: Int)-(_ :: Char,id (id x) :: Int)-(_ :: Char,id (id 0) :: Int)-(_ :: Char,id (id (id _)) :: Int)-(_ :: Char,id (negate _) :: Int)-(_ :: Char,id (abs _) :: Int)-(_ :: Char,id (_ + _) :: Int)-(_ :: Char,id (head _) :: Int)-(_ :: Char,id (ord _) :: Int)-(_ :: Char,negate x :: Int)-(_ :: Char,negate 0 :: Int)-(_ :: Char,negate (id _) :: Int)-(_ :: Char,abs x :: Int)-(_ :: Char,abs 0 :: Int)-(_ :: Char,abs (id _) :: Int)-(_ :: Char,_ + x :: Int)-(_ :: Char,_ + 0 :: Int)-(_ :: Char,_ + id _ :: Int)-(_ :: Char,x + _ :: Int)-(_ :: Char,0 + _ :: Int)-(_ :: Char,id _ + _ :: Int)-(_ :: Char,_ * _ :: Int)-(_ :: Char,f _ :: Int)-(_ :: Char,head xs :: Int)-(_ :: Char,head [] :: Int)-(_ :: Char,head (_:_) :: Int)-(_ :: Char,ord c :: Int)-(_ :: Char,ord 'a' :: Int)-(_ :: Char,q :: Bool)-(_ :: Char,not p :: Bool)-(_ :: Char,not False :: Bool)-(_ :: Char,not True :: Bool)-(_ :: Char,not (not _) :: Bool)-(_ :: Char,_ || _ :: Bool)-(_ :: Char,d :: Char)-(_ :: Char,' ' :: Char)-(_ :: Char,ys :: [Int])-(_ :: Char,[0] :: [Int])-(_ :: Char,_:xs :: [Int])-(_ :: Char,[_] :: [Int])-(_ :: Char,_:_:_ :: [Int])-(_ :: Char,x:_ :: [Int])-(_ :: Char,0:_ :: [Int])-(_ :: Char,id _:_ :: [Int])-(_ :: Char,tail _ :: [Int])-(_ :: Char,_ ++ _ :: [Int])-(_ :: Char,negate :: Int -> Int)-(_ :: Char,abs :: Int -> Int)-(_ :: Char,(_ +) :: Int -> Int)-(_ :: Char,(*) :: Int -> Int -> Int)-(_ :: Char,not :: Bool -> Bool)-(_ :: Char,(||) :: Bool -> Bool -> Bool)-(_ :: [Int],z :: Int)-(_ :: [Int],-1 :: Int)-(_ :: [Int],id y :: Int)-(_ :: [Int],id 1 :: Int)-(_ :: [Int],id (id x) :: Int)-(_ :: [Int],id (id 0) :: Int)-(_ :: [Int],id (id (id _)) :: Int)-(_ :: [Int],id (negate _) :: Int)-(_ :: [Int],id (abs _) :: Int)-(_ :: [Int],id (_ + _) :: Int)-(_ :: [Int],id (head _) :: Int)-(_ :: [Int],id (ord _) :: Int)-(_ :: [Int],negate x :: Int)-(_ :: [Int],negate 0 :: Int)-(_ :: [Int],negate (id _) :: Int)-(_ :: [Int],abs x :: Int)-(_ :: [Int],abs 0 :: Int)-(_ :: [Int],abs (id _) :: Int)-(_ :: [Int],_ + x :: Int)-(_ :: [Int],_ + 0 :: Int)-(_ :: [Int],_ + id _ :: Int)-(_ :: [Int],x + _ :: Int)-(_ :: [Int],0 + _ :: Int)-(_ :: [Int],id _ + _ :: Int)-(_ :: [Int],_ * _ :: Int)-(_ :: [Int],f _ :: Int)-(_ :: [Int],head xs :: Int)-(_ :: [Int],head [] :: Int)-(_ :: [Int],head (_:_) :: Int)-(_ :: [Int],ord c :: Int)-(_ :: [Int],ord 'a' :: Int)-(_ :: [Int],q :: Bool)-(_ :: [Int],not p :: Bool)-(_ :: [Int],not False :: Bool)-(_ :: [Int],not True :: Bool)-(_ :: [Int],not (not _) :: Bool)-(_ :: [Int],_ || _ :: Bool)-(_ :: [Int],d :: Char)-(_ :: [Int],' ' :: Char)-(_ :: [Int],ys :: [Int])-(_ :: [Int],[0] :: [Int])-(_ :: [Int],_:xs :: [Int])-(_ :: [Int],[_] :: [Int])-(_ :: [Int],_:_:_ :: [Int])-(_ :: [Int],x:_ :: [Int])-(_ :: [Int],0:_ :: [Int])-(_ :: [Int],id _:_ :: [Int])-(_ :: [Int],tail _ :: [Int])-(_ :: [Int],_ ++ _ :: [Int])-(_ :: [Int],negate :: Int -> Int)-(_ :: [Int],abs :: Int -> Int)-(_ :: [Int],(_ +) :: Int -> Int)-(_ :: [Int],(*) :: Int -> Int -> Int)-(_ :: [Int],not :: Bool -> Bool)-(_ :: [Int],(||) :: Bool -> Bool -> Bool)-(y :: Int,y :: Int)-(y :: Int,1 :: Int)-(y :: Int,id x :: Int)-(y :: Int,id 0 :: Int)-(y :: Int,id (id _) :: Int)-(y :: Int,negate _ :: Int)-(y :: Int,abs _ :: Int)-(y :: Int,_ + _ :: Int)-(y :: Int,head _ :: Int)-(y :: Int,ord _ :: Int)-(y :: Int,p :: Bool)-(y :: Int,False :: Bool)-(y :: Int,True :: Bool)-(y :: Int,not _ :: Bool)-(y :: Int,c :: Char)-(y :: Int,'a' :: Char)-(y :: Int,xs :: [Int])-(y :: Int,[] :: [Int])-(y :: Int,_:_ :: [Int])-(y :: Int,id :: Int -> Int)-(y :: Int,(+) :: Int -> Int -> Int)-(1 :: Int,y :: Int)-(1 :: Int,1 :: Int)-(1 :: Int,id x :: Int)-(1 :: Int,id 0 :: Int)-(1 :: Int,id (id _) :: Int)-(1 :: Int,negate _ :: Int)-(1 :: Int,abs _ :: Int)-(1 :: Int,_ + _ :: Int)-(1 :: Int,head _ :: Int)-(1 :: Int,ord _ :: Int)-(1 :: Int,p :: Bool)-(1 :: Int,False :: Bool)-(1 :: Int,True :: Bool)-(1 :: Int,not _ :: Bool)-(1 :: Int,c :: Char)-(1 :: Int,'a' :: Char)-(1 :: Int,xs :: [Int])-(1 :: Int,[] :: [Int])-(1 :: Int,_:_ :: [Int])-
− test/model/bench/sort.out
@@ -1,15129 +0,0 @@-sort $ take 5040 $ list  ::  [ Expr ]  =-  [ _ :: Bool-  , p :: Bool-  , q :: Bool-  , r :: Bool-  , p' :: Bool-  , q' :: Bool-  , _ :: Char-  , c :: Char-  , d :: Char-  , e :: Char-  , c' :: Char-  , d' :: Char-  , _ :: Int-  , x :: Int-  , y :: Int-  , z :: Int-  , x' :: Int-  , y' :: Int-  , z' :: Int-  , x'' :: Int-  , _ :: [Int]-  , xs :: [Int]-  , ys :: [Int]-  , zs :: [Int]-  , xs' :: [Int]-  , ys' :: [Int]-  , f :: Int -> Int-  , g :: Int -> Int-  , h :: Int -> Int-  , False :: Bool-  , True :: Bool-  , ' ' :: Char-  , 'A' :: Char-  , 'a' :: Char-  , 'b' :: Char-  , 'c' :: Char-  , 0 :: Int-  , 1 :: Int-  , 2 :: Int-  , 3 :: Int-  , -1 :: Int-  , -2 :: Int-  , -3 :: Int-  , [] :: [Int]-  , [0] :: [Int]-  , [1] :: [Int]-  , [2] :: [Int]-  , [-1] :: [Int]-  , [0,0] :: [Int]-  , [0,1] :: [Int]-  , [1,0] :: [Int]-  , [1,1] :: [Int]-  , [-1,0] :: [Int]-  , [0,-1] :: [Int]-  , [0,0,0] :: [Int]-  , [0,0,1] :: [Int]-  , [0,1,0] :: [Int]-  , [1,0,0] :: [Int]-  , [0,0,0,0] :: [Int]-  , not :: Bool -> Bool-  , id :: Int -> Int-  , abs :: Int -> Int-  , negate :: Int -> Int-  , (&&) :: Bool -> Bool -> Bool-  , (||) :: Bool -> Bool -> Bool-  , (==>) :: Bool -> Bool -> Bool-  , (*) :: Int -> Int -> Int-  , (+) :: Int -> Int -> Int-  , f _ :: Int-  , f x :: Int-  , f y :: Int-  , f z :: Int-  , g _ :: Int-  , g x :: Int-  , g y :: Int-  , h _ :: Int-  , h x :: Int-  , f' _ :: Int-  , f 0 :: Int-  , f 1 :: Int-  , f (-1) :: Int-  , g 0 :: Int-  , g 1 :: Int-  , h 0 :: Int-  , not _ :: Bool-  , not p :: Bool-  , not q :: Bool-  , not r :: Bool-  , not p' :: Bool-  , ord _ :: Int-  , ord c :: Int-  , ord d :: Int-  , ord e :: Int-  , ord c' :: Int-  , odd _ :: Bool-  , odd x :: Bool-  , odd y :: Bool-  , even _ :: Bool-  , even x :: Bool-  , even y :: Bool-  , id _ :: Int-  , id x :: Int-  , id y :: Int-  , id z :: Int-  , id x' :: Int-  , id y' :: Int-  , id z' :: Int-  , abs _ :: Int-  , abs x :: Int-  , abs y :: Int-  , abs z :: Int-  , abs x' :: Int-  , negate _ :: Int-  , negate x :: Int-  , negate y :: Int-  , negate z :: Int-  , negate x' :: Int-  , head _ :: Int-  , head xs :: Int-  , head ys :: Int-  , head zs :: Int-  , head xs' :: Int-  , sort _ :: [Int]-  , sort xs :: [Int]-  , sort ys :: [Int]-  , tail _ :: [Int]-  , tail xs :: [Int]-  , tail ys :: [Int]-  , tail zs :: [Int]-  , (_ &&) :: Bool -> Bool-  , (p &&) :: Bool -> Bool-  , (_ ||) :: Bool -> Bool-  , (p ||) :: Bool -> Bool-  , (q ||) :: Bool -> Bool-  , (_ ==>) :: Bool -> Bool-  , (_ *) :: Int -> Int-  , (x *) :: Int -> Int-  , (y *) :: Int -> Int-  , (_ +) :: Int -> Int-  , (x +) :: Int -> Int-  , (y +) :: Int -> Int-  , (z +) :: Int -> Int-  , not False :: Bool-  , not True :: Bool-  , ord ' ' :: Int-  , ord 'A' :: Int-  , ord 'a' :: Int-  , ord 'b' :: Int-  , odd 0 :: Bool-  , odd 1 :: Bool-  , even 0 :: Bool-  , even 1 :: Bool-  , id 0 :: Int-  , id 1 :: Int-  , id 2 :: Int-  , id 3 :: Int-  , id (-1) :: Int-  , id (-2) :: Int-  , abs 0 :: Int-  , abs 1 :: Int-  , abs 2 :: Int-  , abs (-1) :: Int-  , negate 0 :: Int-  , negate 1 :: Int-  , negate 2 :: Int-  , negate (-1) :: Int-  , head [] :: Int-  , head [0] :: Int-  , head [1] :: Int-  , head [-1] :: Int-  , head [0,0] :: Int-  , head [0,1] :: Int-  , head [1,0] :: Int-  , head [0,0,0] :: Int-  , sort [] :: [Int]-  , sort [0] :: [Int]-  , tail [] :: [Int]-  , tail [0] :: [Int]-  , tail [1] :: [Int]-  , tail [0,0] :: [Int]-  , (False &&) :: Bool -> Bool-  , (True &&) :: Bool -> Bool-  , (False ||) :: Bool -> Bool-  , (True ||) :: Bool -> Bool-  , (0 *) :: Int -> Int-  , (1 *) :: Int -> Int-  , (0 +) :: Int -> Int-  , (1 +) :: Int -> Int-  , ((-1) +) :: Int -> Int-  , f (f _) :: Int-  , f (ord _) :: Int-  , f (ord c) :: Int-  , f (id _) :: Int-  , f (id x) :: Int-  , f (id y) :: Int-  , f (abs _) :: Int-  , f (abs x) :: Int-  , f (negate _) :: Int-  , f (negate x) :: Int-  , f (head _) :: Int-  , f (head xs) :: Int-  , g (ord _) :: Int-  , g (id _) :: Int-  , g (id x) :: Int-  , g (abs _) :: Int-  , g (negate _) :: Int-  , g (head _) :: Int-  , h (id _) :: Int-  , id (f _) :: Int-  , id (f x) :: Int-  , id (f y) :: Int-  , id (f z) :: Int-  , id (g _) :: Int-  , id (g x) :: Int-  , id (g y) :: Int-  , id (h _) :: Int-  , id (h x) :: Int-  , id (f' _) :: Int-  , abs (f _) :: Int-  , abs (f x) :: Int-  , abs (g _) :: Int-  , negate (f _) :: Int-  , negate (f x) :: Int-  , negate (g _) :: Int-  , (f _ +) :: Int -> Int-  , _ && p :: Bool-  , _ && q :: Bool-  , p && _ :: Bool-  , q && _ :: Bool-  , _ <= p :: Bool-  , p <= _ :: Bool-  , _ == p :: Bool-  , _ == q :: Bool-  , p == _ :: Bool-  , q == _ :: Bool-  , _ || p :: Bool-  , _ || q :: Bool-  , _ || r :: Bool-  , p || _ :: Bool-  , p || q :: Bool-  , q || _ :: Bool-  , q || p :: Bool-  , r || _ :: Bool-  , _ ==> p :: Bool-  , p ==> _ :: Bool-  , _ <= x :: Bool-  , x <= _ :: Bool-  , _ == x :: Bool-  , _ == y :: Bool-  , x == _ :: Bool-  , y == _ :: Bool-  , _ * x :: Int-  , _ * y :: Int-  , _ * z :: Int-  , x * _ :: Int-  , x * y :: Int-  , y * _ :: Int-  , y * x :: Int-  , z * _ :: Int-  , _ + x :: Int-  , _ + y :: Int-  , _ + z :: Int-  , _ + x' :: Int-  , x + _ :: Int-  , x + y :: Int-  , x + z :: Int-  , y + _ :: Int-  , y + x :: Int-  , z + _ :: Int-  , z + x :: Int-  , x' + _ :: Int-  , elem _ _ :: Bool-  , elem _ xs :: Bool-  , elem _ ys :: Bool-  , elem x _ :: Bool-  , elem x xs :: Bool-  , elem y _ :: Bool-  , _:_ :: [Int]-  , _:xs :: [Int]-  , _:ys :: [Int]-  , _:zs :: [Int]-  , _:xs' :: [Int]-  , x:_ :: [Int]-  , x:xs :: [Int]-  , x:ys :: [Int]-  , x:zs :: [Int]-  , y:_ :: [Int]-  , y:xs :: [Int]-  , y:ys :: [Int]-  , z:_ :: [Int]-  , z:xs :: [Int]-  , x':_ :: [Int]-  , insert _ _ :: [Int]-  , insert _ xs :: [Int]-  , insert _ ys :: [Int]-  , insert x _ :: [Int]-  , insert x xs :: [Int]-  , insert y _ :: [Int]-  , _ ++ xs :: [Int]-  , _ ++ ys :: [Int]-  , _ ++ zs :: [Int]-  , xs ++ _ :: [Int]-  , xs ++ ys :: [Int]-  , ys ++ _ :: [Int]-  , ys ++ xs :: [Int]-  , zs ++ _ :: [Int]-  , _ < _ :: Bool-  , _ && _ :: Bool-  , p && p :: Bool-  , _ <= _ :: Bool-  , _ == _ :: Bool-  , p == p :: Bool-  , _ || _ :: Bool-  , p || p :: Bool-  , _ ==> _ :: Bool-  , _ < _ :: Bool-  , _ <= _ :: Bool-  , _ == _ :: Bool-  , x == x :: Bool-  , _ * _ :: Int-  , x * x :: Int-  , _ + _ :: Int-  , x + x :: Int-  , y + y :: Int-  , _ ++ _ :: [Int]-  , xs ++ xs :: [Int]-  , not (not _) :: Bool-  , not (not p) :: Bool-  , not (not q) :: Bool-  , not (not r) :: Bool-  , id (id _) :: Int-  , id (id x) :: Int-  , id (id y) :: Int-  , id (id z) :: Int-  , id (id x') :: Int-  , id (id y') :: Int-  , abs (abs _) :: Int-  , abs (abs x) :: Int-  , abs (abs y) :: Int-  , negate (negate _) :: Int-  , negate (negate x) :: Int-  , negate (negate y) :: Int-  , tail (tail _) :: [Int]-  , tail (tail xs) :: [Int]-  , f (ord 'a') :: Int-  , f (id 0) :: Int-  , f (id 1) :: Int-  , f (abs 0) :: Int-  , f (negate 0) :: Int-  , f (head []) :: Int-  , g (id 0) :: Int-  , not (odd _) :: Bool-  , not (odd x) :: Bool-  , not (even _) :: Bool-  , not (even x) :: Bool-  , odd (ord _) :: Bool-  , odd (id _) :: Bool-  , odd (id x) :: Bool-  , odd (abs _) :: Bool-  , odd (negate _) :: Bool-  , odd (head _) :: Bool-  , even (ord _) :: Bool-  , even (id _) :: Bool-  , even (id x) :: Bool-  , even (abs _) :: Bool-  , even (negate _) :: Bool-  , even (head _) :: Bool-  , id (f 0) :: Int-  , id (f 1) :: Int-  , id (f (-1)) :: Int-  , id (g 0) :: Int-  , id (g 1) :: Int-  , id (h 0) :: Int-  , id (ord _) :: Int-  , id (ord c) :: Int-  , id (ord d) :: Int-  , id (ord e) :: Int-  , id (abs _) :: Int-  , id (abs x) :: Int-  , id (abs y) :: Int-  , id (abs z) :: Int-  , id (abs x') :: Int-  , id (negate _) :: Int-  , id (negate x) :: Int-  , id (negate y) :: Int-  , id (negate z) :: Int-  , id (negate x') :: Int-  , id (head _) :: Int-  , id (head xs) :: Int-  , id (head ys) :: Int-  , id (head zs) :: Int-  , id (head xs') :: Int-  , abs (f 0) :: Int-  , abs (ord _) :: Int-  , abs (ord c) :: Int-  , abs (ord d) :: Int-  , abs (id _) :: Int-  , abs (id x) :: Int-  , abs (id y) :: Int-  , abs (id z) :: Int-  , abs (negate _) :: Int-  , abs (negate x) :: Int-  , abs (negate y) :: Int-  , abs (head _) :: Int-  , abs (head xs) :: Int-  , abs (head ys) :: Int-  , negate (f 0) :: Int-  , negate (ord _) :: Int-  , negate (ord c) :: Int-  , negate (ord d) :: Int-  , negate (id _) :: Int-  , negate (id x) :: Int-  , negate (id y) :: Int-  , negate (id z) :: Int-  , negate (abs _) :: Int-  , negate (abs x) :: Int-  , negate (abs y) :: Int-  , negate (head _) :: Int-  , negate (head xs) :: Int-  , negate (head ys) :: Int-  , head (sort _) :: Int-  , head (sort xs) :: Int-  , head (tail _) :: Int-  , head (tail xs) :: Int-  , head (tail ys) :: Int-  , sort (tail _) :: [Int]-  , tail (sort _) :: [Int]-  , (not _ &&) :: Bool -> Bool-  , (not _ ||) :: Bool -> Bool-  , (not p ||) :: Bool -> Bool-  , (ord _ *) :: Int -> Int-  , (id _ *) :: Int -> Int-  , (id x *) :: Int -> Int-  , (abs _ *) :: Int -> Int-  , (negate _ *) :: Int -> Int-  , (head _ *) :: Int -> Int-  , (ord _ +) :: Int -> Int-  , (ord c +) :: Int -> Int-  , (id _ +) :: Int -> Int-  , (id x +) :: Int -> Int-  , (id y +) :: Int -> Int-  , (abs _ +) :: Int -> Int-  , (abs x +) :: Int -> Int-  , (negate _ +) :: Int -> Int-  , (negate x +) :: Int -> Int-  , (head _ +) :: Int -> Int-  , (head xs +) :: Int -> Int-  , _ && False :: Bool-  , _ && True :: Bool-  , p && False :: Bool-  , p && True :: Bool-  , False && _ :: Bool-  , False && p :: Bool-  , True && _ :: Bool-  , True && p :: Bool-  , _ <= False :: Bool-  , _ <= True :: Bool-  , False <= _ :: Bool-  , True <= _ :: Bool-  , _ == False :: Bool-  , _ == True :: Bool-  , p == False :: Bool-  , p == True :: Bool-  , False == _ :: Bool-  , False == p :: Bool-  , True == _ :: Bool-  , True == p :: Bool-  , _ || False :: Bool-  , _ || True :: Bool-  , p || False :: Bool-  , p || True :: Bool-  , q || False :: Bool-  , q || True :: Bool-  , False || _ :: Bool-  , False || p :: Bool-  , False || q :: Bool-  , True || _ :: Bool-  , True || p :: Bool-  , True || q :: Bool-  , _ ==> False :: Bool-  , _ ==> True :: Bool-  , False ==> _ :: Bool-  , True ==> _ :: Bool-  , _ <= 0 :: Bool-  , 0 <= _ :: Bool-  , _ == 0 :: Bool-  , _ == 1 :: Bool-  , x == 0 :: Bool-  , 0 == _ :: Bool-  , 0 == x :: Bool-  , 1 == _ :: Bool-  , _ * 0 :: Int-  , _ * 1 :: Int-  , _ * (-1) :: Int-  , x * 0 :: Int-  , x * 1 :: Int-  , y * 0 :: Int-  , 0 * _ :: Int-  , 0 * x :: Int-  , 0 * y :: Int-  , 1 * _ :: Int-  , 1 * x :: Int-  , (-1) * _ :: Int-  , _ + 0 :: Int-  , _ + 1 :: Int-  , _ + 2 :: Int-  , _ + (-1) :: Int-  , x + 0 :: Int-  , x + 1 :: Int-  , x + (-1) :: Int-  , y + 0 :: Int-  , y + 1 :: Int-  , z + 0 :: Int-  , 0 + _ :: Int-  , 0 + x :: Int-  , 0 + y :: Int-  , 0 + z :: Int-  , 1 + _ :: Int-  , 1 + x :: Int-  , 1 + y :: Int-  , 2 + _ :: Int-  , (-1) + _ :: Int-  , (-1) + x :: Int-  , elem _ [] :: Bool-  , elem _ [0] :: Bool-  , elem x [] :: Bool-  , elem 0 _ :: Bool-  , elem 0 xs :: Bool-  , elem 1 _ :: Bool-  , [_] :: [Int]-  , [_,0] :: [Int]-  , [_,1] :: [Int]-  , [_,-1] :: [Int]-  , [_,0,0] :: [Int]-  , [_,0,1] :: [Int]-  , [_,1,0] :: [Int]-  , [_,0,0,0] :: [Int]-  , [x] :: [Int]-  , [x,0] :: [Int]-  , [x,1] :: [Int]-  , [x,0,0] :: [Int]-  , [y] :: [Int]-  , [y,0] :: [Int]-  , [z] :: [Int]-  , 0:_ :: [Int]-  , 0:xs :: [Int]-  , 0:ys :: [Int]-  , 0:zs :: [Int]-  , 1:_ :: [Int]-  , 1:xs :: [Int]-  , 1:ys :: [Int]-  , 2:_ :: [Int]-  , (-1):_ :: [Int]-  , (-1):xs :: [Int]-  , insert _ [] :: [Int]-  , insert _ [0] :: [Int]-  , insert x [] :: [Int]-  , insert 0 _ :: [Int]-  , insert 0 xs :: [Int]-  , insert 1 _ :: [Int]-  , _ ++ [] :: [Int]-  , _ ++ [0] :: [Int]-  , _ ++ [1] :: [Int]-  , _ ++ [0,0] :: [Int]-  , xs ++ [] :: [Int]-  , xs ++ [0] :: [Int]-  , ys ++ [] :: [Int]-  , [] ++ _ :: [Int]-  , [] ++ xs :: [Int]-  , [] ++ ys :: [Int]-  , [0] ++ _ :: [Int]-  , [0] ++ xs :: [Int]-  , [1] ++ _ :: [Int]-  , [0,0] ++ _ :: [Int]-  , not (not False) :: Bool-  , not (not True) :: Bool-  , id (id 0) :: Int-  , id (id 1) :: Int-  , id (id 2) :: Int-  , id (id (-1)) :: Int-  , id (id (-2)) :: Int-  , abs (abs 0) :: Int-  , abs (abs 1) :: Int-  , negate (negate 0) :: Int-  , negate (negate 1) :: Int-  , tail (tail []) :: [Int]-  , False && False :: Bool-  , True && True :: Bool-  , False == False :: Bool-  , True == True :: Bool-  , False || False :: Bool-  , True || True :: Bool-  , 0 == 0 :: Bool-  , 0 * 0 :: Int-  , 0 + 0 :: Int-  , 1 + 1 :: Int-  , [] ++ [] :: [Int]-  , not (odd 0) :: Bool-  , not (even 0) :: Bool-  , odd (id 0) :: Bool-  , even (id 0) :: Bool-  , id (ord ' ') :: Int-  , id (ord 'a') :: Int-  , id (ord 'b') :: Int-  , id (abs 0) :: Int-  , id (abs 1) :: Int-  , id (abs 2) :: Int-  , id (abs (-1)) :: Int-  , id (negate 0) :: Int-  , id (negate 1) :: Int-  , id (negate 2) :: Int-  , id (negate (-1)) :: Int-  , id (head []) :: Int-  , id (head [0]) :: Int-  , id (head [1]) :: Int-  , id (head [-1]) :: Int-  , id (head [0,0]) :: Int-  , id (head [0,1]) :: Int-  , id (head [1,0]) :: Int-  , id (head [0,0,0]) :: Int-  , abs (ord ' ') :: Int-  , abs (ord 'a') :: Int-  , abs (id 0) :: Int-  , abs (id 1) :: Int-  , abs (id (-1)) :: Int-  , abs (negate 0) :: Int-  , abs (negate 1) :: Int-  , abs (head []) :: Int-  , abs (head [0]) :: Int-  , negate (ord ' ') :: Int-  , negate (ord 'a') :: Int-  , negate (id 0) :: Int-  , negate (id 1) :: Int-  , negate (id (-1)) :: Int-  , negate (abs 0) :: Int-  , negate (abs 1) :: Int-  , negate (head []) :: Int-  , negate (head [0]) :: Int-  , head (sort []) :: Int-  , head (tail []) :: Int-  , head (tail [0]) :: Int-  , (not False ||) :: Bool -> Bool-  , (not True ||) :: Bool -> Bool-  , (id 0 *) :: Int -> Int-  , (ord 'a' +) :: Int -> Int-  , (id 0 +) :: Int -> Int-  , (id 1 +) :: Int -> Int-  , (abs 0 +) :: Int -> Int-  , (negate 0 +) :: Int -> Int-  , (head [] +) :: Int -> Int-  , False && True :: Bool-  , True && False :: Bool-  , False == True :: Bool-  , True == False :: Bool-  , False || True :: Bool-  , True || False :: Bool-  , 0 * 1 :: Int-  , 1 * 0 :: Int-  , 0 + 1 :: Int-  , 0 + (-1) :: Int-  , 1 + 0 :: Int-  , (-1) + 0 :: Int-  , elem 0 [] :: Bool-  , [0] :: [Int]-  , [0,0] :: [Int]-  , [0,1] :: [Int]-  , [0,0,0] :: [Int]-  , [1] :: [Int]-  , [1,0] :: [Int]-  , [-1] :: [Int]-  , insert 0 [] :: [Int]-  , [] ++ [0] :: [Int]-  , [0] ++ [] :: [Int]-  , f (_ + x) :: Int-  , f (x + _) :: Int-  , _ + f x :: Int-  , x + f _ :: Int-  , f _ + x :: Int-  , f x + _ :: Int-  , f _:_ :: [Int]-  , f _:xs :: [Int]-  , f x:_ :: [Int]-  , g _:_ :: [Int]-  , f (_ * _) :: Int-  , f (_ + _) :: Int-  , g (_ + _) :: Int-  , id (f (f _)) :: Int-  , _ * f _ :: Int-  , f _ * _ :: Int-  , _ + f _ :: Int-  , _ + g _ :: Int-  , f _ + _ :: Int-  , g _ + _ :: Int-  , f (id (id _)) :: Int-  , f (id (id x)) :: Int-  , g (id (id _)) :: Int-  , id (f (id _)) :: Int-  , id (f (id x)) :: Int-  , id (f (id y)) :: Int-  , id (g (id _)) :: Int-  , id (g (id x)) :: Int-  , id (h (id _)) :: Int-  , id (id (f _)) :: Int-  , id (id (f x)) :: Int-  , id (id (f y)) :: Int-  , id (id (g _)) :: Int-  , id (id (g x)) :: Int-  , id (id (h _)) :: Int-  , ((_ + x) +) :: Int -> Int-  , ((x + _) +) :: Int -> Int-  , f (id (ord _)) :: Int-  , f (id (abs _)) :: Int-  , f (id (negate _)) :: Int-  , f (id (head _)) :: Int-  , f (abs (id _)) :: Int-  , f (negate (id _)) :: Int-  , f (_ + 0) :: Int-  , f (0 + _) :: Int-  , not (_ && p) :: Bool-  , not (p && _) :: Bool-  , not (_ == p) :: Bool-  , not (p == _) :: Bool-  , not (_ || p) :: Bool-  , not (_ || q) :: Bool-  , not (p || _) :: Bool-  , not (q || _) :: Bool-  , not (_ == x) :: Bool-  , not (x == _) :: Bool-  , not (elem _ _) :: Bool-  , not (elem _ xs) :: Bool-  , not (elem x _) :: Bool-  , id (f (ord _)) :: Int-  , id (f (ord c)) :: Int-  , id (f (abs _)) :: Int-  , id (f (abs x)) :: Int-  , id (f (negate _)) :: Int-  , id (f (negate x)) :: Int-  , id (f (head _)) :: Int-  , id (f (head xs)) :: Int-  , id (g (ord _)) :: Int-  , id (g (abs _)) :: Int-  , id (g (negate _)) :: Int-  , id (g (head _)) :: Int-  , id (abs (f _)) :: Int-  , id (abs (f x)) :: Int-  , id (abs (g _)) :: Int-  , id (negate (f _)) :: Int-  , id (negate (f x)) :: Int-  , id (negate (g _)) :: Int-  , id (_ * x) :: Int-  , id (_ * y) :: Int-  , id (_ * z) :: Int-  , id (x * _) :: Int-  , id (x * y) :: Int-  , id (y * _) :: Int-  , id (y * x) :: Int-  , id (z * _) :: Int-  , id (_ + x) :: Int-  , id (_ + y) :: Int-  , id (_ + z) :: Int-  , id (_ + x') :: Int-  , id (x + _) :: Int-  , id (x + y) :: Int-  , id (x + z) :: Int-  , id (y + _) :: Int-  , id (y + x) :: Int-  , id (z + _) :: Int-  , id (z + x) :: Int-  , id (x' + _) :: Int-  , abs (f (id _)) :: Int-  , abs (id (f _)) :: Int-  , abs (_ * x) :: Int-  , abs (x * _) :: Int-  , abs (_ + x) :: Int-  , abs (_ + y) :: Int-  , abs (x + _) :: Int-  , abs (y + _) :: Int-  , negate (f (id _)) :: Int-  , negate (id (f _)) :: Int-  , negate (_ * x) :: Int-  , negate (x * _) :: Int-  , negate (_ + x) :: Int-  , negate (_ + y) :: Int-  , negate (x + _) :: Int-  , negate (y + _) :: Int-  , head (_:_) :: Int-  , head (_:xs) :: Int-  , head (_:ys) :: Int-  , head (_:zs) :: Int-  , head (x:_) :: Int-  , head (x:xs) :: Int-  , head (x:ys) :: Int-  , head (y:_) :: Int-  , head (y:xs) :: Int-  , head (z:_) :: Int-  , head (insert _ _) :: Int-  , head (insert _ xs) :: Int-  , head (insert x _) :: Int-  , head (_ ++ xs) :: Int-  , head (_ ++ ys) :: Int-  , head (xs ++ _) :: Int-  , head (ys ++ _) :: Int-  , sort (_:_) :: [Int]-  , sort (_:xs) :: [Int]-  , sort (x:_) :: [Int]-  , tail (_:_) :: [Int]-  , tail (_:xs) :: [Int]-  , tail (_:ys) :: [Int]-  , tail (x:_) :: [Int]-  , tail (x:xs) :: [Int]-  , tail (y:_) :: [Int]-  , tail (insert _ _) :: [Int]-  , tail (_ ++ xs) :: [Int]-  , tail (xs ++ _) :: [Int]-  , _ && not p :: Bool-  , p && not _ :: Bool-  , not _ && p :: Bool-  , not p && _ :: Bool-  , _ == not p :: Bool-  , p == not _ :: Bool-  , not _ == p :: Bool-  , not p == _ :: Bool-  , _ || not p :: Bool-  , _ || not q :: Bool-  , _ || odd _ :: Bool-  , _ || even _ :: Bool-  , p || not _ :: Bool-  , q || not _ :: Bool-  , not _ || p :: Bool-  , not _ || q :: Bool-  , not p || _ :: Bool-  , not q || _ :: Bool-  , odd _ || _ :: Bool-  , even _ || _ :: Bool-  , _ == ord _ :: Bool-  , _ == id x :: Bool-  , _ == head _ :: Bool-  , x == id _ :: Bool-  , ord _ == _ :: Bool-  , id _ == x :: Bool-  , id x == _ :: Bool-  , head _ == _ :: Bool-  , _ * ord _ :: Int-  , _ * ord c :: Int-  , _ * id x :: Int-  , _ * id y :: Int-  , _ * abs x :: Int-  , _ * negate x :: Int-  , _ * head _ :: Int-  , _ * head xs :: Int-  , x * ord _ :: Int-  , x * id _ :: Int-  , x * abs _ :: Int-  , x * negate _ :: Int-  , x * head _ :: Int-  , y * id _ :: Int-  , ord _ * _ :: Int-  , ord _ * x :: Int-  , ord c * _ :: Int-  , id _ * x :: Int-  , id _ * y :: Int-  , id x * _ :: Int-  , id y * _ :: Int-  , abs _ * x :: Int-  , abs x * _ :: Int-  , negate _ * x :: Int-  , negate x * _ :: Int-  , head _ * _ :: Int-  , head _ * x :: Int-  , head xs * _ :: Int-  , _ + f 0 :: Int-  , _ + ord _ :: Int-  , _ + ord c :: Int-  , _ + ord d :: Int-  , _ + id x :: Int-  , _ + id y :: Int-  , _ + id z :: Int-  , _ + abs x :: Int-  , _ + abs y :: Int-  , _ + negate x :: Int-  , _ + negate y :: Int-  , _ + head _ :: Int-  , _ + head xs :: Int-  , _ + head ys :: Int-  , x + ord _ :: Int-  , x + ord c :: Int-  , x + id _ :: Int-  , x + id y :: Int-  , x + abs _ :: Int-  , x + negate _ :: Int-  , x + head _ :: Int-  , x + head xs :: Int-  , y + ord _ :: Int-  , y + id _ :: Int-  , y + id x :: Int-  , y + abs _ :: Int-  , y + negate _ :: Int-  , y + head _ :: Int-  , z + id _ :: Int-  , 0 + f _ :: Int-  , f _ + 0 :: Int-  , f 0 + _ :: Int-  , ord _ + _ :: Int-  , ord _ + x :: Int-  , ord _ + y :: Int-  , ord c + _ :: Int-  , ord c + x :: Int-  , ord d + _ :: Int-  , id _ + x :: Int-  , id _ + y :: Int-  , id _ + z :: Int-  , id x + _ :: Int-  , id x + y :: Int-  , id y + _ :: Int-  , id y + x :: Int-  , id z + _ :: Int-  , abs _ + x :: Int-  , abs _ + y :: Int-  , abs x + _ :: Int-  , abs y + _ :: Int-  , negate _ + x :: Int-  , negate _ + y :: Int-  , negate x + _ :: Int-  , negate y + _ :: Int-  , head _ + _ :: Int-  , head _ + x :: Int-  , head _ + y :: Int-  , head xs + _ :: Int-  , head xs + x :: Int-  , head ys + _ :: Int-  , elem _ (tail _) :: Bool-  , elem (ord _) _ :: Bool-  , elem (id _) _ :: Bool-  , elem (id _) xs :: Bool-  , elem (id x) _ :: Bool-  , elem (abs _) _ :: Bool-  , elem (negate _) _ :: Bool-  , _:sort _ :: [Int]-  , _:sort xs :: [Int]-  , _:tail _ :: [Int]-  , _:tail xs :: [Int]-  , _:tail ys :: [Int]-  , x:sort _ :: [Int]-  , x:tail _ :: [Int]-  , x:tail xs :: [Int]-  , y:tail _ :: [Int]-  , [f _] :: [Int]-  , f 0:_ :: [Int]-  , ord _:_ :: [Int]-  , ord _:xs :: [Int]-  , ord _:ys :: [Int]-  , ord c:_ :: [Int]-  , ord c:xs :: [Int]-  , ord d:_ :: [Int]-  , id _:_ :: [Int]-  , id _:xs :: [Int]-  , id _:ys :: [Int]-  , id _:zs :: [Int]-  , id x:_ :: [Int]-  , id x:xs :: [Int]-  , id x:ys :: [Int]-  , id y:_ :: [Int]-  , id y:xs :: [Int]-  , id z:_ :: [Int]-  , abs _:_ :: [Int]-  , abs _:xs :: [Int]-  , abs _:ys :: [Int]-  , abs x:_ :: [Int]-  , abs x:xs :: [Int]-  , abs y:_ :: [Int]-  , negate _:_ :: [Int]-  , negate _:xs :: [Int]-  , negate _:ys :: [Int]-  , negate x:_ :: [Int]-  , negate x:xs :: [Int]-  , negate y:_ :: [Int]-  , head _:xs :: [Int]-  , head _:ys :: [Int]-  , head xs:_ :: [Int]-  , head ys:_ :: [Int]-  , insert _ (tail _) :: [Int]-  , insert (ord _) _ :: [Int]-  , insert (id _) _ :: [Int]-  , insert (id _) xs :: [Int]-  , insert (id x) _ :: [Int]-  , insert (abs _) _ :: [Int]-  , insert (negate _) _ :: [Int]-  , _ ++ tail xs :: [Int]-  , xs ++ tail _ :: [Int]-  , tail _ ++ xs :: [Int]-  , tail xs ++ _ :: [Int]-  , ((_ || _) ||) :: Bool -> Bool-  , ((_ + _) +) :: Int -> Int-  , not (_ && _) :: Bool-  , not (_ <= _) :: Bool-  , not (_ == _) :: Bool-  , not (_ || _) :: Bool-  , not (p || p) :: Bool-  , not (_ ==> _) :: Bool-  , not (_ <= _) :: Bool-  , not (_ == _) :: Bool-  , odd (_ + _) :: Bool-  , even (_ + _) :: Bool-  , id (_ * _) :: Int-  , id (x * x) :: Int-  , id (_ + _) :: Int-  , id (x + x) :: Int-  , id (y + y) :: Int-  , abs (_ * _) :: Int-  , abs (_ + _) :: Int-  , abs (x + x) :: Int-  , negate (_ * _) :: Int-  , negate (_ + _) :: Int-  , negate (x + x) :: Int-  , head (_ ++ _) :: Int-  , head (xs ++ xs) :: Int-  , sort (_ ++ _) :: [Int]-  , tail (_ ++ _) :: [Int]-  , ((_ + _) *) :: Int -> Int-  , (_ * _ +) :: Int -> Int-  , _ && not _ :: Bool-  , not _ && _ :: Bool-  , _ <= not _ :: Bool-  , not _ <= _ :: Bool-  , _ == not _ :: Bool-  , not _ == _ :: Bool-  , _ || not _ :: Bool-  , p || not p :: Bool-  , not _ || _ :: Bool-  , not p || p :: Bool-  , _ ==> not _ :: Bool-  , not _ ==> _ :: Bool-  , _ <= id _ :: Bool-  , id _ <= _ :: Bool-  , _ == id _ :: Bool-  , _ == abs _ :: Bool-  , _ == negate _ :: Bool-  , id _ == _ :: Bool-  , abs _ == _ :: Bool-  , negate _ == _ :: Bool-  , _ * id _ :: Int-  , _ * abs _ :: Int-  , _ * negate _ :: Int-  , x * id x :: Int-  , id _ * _ :: Int-  , id x * x :: Int-  , abs _ * _ :: Int-  , negate _ * _ :: Int-  , _ + id _ :: Int-  , _ + abs _ :: Int-  , _ + negate _ :: Int-  , x + id x :: Int-  , x + abs x :: Int-  , x + negate x :: Int-  , id _ + _ :: Int-  , id x + x :: Int-  , abs _ + _ :: Int-  , abs x + x :: Int-  , negate _ + _ :: Int-  , negate x + x :: Int-  , elem (head _) _ :: Bool-  , head _:_ :: [Int]-  , head xs:xs :: [Int]-  , insert (head _) _ :: [Int]-  , _ ++ sort _ :: [Int]-  , _ ++ tail _ :: [Int]-  , sort _ ++ _ :: [Int]-  , tail _ ++ _ :: [Int]-  , not (not (not _)) :: Bool-  , not (not (not p)) :: Bool-  , not (not (not q)) :: Bool-  , id (id (id _)) :: Int-  , id (id (id x)) :: Int-  , id (id (id y)) :: Int-  , id (id (id z)) :: Int-  , id (id (id x')) :: Int-  , abs (abs (abs _)) :: Int-  , negate (negate (negate _)) :: Int-  , f (id (id 0)) :: Int-  , not (not (odd _)) :: Bool-  , not (not (even _)) :: Bool-  , odd (id (id _)) :: Bool-  , even (id (id _)) :: Bool-  , id (f (id 0)) :: Int-  , id (f (id 1)) :: Int-  , id (g (id 0)) :: Int-  , id (id (f 0)) :: Int-  , id (id (f 1)) :: Int-  , id (id (g 0)) :: Int-  , id (id (ord _)) :: Int-  , id (id (ord c)) :: Int-  , id (id (ord d)) :: Int-  , id (id (ord e)) :: Int-  , id (id (abs _)) :: Int-  , id (id (abs x)) :: Int-  , id (id (abs y)) :: Int-  , id (id (abs z)) :: Int-  , id (id (negate _)) :: Int-  , id (id (negate x)) :: Int-  , id (id (negate y)) :: Int-  , id (id (negate z)) :: Int-  , id (id (head _)) :: Int-  , id (id (head xs)) :: Int-  , id (id (head ys)) :: Int-  , id (id (head zs)) :: Int-  , id (abs (id _)) :: Int-  , id (abs (id x)) :: Int-  , id (abs (id y)) :: Int-  , id (abs (id z)) :: Int-  , id (abs (abs _)) :: Int-  , id (abs (abs x)) :: Int-  , id (abs (abs y)) :: Int-  , id (negate (id _)) :: Int-  , id (negate (id x)) :: Int-  , id (negate (id y)) :: Int-  , id (negate (id z)) :: Int-  , id (negate (negate _)) :: Int-  , id (negate (negate x)) :: Int-  , id (negate (negate y)) :: Int-  , abs (id (id _)) :: Int-  , abs (id (id x)) :: Int-  , abs (id (id y)) :: Int-  , abs (id (abs _)) :: Int-  , abs (id (abs x)) :: Int-  , abs (abs (ord _)) :: Int-  , abs (abs (id _)) :: Int-  , abs (abs (id x)) :: Int-  , abs (abs (negate _)) :: Int-  , abs (abs (head _)) :: Int-  , abs (negate (abs _)) :: Int-  , abs (negate (negate _)) :: Int-  , negate (id (id _)) :: Int-  , negate (id (id x)) :: Int-  , negate (id (id y)) :: Int-  , negate (id (negate _)) :: Int-  , negate (id (negate x)) :: Int-  , negate (abs (abs _)) :: Int-  , negate (abs (negate _)) :: Int-  , negate (negate (ord _)) :: Int-  , negate (negate (id _)) :: Int-  , negate (negate (id x)) :: Int-  , negate (negate (abs _)) :: Int-  , negate (negate (head _)) :: Int-  , head (tail (tail _)) :: Int-  , (not (not _) ||) :: Bool -> Bool-  , (id (id _) *) :: Int -> Int-  , (id (id _) +) :: Int -> Int-  , (id (id x) +) :: Int -> Int-  , ((_ + 0) +) :: Int -> Int-  , ((0 + _) +) :: Int -> Int-  , not (odd (id _)) :: Bool-  , not (even (id _)) :: Bool-  , not (_ && False) :: Bool-  , not (_ && True) :: Bool-  , not (False && _) :: Bool-  , not (True && _) :: Bool-  , not (_ == False) :: Bool-  , not (_ == True) :: Bool-  , not (False == _) :: Bool-  , not (True == _) :: Bool-  , not (_ || False) :: Bool-  , not (_ || True) :: Bool-  , not (p || False) :: Bool-  , not (p || True) :: Bool-  , not (False || _) :: Bool-  , not (False || p) :: Bool-  , not (True || _) :: Bool-  , not (True || p) :: Bool-  , not (_ == 0) :: Bool-  , not (0 == _) :: Bool-  , not (elem _ []) :: Bool-  , not (elem 0 _) :: Bool-  , id (f (ord 'a')) :: Int-  , id (f (abs 0)) :: Int-  , id (f (negate 0)) :: Int-  , id (f (head [])) :: Int-  , id (abs (f 0)) :: Int-  , id (abs (ord _)) :: Int-  , id (abs (ord c)) :: Int-  , id (abs (ord d)) :: Int-  , id (abs (negate _)) :: Int-  , id (abs (negate x)) :: Int-  , id (abs (negate y)) :: Int-  , id (abs (head _)) :: Int-  , id (abs (head xs)) :: Int-  , id (abs (head ys)) :: Int-  , id (negate (f 0)) :: Int-  , id (negate (ord _)) :: Int-  , id (negate (ord c)) :: Int-  , id (negate (ord d)) :: Int-  , id (negate (abs _)) :: Int-  , id (negate (abs x)) :: Int-  , id (negate (abs y)) :: Int-  , id (negate (head _)) :: Int-  , id (negate (head xs)) :: Int-  , id (negate (head ys)) :: Int-  , id (head (sort _)) :: Int-  , id (head (tail _)) :: Int-  , id (head (tail xs)) :: Int-  , id (head (tail ys)) :: Int-  , id (_ * 0) :: Int-  , id (_ * 1) :: Int-  , id (_ * (-1)) :: Int-  , id (x * 0) :: Int-  , id (x * 1) :: Int-  , id (y * 0) :: Int-  , id (0 * _) :: Int-  , id (0 * x) :: Int-  , id (0 * y) :: Int-  , id (1 * _) :: Int-  , id (1 * x) :: Int-  , id ((-1) * _) :: Int-  , id (_ + 0) :: Int-  , id (_ + 1) :: Int-  , id (_ + 2) :: Int-  , id (_ + (-1)) :: Int-  , id (x + 0) :: Int-  , id (x + 1) :: Int-  , id (x + (-1)) :: Int-  , id (y + 0) :: Int-  , id (y + 1) :: Int-  , id (z + 0) :: Int-  , id (0 + _) :: Int-  , id (0 + x) :: Int-  , id (0 + y) :: Int-  , id (0 + z) :: Int-  , id (1 + _) :: Int-  , id (1 + x) :: Int-  , id (1 + y) :: Int-  , id (2 + _) :: Int-  , id ((-1) + _) :: Int-  , id ((-1) + x) :: Int-  , abs (id (ord _)) :: Int-  , abs (id (ord c)) :: Int-  , abs (id (negate _)) :: Int-  , abs (id (negate x)) :: Int-  , abs (id (head _)) :: Int-  , abs (id (head xs)) :: Int-  , abs (negate (ord _)) :: Int-  , abs (negate (id _)) :: Int-  , abs (negate (id x)) :: Int-  , abs (negate (head _)) :: Int-  , abs (head (tail _)) :: Int-  , abs (_ * 0) :: Int-  , abs (0 * _) :: Int-  , abs (_ + 0) :: Int-  , abs (_ + 1) :: Int-  , abs (x + 0) :: Int-  , abs (0 + _) :: Int-  , abs (0 + x) :: Int-  , abs (1 + _) :: Int-  , negate (id (ord _)) :: Int-  , negate (id (ord c)) :: Int-  , negate (id (abs _)) :: Int-  , negate (id (abs x)) :: Int-  , negate (id (head _)) :: Int-  , negate (id (head xs)) :: Int-  , negate (abs (ord _)) :: Int-  , negate (abs (id _)) :: Int-  , negate (abs (id x)) :: Int-  , negate (abs (head _)) :: Int-  , negate (head (tail _)) :: Int-  , negate (_ * 0) :: Int-  , negate (0 * _) :: Int-  , negate (_ + 0) :: Int-  , negate (_ + 1) :: Int-  , negate (x + 0) :: Int-  , negate (0 + _) :: Int-  , negate (0 + x) :: Int-  , negate (1 + _) :: Int-  , head [_] :: Int-  , head [_,0] :: Int-  , head [_,1] :: Int-  , head [_,0,0] :: Int-  , head [x] :: Int-  , head [x,0] :: Int-  , head [y] :: Int-  , head (0:_) :: Int-  , head (0:xs) :: Int-  , head (0:ys) :: Int-  , head (1:_) :: Int-  , head (1:xs) :: Int-  , head ((-1):_) :: Int-  , head (insert _ []) :: Int-  , head (insert 0 _) :: Int-  , head (_ ++ []) :: Int-  , head (_ ++ [0]) :: Int-  , head (xs ++ []) :: Int-  , head ([] ++ _) :: Int-  , head ([] ++ xs) :: Int-  , head ([0] ++ _) :: Int-  , sort [_] :: [Int]-  , sort (0:_) :: [Int]-  , tail [_] :: [Int]-  , tail [_,0] :: [Int]-  , tail [x] :: [Int]-  , tail (0:_) :: [Int]-  , tail (0:xs) :: [Int]-  , tail (1:_) :: [Int]-  , tail (_ ++ []) :: [Int]-  , tail ([] ++ _) :: [Int]-  , (id (ord _) +) :: Int -> Int-  , (id (abs _) +) :: Int -> Int-  , (id (negate _) +) :: Int -> Int-  , (id (head _) +) :: Int -> Int-  , (abs (id _) +) :: Int -> Int-  , (negate (id _) +) :: Int -> Int-  , _ && not False :: Bool-  , _ && not True :: Bool-  , False && not _ :: Bool-  , True && not _ :: Bool-  , not _ && False :: Bool-  , not _ && True :: Bool-  , not False && _ :: Bool-  , not True && _ :: Bool-  , _ == not False :: Bool-  , _ == not True :: Bool-  , False == not _ :: Bool-  , True == not _ :: Bool-  , not _ == False :: Bool-  , not _ == True :: Bool-  , not False == _ :: Bool-  , not True == _ :: Bool-  , _ || not False :: Bool-  , _ || not True :: Bool-  , p || not False :: Bool-  , p || not True :: Bool-  , False || not _ :: Bool-  , False || not p :: Bool-  , True || not _ :: Bool-  , True || not p :: Bool-  , not _ || False :: Bool-  , not _ || True :: Bool-  , not p || False :: Bool-  , not p || True :: Bool-  , not False || _ :: Bool-  , not False || p :: Bool-  , not True || _ :: Bool-  , not True || p :: Bool-  , _ == id 0 :: Bool-  , 0 == id _ :: Bool-  , id _ == 0 :: Bool-  , id 0 == _ :: Bool-  , _ * ord 'a' :: Int-  , _ * id 0 :: Int-  , _ * id 1 :: Int-  , _ * abs 0 :: Int-  , _ * negate 0 :: Int-  , _ * head [] :: Int-  , x * id 0 :: Int-  , 0 * ord _ :: Int-  , 0 * id _ :: Int-  , 0 * id x :: Int-  , 0 * abs _ :: Int-  , 0 * negate _ :: Int-  , 0 * head _ :: Int-  , 1 * id _ :: Int-  , ord _ * 0 :: Int-  , ord 'a' * _ :: Int-  , id _ * 0 :: Int-  , id _ * 1 :: Int-  , id x * 0 :: Int-  , id 0 * _ :: Int-  , id 0 * x :: Int-  , id 1 * _ :: Int-  , abs _ * 0 :: Int-  , abs 0 * _ :: Int-  , negate _ * 0 :: Int-  , negate 0 * _ :: Int-  , head _ * 0 :: Int-  , head [] * _ :: Int-  , _ + ord ' ' :: Int-  , _ + ord 'a' :: Int-  , _ + id 0 :: Int-  , _ + id 1 :: Int-  , _ + id (-1) :: Int-  , _ + abs 0 :: Int-  , _ + abs 1 :: Int-  , _ + negate 0 :: Int-  , _ + negate 1 :: Int-  , _ + head [] :: Int-  , _ + head [0] :: Int-  , x + ord 'a' :: Int-  , x + id 0 :: Int-  , x + id 1 :: Int-  , x + abs 0 :: Int-  , x + negate 0 :: Int-  , x + head [] :: Int-  , y + id 0 :: Int-  , 0 + ord _ :: Int-  , 0 + ord c :: Int-  , 0 + id _ :: Int-  , 0 + id x :: Int-  , 0 + id y :: Int-  , 0 + abs _ :: Int-  , 0 + abs x :: Int-  , 0 + negate _ :: Int-  , 0 + negate x :: Int-  , 0 + head _ :: Int-  , 0 + head xs :: Int-  , 1 + ord _ :: Int-  , 1 + id _ :: Int-  , 1 + id x :: Int-  , 1 + abs _ :: Int-  , 1 + negate _ :: Int-  , 1 + head _ :: Int-  , (-1) + id _ :: Int-  , ord _ + 0 :: Int-  , ord _ + 1 :: Int-  , ord c + 0 :: Int-  , ord ' ' + _ :: Int-  , ord 'a' + _ :: Int-  , ord 'a' + x :: Int-  , id _ + 0 :: Int-  , id _ + 1 :: Int-  , id _ + (-1) :: Int-  , id x + 0 :: Int-  , id x + 1 :: Int-  , id y + 0 :: Int-  , id 0 + _ :: Int-  , id 0 + x :: Int-  , id 0 + y :: Int-  , id 1 + _ :: Int-  , id 1 + x :: Int-  , id (-1) + _ :: Int-  , abs _ + 0 :: Int-  , abs _ + 1 :: Int-  , abs x + 0 :: Int-  , abs 0 + _ :: Int-  , abs 0 + x :: Int-  , abs 1 + _ :: Int-  , negate _ + 0 :: Int-  , negate _ + 1 :: Int-  , negate x + 0 :: Int-  , negate 0 + _ :: Int-  , negate 0 + x :: Int-  , negate 1 + _ :: Int-  , head _ + 0 :: Int-  , head _ + 1 :: Int-  , head xs + 0 :: Int-  , head [] + _ :: Int-  , head [] + x :: Int-  , head [0] + _ :: Int-  , elem (id _) [] :: Bool-  , elem (id 0) _ :: Bool-  , _:sort [] :: [Int]-  , _:tail [] :: [Int]-  , _:tail [0] :: [Int]-  , x:tail [] :: [Int]-  , 0:sort _ :: [Int]-  , 0:tail _ :: [Int]-  , 0:tail xs :: [Int]-  , 1:tail _ :: [Int]-  , [ord _] :: [Int]-  , [ord _,0] :: [Int]-  , [ord c] :: [Int]-  , ord ' ':_ :: [Int]-  , ord 'a':_ :: [Int]-  , ord 'a':xs :: [Int]-  , [id _] :: [Int]-  , [id _,0] :: [Int]-  , [id _,1] :: [Int]-  , [id _,0,0] :: [Int]-  , [id x] :: [Int]-  , [id x,0] :: [Int]-  , [id y] :: [Int]-  , id 0:_ :: [Int]-  , id 0:xs :: [Int]-  , id 0:ys :: [Int]-  , id 1:_ :: [Int]-  , id 1:xs :: [Int]-  , id (-1):_ :: [Int]-  , [abs _] :: [Int]-  , [abs _,0] :: [Int]-  , [abs x] :: [Int]-  , abs 0:_ :: [Int]-  , abs 0:xs :: [Int]-  , abs 1:_ :: [Int]-  , [negate _] :: [Int]-  , [negate _,0] :: [Int]-  , [negate x] :: [Int]-  , negate 0:_ :: [Int]-  , negate 0:xs :: [Int]-  , negate 1:_ :: [Int]-  , [head _] :: [Int]-  , [head _,0] :: [Int]-  , [head xs] :: [Int]-  , head []:_ :: [Int]-  , head []:xs :: [Int]-  , head [0]:_ :: [Int]-  , insert (id _) [] :: [Int]-  , insert (id 0) _ :: [Int]-  , _ ++ tail [] :: [Int]-  , [] ++ tail _ :: [Int]-  , tail _ ++ [] :: [Int]-  , tail [] ++ _ :: [Int]-  , not (not (not False)) :: Bool-  , not (not (not True)) :: Bool-  , id (id (id 0)) :: Int-  , id (id (id 1)) :: Int-  , id (id (id 2)) :: Int-  , id (id (id (-1))) :: Int-  , not (False || False) :: Bool-  , not (True || True) :: Bool-  , id (id (ord ' ')) :: Int-  , id (id (ord 'a')) :: Int-  , id (id (ord 'b')) :: Int-  , id (id (abs 0)) :: Int-  , id (id (abs 1)) :: Int-  , id (id (abs (-1))) :: Int-  , id (id (negate 0)) :: Int-  , id (id (negate 1)) :: Int-  , id (id (negate (-1))) :: Int-  , id (id (head [])) :: Int-  , id (id (head [0])) :: Int-  , id (id (head [1])) :: Int-  , id (id (head [0,0])) :: Int-  , id (abs (id 0)) :: Int-  , id (abs (id 1)) :: Int-  , id (abs (id (-1))) :: Int-  , id (abs (abs 0)) :: Int-  , id (abs (abs 1)) :: Int-  , id (negate (id 0)) :: Int-  , id (negate (id 1)) :: Int-  , id (negate (id (-1))) :: Int-  , id (negate (negate 0)) :: Int-  , id (negate (negate 1)) :: Int-  , id (0 * 0) :: Int-  , id (0 + 0) :: Int-  , id (1 + 1) :: Int-  , abs (id (id 0)) :: Int-  , abs (id (id 1)) :: Int-  , abs (id (abs 0)) :: Int-  , abs (abs (id 0)) :: Int-  , abs (0 + 0) :: Int-  , negate (id (id 0)) :: Int-  , negate (id (id 1)) :: Int-  , negate (id (negate 0)) :: Int-  , negate (negate (id 0)) :: Int-  , negate (0 + 0) :: Int-  , head ([] ++ []) :: Int-  , (id (id 0) +) :: Int -> Int-  , False || not False :: Bool-  , True || not True :: Bool-  , not False || False :: Bool-  , not True || True :: Bool-  , 0 * id 0 :: Int-  , id 0 * 0 :: Int-  , 0 + id 0 :: Int-  , 0 + abs 0 :: Int-  , 0 + negate 0 :: Int-  , id 0 + 0 :: Int-  , abs 0 + 0 :: Int-  , negate 0 + 0 :: Int-  , [head []] :: [Int]-  , not (False || True) :: Bool-  , not (True || False) :: Bool-  , id (abs (ord ' ')) :: Int-  , id (abs (ord 'a')) :: Int-  , id (abs (negate 0)) :: Int-  , id (abs (negate 1)) :: Int-  , id (abs (head [])) :: Int-  , id (abs (head [0])) :: Int-  , id (negate (ord ' ')) :: Int-  , id (negate (ord 'a')) :: Int-  , id (negate (abs 0)) :: Int-  , id (negate (abs 1)) :: Int-  , id (negate (head [])) :: Int-  , id (negate (head [0])) :: Int-  , id (head (tail [])) :: Int-  , id (head (tail [0])) :: Int-  , id (0 * 1) :: Int-  , id (1 * 0) :: Int-  , id (0 + 1) :: Int-  , id (0 + (-1)) :: Int-  , id (1 + 0) :: Int-  , id ((-1) + 0) :: Int-  , abs (id (ord 'a')) :: Int-  , abs (id (negate 0)) :: Int-  , abs (id (head [])) :: Int-  , abs (negate (id 0)) :: Int-  , negate (id (ord 'a')) :: Int-  , negate (id (abs 0)) :: Int-  , negate (id (head [])) :: Int-  , negate (abs (id 0)) :: Int-  , head [0] :: Int-  , head [0,0] :: Int-  , head [1] :: Int-  , tail [0] :: [Int]-  , False || not True :: Bool-  , True || not False :: Bool-  , not False || True :: Bool-  , not True || False :: Bool-  , 0 + ord 'a' :: Int-  , 0 + id 1 :: Int-  , 0 + head [] :: Int-  , 1 + id 0 :: Int-  , ord 'a' + 0 :: Int-  , id 0 + 1 :: Int-  , id 1 + 0 :: Int-  , head [] + 0 :: Int-  , 0:tail [] :: [Int]-  , [ord 'a'] :: [Int]-  , [id 0] :: [Int]-  , [id 0,0] :: [Int]-  , [id 1] :: [Int]-  , [abs 0] :: [Int]-  , [negate 0] :: [Int]-  , _:x:_ :: [Int]-  , _:x:xs :: [Int]-  , _:x:ys :: [Int]-  , _:y:_ :: [Int]-  , _:y:xs :: [Int]-  , _:z:_ :: [Int]-  , x:_:_ :: [Int]-  , x:_:xs :: [Int]-  , x:_:ys :: [Int]-  , x:y:_ :: [Int]-  , y:_:_ :: [Int]-  , y:_:xs :: [Int]-  , y:x:_ :: [Int]-  , z:_:_ :: [Int]-  , f (head (_:_)) :: Int-  , id (f (_ + x)) :: Int-  , id (f (x + _)) :: Int-  , id (_ + f x) :: Int-  , id (x + f _) :: Int-  , id (f _ + x) :: Int-  , id (f x + _) :: Int-  , head (f _:_) :: Int-  , _ || elem _ _ :: Bool-  , elem _ _ || _ :: Bool-  , elem _ (x:_) :: Bool-  , elem x (_:_) :: Bool-  , _:insert x _ :: [Int]-  , _:(_ ++ xs) :: [Int]-  , _:(_ ++ ys) :: [Int]-  , _:(xs ++ _) :: [Int]-  , _:(ys ++ _) :: [Int]-  , x:insert _ _ :: [Int]-  , x:(_ ++ xs) :: [Int]-  , x:(xs ++ _) :: [Int]-  , f (id _):_ :: [Int]-  , id (f _):_ :: [Int]-  , _ * x:_ :: [Int]-  , x * _:_ :: [Int]-  , _ + x:_ :: [Int]-  , _ + x:xs :: [Int]-  , _ + y:_ :: [Int]-  , x + _:_ :: [Int]-  , x + _:xs :: [Int]-  , y + _:_ :: [Int]-  , insert _ (x:_) :: [Int]-  , insert x (_:_) :: [Int]-  , _ ++ (_:xs) :: [Int]-  , _ ++ (_:ys) :: [Int]-  , _ ++ (x:xs) :: [Int]-  , xs ++ (_:_) :: [Int]-  , xs ++ (x:_) :: [Int]-  , ys ++ (_:_) :: [Int]-  , (_:_) ++ xs :: [Int]-  , (_:_) ++ ys :: [Int]-  , (_:xs) ++ _ :: [Int]-  , (_:ys) ++ _ :: [Int]-  , (x:_) ++ xs :: [Int]-  , (x:xs) ++ _ :: [Int]-  , _ || (_ || p) :: Bool-  , _ || (p || _) :: Bool-  , p || (_ || _) :: Bool-  , (_ || _) || p :: Bool-  , (_ || p) || _ :: Bool-  , (p || _) || _ :: Bool-  , _ + (_ + x) :: Int-  , _ + (_ + y) :: Int-  , _ + (x + _) :: Int-  , _ + (x + x) :: Int-  , _ + (y + _) :: Int-  , x + (_ + _) :: Int-  , x + (_ + x) :: Int-  , x + (x + _) :: Int-  , y + (_ + _) :: Int-  , (_ + _) + x :: Int-  , (_ + _) + y :: Int-  , (_ + x) + _ :: Int-  , (_ + x) + x :: Int-  , (_ + y) + _ :: Int-  , (x + _) + _ :: Int-  , (x + _) + x :: Int-  , (x + x) + _ :: Int-  , (y + _) + _ :: Int-  , _:_:_ :: [Int]-  , _:_:xs :: [Int]-  , _:_:ys :: [Int]-  , _:_:zs :: [Int]-  , x:x:_ :: [Int]-  , x:x:xs :: [Int]-  , _ ++ (_ ++ xs) :: [Int]-  , _ ++ (xs ++ _) :: [Int]-  , xs ++ (_ ++ _) :: [Int]-  , (_ ++ _) ++ xs :: [Int]-  , (_ ++ xs) ++ _ :: [Int]-  , (xs ++ _) ++ _ :: [Int]-  , f (id (_ + _)) :: Int-  , f (_ + id _) :: Int-  , f (id _ + _) :: Int-  , id (f (_ * _)) :: Int-  , id (f (_ + _)) :: Int-  , id (g (_ + _)) :: Int-  , id (_ * f _) :: Int-  , id (f _ * _) :: Int-  , id (_ + f _) :: Int-  , id (_ + g _) :: Int-  , id (f _ + _) :: Int-  , id (g _ + _) :: Int-  , _ || _ == _ :: Bool-  , _ == _ || _ :: Bool-  , _ * (_ + x) :: Int-  , _ * (x + _) :: Int-  , x * (_ + _) :: Int-  , (_ + _) * x :: Int-  , (_ + x) * _ :: Int-  , (x + _) * _ :: Int-  , _ + f (id _) :: Int-  , _ + id (f _) :: Int-  , _ + _ * x :: Int-  , _ + x * _ :: Int-  , x + _ * _ :: Int-  , f _ + id _ :: Int-  , f (id _) + _ :: Int-  , id _ + f _ :: Int-  , id (f _) + _ :: Int-  , _ * _ + x :: Int-  , _ * x + _ :: Int-  , x * _ + _ :: Int-  , elem _ (_:_) :: Bool-  , elem _ (_:xs) :: Bool-  , elem _ (_ ++ _) :: Bool-  , elem (_ + _) _ :: Bool-  , _:insert _ _ :: [Int]-  , _:insert _ xs :: [Int]-  , _:(_ ++ _) :: [Int]-  , _:(xs ++ xs) :: [Int]-  , x:(_ ++ _) :: [Int]-  , y:(_ ++ _) :: [Int]-  , _ * _:_ :: [Int]-  , _ * _:xs :: [Int]-  , _ + _:_ :: [Int]-  , _ + _:xs :: [Int]-  , _ + _:ys :: [Int]-  , x + x:_ :: [Int]-  , insert _ (_:_) :: [Int]-  , insert _ (_:xs) :: [Int]-  , insert _ (_ ++ _) :: [Int]-  , insert (_ + _) _ :: [Int]-  , _ ++ (_:_) :: [Int]-  , _ ++ (x:_) :: [Int]-  , _ ++ (y:_) :: [Int]-  , _ ++ insert _ _ :: [Int]-  , xs ++ (_:xs) :: [Int]-  , (_:_) ++ _ :: [Int]-  , (_:xs) ++ xs :: [Int]-  , (x:_) ++ _ :: [Int]-  , (y:_) ++ _ :: [Int]-  , insert _ _ ++ _ :: [Int]-  , f (id (id (id _))) :: Int-  , id (f (id (id _))) :: Int-  , id (f (id (id x))) :: Int-  , id (g (id (id _))) :: Int-  , id (id (f (id _))) :: Int-  , id (id (f (id x))) :: Int-  , id (id (g (id _))) :: Int-  , id (id (id (f _))) :: Int-  , id (id (id (f x))) :: Int-  , id (id (id (g _))) :: Int-  , not (not (_ || p)) :: Bool-  , not (not (p || _)) :: Bool-  , not (not (elem _ _)) :: Bool-  , not (_ || not p) :: Bool-  , not (p || not _) :: Bool-  , not (not _ || p) :: Bool-  , not (not p || _) :: Bool-  , id (f (id (ord _))) :: Int-  , id (f (id (abs _))) :: Int-  , id (f (id (negate _))) :: Int-  , id (f (id (head _))) :: Int-  , id (f (abs (id _))) :: Int-  , id (f (negate (id _))) :: Int-  , id (id (f (ord _))) :: Int-  , id (id (f (abs _))) :: Int-  , id (id (f (negate _))) :: Int-  , id (id (f (head _))) :: Int-  , id (id (abs (f _))) :: Int-  , id (id (negate (f _))) :: Int-  , id (id (_ * x)) :: Int-  , id (id (_ * y)) :: Int-  , id (id (x * _)) :: Int-  , id (id (y * _)) :: Int-  , id (id (_ + x)) :: Int-  , id (id (_ + y)) :: Int-  , id (id (_ + z)) :: Int-  , id (id (x + _)) :: Int-  , id (id (x + y)) :: Int-  , id (id (y + _)) :: Int-  , id (id (y + x)) :: Int-  , id (id (z + _)) :: Int-  , id (abs (f (id _))) :: Int-  , id (abs (id (f _))) :: Int-  , id (negate (f (id _))) :: Int-  , id (negate (id (f _))) :: Int-  , id (_ * id x) :: Int-  , id (_ * id y) :: Int-  , id (x * id _) :: Int-  , id (y * id _) :: Int-  , id (id _ * x) :: Int-  , id (id _ * y) :: Int-  , id (id x * _) :: Int-  , id (id y * _) :: Int-  , id (_ + id x) :: Int-  , id (_ + id y) :: Int-  , id (_ + id z) :: Int-  , id (x + id _) :: Int-  , id (x + id y) :: Int-  , id (y + id _) :: Int-  , id (y + id x) :: Int-  , id (z + id _) :: Int-  , id (id _ + x) :: Int-  , id (id _ + y) :: Int-  , id (id _ + z) :: Int-  , id (id x + _) :: Int-  , id (id x + y) :: Int-  , id (id y + _) :: Int-  , id (id y + x) :: Int-  , id (id z + _) :: Int-  , head (head _:xs) :: Int-  , head (head xs:_) :: Int-  , tail (tail (_:_)) :: [Int]-  , tail (_:tail _) :: [Int]-  , _ || not (not p) :: Bool-  , p || not (not _) :: Bool-  , not _ || not p :: Bool-  , not p || not _ :: Bool-  , not (not _) || p :: Bool-  , not (not p) || _ :: Bool-  , _ * id (id x) :: Int-  , x * id (id _) :: Int-  , id _ * id x :: Int-  , id x * id _ :: Int-  , id (id _) * x :: Int-  , id (id x) * _ :: Int-  , _ + id (id x) :: Int-  , _ + id (id y) :: Int-  , _ + (x + 0) :: Int-  , _ + (0 + x) :: Int-  , x + id (id _) :: Int-  , x + (_ + 0) :: Int-  , x + (0 + _) :: Int-  , y + id (id _) :: Int-  , 0 + (_ + x) :: Int-  , 0 + (x + _) :: Int-  , id _ + id x :: Int-  , id _ + id y :: Int-  , id x + id _ :: Int-  , id y + id _ :: Int-  , id (id _) + x :: Int-  , id (id _) + y :: Int-  , id (id x) + _ :: Int-  , id (id y) + _ :: Int-  , (_ + x) + 0 :: Int-  , (_ + 0) + x :: Int-  , (x + _) + 0 :: Int-  , (x + 0) + _ :: Int-  , (0 + _) + x :: Int-  , (0 + x) + _ :: Int-  , elem (id (id _)) _ :: Bool-  , _:tail (tail _) :: [Int]-  , [_,x] :: [Int]-  , [_,x,0] :: [Int]-  , [_,y] :: [Int]-  , _:0:_ :: [Int]-  , _:0:xs :: [Int]-  , _:0:ys :: [Int]-  , _:1:_ :: [Int]-  , _:1:xs :: [Int]-  , _:(-1):_ :: [Int]-  , [x,_] :: [Int]-  , [x,_,0] :: [Int]-  , x:0:_ :: [Int]-  , x:0:xs :: [Int]-  , x:1:_ :: [Int]-  , [y,_] :: [Int]-  , y:0:_ :: [Int]-  , 0:_:_ :: [Int]-  , 0:_:xs :: [Int]-  , 0:_:ys :: [Int]-  , 0:x:_ :: [Int]-  , 0:x:xs :: [Int]-  , 0:y:_ :: [Int]-  , 1:_:_ :: [Int]-  , 1:_:xs :: [Int]-  , 1:x:_ :: [Int]-  , (-1):_:_ :: [Int]-  , id (id _):_ :: [Int]-  , id (id _):xs :: [Int]-  , id (id _):ys :: [Int]-  , id (id x):_ :: [Int]-  , id (id x):xs :: [Int]-  , id (id y):_ :: [Int]-  , abs (abs _):_ :: [Int]-  , negate (negate _):_ :: [Int]-  , insert (id (id _)) _ :: [Int]-  , not (elem (id _) _) :: Bool-  , id (f (_ + 0)) :: Int-  , id (f (0 + _)) :: Int-  , id (abs (_ * x)) :: Int-  , id (abs (x * _)) :: Int-  , id (abs (_ + x)) :: Int-  , id (abs (_ + y)) :: Int-  , id (abs (x + _)) :: Int-  , id (abs (y + _)) :: Int-  , id (negate (_ * x)) :: Int-  , id (negate (x * _)) :: Int-  , id (negate (_ + x)) :: Int-  , id (negate (_ + y)) :: Int-  , id (negate (x + _)) :: Int-  , id (negate (y + _)) :: Int-  , id (head (_:_)) :: Int-  , id (head (_:xs)) :: Int-  , id (head (_:ys)) :: Int-  , id (head (_:zs)) :: Int-  , id (head (x:_)) :: Int-  , id (head (x:xs)) :: Int-  , id (head (x:ys)) :: Int-  , id (head (y:_)) :: Int-  , id (head (y:xs)) :: Int-  , id (head (z:_)) :: Int-  , id (head (insert _ _)) :: Int-  , id (head (_ ++ xs)) :: Int-  , id (head (_ ++ ys)) :: Int-  , id (head (xs ++ _)) :: Int-  , id (head (ys ++ _)) :: Int-  , id (_ * ord _) :: Int-  , id (_ * ord c) :: Int-  , id (_ * abs x) :: Int-  , id (_ * negate x) :: Int-  , id (_ * head _) :: Int-  , id (_ * head xs) :: Int-  , id (x * ord _) :: Int-  , id (x * abs _) :: Int-  , id (x * negate _) :: Int-  , id (x * head _) :: Int-  , id (ord _ * _) :: Int-  , id (ord _ * x) :: Int-  , id (ord c * _) :: Int-  , id (abs _ * x) :: Int-  , id (abs x * _) :: Int-  , id (negate _ * x) :: Int-  , id (negate x * _) :: Int-  , id (head _ * _) :: Int-  , id (head _ * x) :: Int-  , id (head xs * _) :: Int-  , id (_ + f 0) :: Int-  , id (_ + ord _) :: Int-  , id (_ + ord c) :: Int-  , id (_ + ord d) :: Int-  , id (_ + abs x) :: Int-  , id (_ + abs y) :: Int-  , id (_ + negate x) :: Int-  , id (_ + negate y) :: Int-  , id (_ + head _) :: Int-  , id (_ + head xs) :: Int-  , id (_ + head ys) :: Int-  , id (x + ord _) :: Int-  , id (x + ord c) :: Int-  , id (x + abs _) :: Int-  , id (x + negate _) :: Int-  , id (x + head _) :: Int-  , id (x + head xs) :: Int-  , id (y + ord _) :: Int-  , id (y + abs _) :: Int-  , id (y + negate _) :: Int-  , id (y + head _) :: Int-  , id (0 + f _) :: Int-  , id (f _ + 0) :: Int-  , id (f 0 + _) :: Int-  , id (ord _ + _) :: Int-  , id (ord _ + x) :: Int-  , id (ord _ + y) :: Int-  , id (ord c + _) :: Int-  , id (ord c + x) :: Int-  , id (ord d + _) :: Int-  , id (abs _ + x) :: Int-  , id (abs _ + y) :: Int-  , id (abs x + _) :: Int-  , id (abs y + _) :: Int-  , id (negate _ + x) :: Int-  , id (negate _ + y) :: Int-  , id (negate x + _) :: Int-  , id (negate y + _) :: Int-  , id (head _ + _) :: Int-  , id (head _ + x) :: Int-  , id (head _ + y) :: Int-  , id (head xs + _) :: Int-  , id (head xs + x) :: Int-  , id (head ys + _) :: Int-  , abs (id (_ + x)) :: Int-  , abs (id (x + _)) :: Int-  , abs (head (_:_)) :: Int-  , abs (head (_:xs)) :: Int-  , abs (head (x:_)) :: Int-  , abs (_ + ord _) :: Int-  , abs (_ + id x) :: Int-  , abs (_ + head _) :: Int-  , abs (x + id _) :: Int-  , abs (ord _ + _) :: Int-  , abs (id _ + x) :: Int-  , abs (id x + _) :: Int-  , abs (head _ + _) :: Int-  , negate (id (_ + x)) :: Int-  , negate (id (x + _)) :: Int-  , negate (head (_:_)) :: Int-  , negate (head (_:xs)) :: Int-  , negate (head (x:_)) :: Int-  , negate (_ + ord _) :: Int-  , negate (_ + id x) :: Int-  , negate (_ + head _) :: Int-  , negate (x + id _) :: Int-  , negate (ord _ + _) :: Int-  , negate (id _ + x) :: Int-  , negate (id x + _) :: Int-  , negate (head _ + _) :: Int-  , head (sort (_:_)) :: Int-  , head (tail (_:_)) :: Int-  , head (tail (_:xs)) :: Int-  , head (tail (x:_)) :: Int-  , head (_:sort _) :: Int-  , head (_:tail _) :: Int-  , head (_:tail xs) :: Int-  , head (x:tail _) :: Int-  , head (ord _:_) :: Int-  , head (ord _:xs) :: Int-  , head (ord c:_) :: Int-  , head (id _:_) :: Int-  , head (id _:xs) :: Int-  , head (id _:ys) :: Int-  , head (id x:_) :: Int-  , head (id x:xs) :: Int-  , head (id y:_) :: Int-  , head (abs _:_) :: Int-  , head (abs _:xs) :: Int-  , head (abs x:_) :: Int-  , head (negate _:_) :: Int-  , head (negate _:xs) :: Int-  , head (negate x:_) :: Int-  , head (insert (id _) _) :: Int-  , sort (id _:_) :: [Int]-  , tail (ord _:_) :: [Int]-  , tail (id _:_) :: [Int]-  , tail (id _:xs) :: [Int]-  , tail (id x:_) :: [Int]-  , tail (abs _:_) :: [Int]-  , tail (negate _:_) :: [Int]-  , (head (_:_) +) :: Int -> Int-  , _ * id (ord _) :: Int-  , _ * id (head _) :: Int-  , ord _ * id _ :: Int-  , id _ * ord _ :: Int-  , id _ * head _ :: Int-  , id (ord _) * _ :: Int-  , id (head _) * _ :: Int-  , head _ * id _ :: Int-  , _ + id (ord _) :: Int-  , _ + id (ord c) :: Int-  , _ + id (abs x) :: Int-  , _ + id (negate x) :: Int-  , _ + id (head _) :: Int-  , _ + id (head xs) :: Int-  , _ + abs (ord _) :: Int-  , _ + abs (id x) :: Int-  , _ + abs (head _) :: Int-  , _ + negate (ord _) :: Int-  , _ + negate (id x) :: Int-  , _ + negate (head _) :: Int-  , _ + head (tail _) :: Int-  , x + id (ord _) :: Int-  , x + id (abs _) :: Int-  , x + id (negate _) :: Int-  , x + id (head _) :: Int-  , x + abs (id _) :: Int-  , x + negate (id _) :: Int-  , ord _ + id _ :: Int-  , ord _ + id x :: Int-  , ord _ + abs _ :: Int-  , ord _ + negate _ :: Int-  , ord _ + head _ :: Int-  , ord c + id _ :: Int-  , id _ + ord _ :: Int-  , id _ + ord c :: Int-  , id _ + abs x :: Int-  , id _ + negate x :: Int-  , id _ + head _ :: Int-  , id _ + head xs :: Int-  , id x + ord _ :: Int-  , id x + abs _ :: Int-  , id x + negate _ :: Int-  , id x + head _ :: Int-  , id (ord _) + _ :: Int-  , id (ord _) + x :: Int-  , id (ord c) + _ :: Int-  , id (abs _) + x :: Int-  , id (abs x) + _ :: Int-  , id (negate _) + x :: Int-  , id (negate x) + _ :: Int-  , id (head _) + _ :: Int-  , id (head _) + x :: Int-  , id (head xs) + _ :: Int-  , abs _ + ord _ :: Int-  , abs _ + id x :: Int-  , abs _ + head _ :: Int-  , abs x + id _ :: Int-  , abs (ord _) + _ :: Int-  , abs (id _) + x :: Int-  , abs (id x) + _ :: Int-  , abs (head _) + _ :: Int-  , negate _ + ord _ :: Int-  , negate _ + id x :: Int-  , negate _ + head _ :: Int-  , negate x + id _ :: Int-  , negate (ord _) + _ :: Int-  , negate (id _) + x :: Int-  , negate (id x) + _ :: Int-  , negate (head _) + _ :: Int-  , head _ + ord _ :: Int-  , head _ + id _ :: Int-  , head _ + id x :: Int-  , head _ + abs _ :: Int-  , head _ + negate _ :: Int-  , head xs + id _ :: Int-  , head (tail _) + _ :: Int-  , elem _ (0:_) :: Bool-  , elem 0 (_:_) :: Bool-  , _:insert 0 _ :: [Int]-  , _:(_ ++ []) :: [Int]-  , _:(_ ++ [0]) :: [Int]-  , _:(xs ++ []) :: [Int]-  , _:([] ++ _) :: [Int]-  , _:([] ++ xs) :: [Int]-  , _:([0] ++ _) :: [Int]-  , x:(_ ++ []) :: [Int]-  , x:([] ++ _) :: [Int]-  , 0:insert _ _ :: [Int]-  , 0:(_ ++ xs) :: [Int]-  , 0:(xs ++ _) :: [Int]-  , ord _:tail _ :: [Int]-  , id _:sort _ :: [Int]-  , id _:tail _ :: [Int]-  , id _:tail xs :: [Int]-  , id x:tail _ :: [Int]-  , id (ord _):_ :: [Int]-  , id (ord _):xs :: [Int]-  , id (ord c):_ :: [Int]-  , id (abs _):_ :: [Int]-  , id (abs _):xs :: [Int]-  , id (abs x):_ :: [Int]-  , id (negate _):_ :: [Int]-  , id (negate _):xs :: [Int]-  , id (negate x):_ :: [Int]-  , id (head _):xs :: [Int]-  , id (head xs):_ :: [Int]-  , abs _:tail _ :: [Int]-  , abs (ord _):_ :: [Int]-  , abs (id _):_ :: [Int]-  , abs (id _):xs :: [Int]-  , abs (id x):_ :: [Int]-  , abs (negate _):_ :: [Int]-  , negate _:tail _ :: [Int]-  , negate (ord _):_ :: [Int]-  , negate (id _):_ :: [Int]-  , negate (id _):xs :: [Int]-  , negate (id x):_ :: [Int]-  , negate (abs _):_ :: [Int]-  , _ * 0:_ :: [Int]-  , 0 * _:_ :: [Int]-  , [_ + x] :: [Int]-  , _ + 0:_ :: [Int]-  , _ + 0:xs :: [Int]-  , _ + 1:_ :: [Int]-  , [x + _] :: [Int]-  , x + 0:_ :: [Int]-  , 0 + _:_ :: [Int]-  , 0 + _:xs :: [Int]-  , 0 + x:_ :: [Int]-  , 1 + _:_ :: [Int]-  , insert _ (0:_) :: [Int]-  , insert 0 (_:_) :: [Int]-  , _ ++ [_] :: [Int]-  , _ ++ [_,0] :: [Int]-  , _ ++ [x] :: [Int]-  , _ ++ (0:xs) :: [Int]-  , xs ++ [_] :: [Int]-  , xs ++ (0:_) :: [Int]-  , [] ++ (_:_) :: [Int]-  , [] ++ (_:xs) :: [Int]-  , [] ++ (x:_) :: [Int]-  , [0] ++ (_:_) :: [Int]-  , (_:_) ++ [] :: [Int]-  , (_:_) ++ [0] :: [Int]-  , (_:xs) ++ [] :: [Int]-  , [_] ++ _ :: [Int]-  , [_] ++ xs :: [Int]-  , [_,0] ++ _ :: [Int]-  , (x:_) ++ [] :: [Int]-  , [x] ++ _ :: [Int]-  , (0:_) ++ xs :: [Int]-  , (0:xs) ++ _ :: [Int]-  , _ || (_ || _) :: Bool-  , (_ || _) || _ :: Bool-  , _ * (_ * _) :: Int-  , (_ * _) * _ :: Int-  , _ + (_ + _) :: Int-  , (_ + _) + _ :: Int-  , _ ++ (_ ++ _) :: [Int]-  , (_ ++ _) ++ _ :: [Int]-  , _ && (_ || _) :: Bool-  , (_ || _) && _ :: Bool-  , _ == (_ || _) :: Bool-  , (_ || _) == _ :: Bool-  , _ || _ && _ :: Bool-  , _ || _ == _ :: Bool-  , _ && _ || _ :: Bool-  , _ == _ || _ :: Bool-  , _ == _ + _ :: Bool-  , _ + _ == _ :: Bool-  , _ * (_ + _) :: Int-  , (_ + _) * _ :: Int-  , _ + _ * _ :: Int-  , _ * _ + _ :: Int-  , not (not (_ && _)) :: Bool-  , not (not (_ == _)) :: Bool-  , not (not (_ || _)) :: Bool-  , not (not (_ == _)) :: Bool-  , not (_ && not _) :: Bool-  , not (not _ && _) :: Bool-  , not (_ == not _) :: Bool-  , not (not _ == _) :: Bool-  , not (_ || not _) :: Bool-  , not (not _ || _) :: Bool-  , id (id (_ * _)) :: Int-  , id (id (x * x)) :: Int-  , id (id (_ + _)) :: Int-  , id (id (x + x)) :: Int-  , id (_ * id _) :: Int-  , id (x * id x) :: Int-  , id (id _ * _) :: Int-  , id (id x * x) :: Int-  , id (_ + id _) :: Int-  , id (x + id x) :: Int-  , id (id _ + _) :: Int-  , id (id x + x) :: Int-  , abs (abs (_ + _)) :: Int-  , abs (_ + abs _) :: Int-  , abs (abs _ + _) :: Int-  , negate (negate (_ + _)) :: Int-  , negate (_ + negate _) :: Int-  , negate (negate _ + _) :: Int-  , head (head _:_) :: Int-  , (id (_ + _) +) :: Int -> Int-  , ((_ + id _) +) :: Int -> Int-  , ((id _ + _) +) :: Int -> Int-  , _ && not (not _) :: Bool-  , not _ && not _ :: Bool-  , not (not _) && _ :: Bool-  , _ == not (not _) :: Bool-  , not _ == not _ :: Bool-  , not (not _) == _ :: Bool-  , _ || not (not _) :: Bool-  , _ || (_ || False) :: Bool-  , _ || (_ || True) :: Bool-  , _ || (False || _) :: Bool-  , _ || (True || _) :: Bool-  , False || (_ || _) :: Bool-  , True || (_ || _) :: Bool-  , not _ || not _ :: Bool-  , not (not _) || _ :: Bool-  , (_ || _) || False :: Bool-  , (_ || _) || True :: Bool-  , (_ || False) || _ :: Bool-  , (_ || True) || _ :: Bool-  , (False || _) || _ :: Bool-  , (True || _) || _ :: Bool-  , _ == id (id _) :: Bool-  , id _ == id _ :: Bool-  , id (id _) == _ :: Bool-  , _ * id (id _) :: Int-  , id _ * id _ :: Int-  , id (id _) * _ :: Int-  , _ + id (id _) :: Int-  , _ + abs (abs _) :: Int-  , _ + negate (negate _) :: Int-  , _ + (_ + 0) :: Int-  , _ + (_ + 1) :: Int-  , _ + (0 + _) :: Int-  , _ + (1 + _) :: Int-  , x + id (id x) :: Int-  , 0 + (_ + _) :: Int-  , 1 + (_ + _) :: Int-  , ord _ + ord _ :: Int-  , id _ + id _ :: Int-  , id x + id x :: Int-  , id (id _) + _ :: Int-  , id (id x) + x :: Int-  , abs _ + abs _ :: Int-  , abs (abs _) + _ :: Int-  , negate _ + negate _ :: Int-  , negate (negate _) + _ :: Int-  , head _ + head _ :: Int-  , (_ + _) + 0 :: Int-  , (_ + _) + 1 :: Int-  , (_ + 0) + _ :: Int-  , (_ + 1) + _ :: Int-  , (0 + _) + _ :: Int-  , (1 + _) + _ :: Int-  , [_,_] :: [Int]-  , [_,_,0] :: [Int]-  , [_,_,1] :: [Int]-  , [_,_,0,0] :: [Int]-  , [x,x] :: [Int]-  , _ ++ (_ ++ []) :: [Int]-  , _ ++ ([] ++ _) :: [Int]-  , [] ++ (_ ++ _) :: [Int]-  , (_ ++ _) ++ [] :: [Int]-  , (_ ++ []) ++ _ :: [Int]-  , ([] ++ _) ++ _ :: [Int]-  , not (_ == id _) :: Bool-  , not (id _ == _) :: Bool-  , id (abs (_ * _)) :: Int-  , id (abs (_ + _)) :: Int-  , id (abs (x + x)) :: Int-  , id (negate (_ * _)) :: Int-  , id (negate (_ + _)) :: Int-  , id (negate (x + x)) :: Int-  , id (head (_ ++ _)) :: Int-  , id (head (xs ++ xs)) :: Int-  , id (_ * abs _) :: Int-  , id (_ * negate _) :: Int-  , id (abs _ * _) :: Int-  , id (negate _ * _) :: Int-  , id (_ + abs _) :: Int-  , id (_ + negate _) :: Int-  , id (x + abs x) :: Int-  , id (x + negate x) :: Int-  , id (abs _ + _) :: Int-  , id (abs x + x) :: Int-  , id (negate _ + _) :: Int-  , id (negate x + x) :: Int-  , abs (id (_ * _)) :: Int-  , abs (id (_ + _)) :: Int-  , abs (negate (_ + _)) :: Int-  , abs (head (_ ++ _)) :: Int-  , abs (_ * id _) :: Int-  , abs (id _ * _) :: Int-  , abs (_ + id _) :: Int-  , abs (_ + negate _) :: Int-  , abs (id _ + _) :: Int-  , abs (negate _ + _) :: Int-  , negate (id (_ * _)) :: Int-  , negate (id (_ + _)) :: Int-  , negate (abs (_ + _)) :: Int-  , negate (head (_ ++ _)) :: Int-  , negate (_ * id _) :: Int-  , negate (id _ * _) :: Int-  , negate (_ + id _) :: Int-  , negate (_ + abs _) :: Int-  , negate (id _ + _) :: Int-  , negate (abs _ + _) :: Int-  , head (tail (_ ++ _)) :: Int-  , head (_ ++ tail _) :: Int-  , head (tail _ ++ _) :: Int-  , tail (head _:_) :: [Int]-  , _ * id (abs _) :: Int-  , _ * id (negate _) :: Int-  , _ * abs (id _) :: Int-  , _ * negate (id _) :: Int-  , _ * (_ + 0) :: Int-  , _ * (0 + _) :: Int-  , 0 * (_ + _) :: Int-  , id _ * abs _ :: Int-  , id _ * negate _ :: Int-  , id (abs _) * _ :: Int-  , id (negate _) * _ :: Int-  , abs _ * id _ :: Int-  , abs (id _) * _ :: Int-  , negate _ * id _ :: Int-  , negate (id _) * _ :: Int-  , (_ + _) * 0 :: Int-  , (_ + 0) * _ :: Int-  , (0 + _) * _ :: Int-  , _ + id (abs _) :: Int-  , _ + id (negate _) :: Int-  , _ + abs (id _) :: Int-  , _ + abs (negate _) :: Int-  , _ + negate (id _) :: Int-  , _ + negate (abs _) :: Int-  , _ + _ * 0 :: Int-  , _ + 0 * _ :: Int-  , 0 + _ * _ :: Int-  , id _ + abs _ :: Int-  , id _ + negate _ :: Int-  , id (abs _) + _ :: Int-  , id (negate _) + _ :: Int-  , abs _ + id _ :: Int-  , abs _ + negate _ :: Int-  , abs (id _) + _ :: Int-  , abs (negate _) + _ :: Int-  , negate _ + id _ :: Int-  , negate _ + abs _ :: Int-  , negate (id _) + _ :: Int-  , negate (abs _) + _ :: Int-  , _ * _ + 0 :: Int-  , _ * 0 + _ :: Int-  , 0 * _ + _ :: Int-  , elem _ [_] :: Bool-  , _:insert _ [] :: [Int]-  , 0:(_ ++ _) :: [Int]-  , 1:(_ ++ _) :: [Int]-  , id (head _):_ :: [Int]-  , abs (head _):_ :: [Int]-  , negate (head _):_ :: [Int]-  , head _:tail _ :: [Int]-  , head (tail _):_ :: [Int]-  , [_ * _] :: [Int]-  , [_ + _] :: [Int]-  , [_ + _,0] :: [Int]-  , insert _ [_] :: [Int]-  , _ ++ (0:_) :: [Int]-  , _ ++ (1:_) :: [Int]-  , (0:_) ++ _ :: [Int]-  , (1:_) ++ _ :: [Int]-  , not (not (not (not _))) :: Bool-  , not (not (not (not p))) :: Bool-  , id (id (id (id _))) :: Int-  , id (id (id (id x))) :: Int-  , id (id (id (id y))) :: Int-  , id (id (id (id z))) :: Int-  , id (f (id (id 0))) :: Int-  , id (id (f (id 0))) :: Int-  , id (id (id (f 0))) :: Int-  , id (id (id (ord _))) :: Int-  , id (id (id (ord c))) :: Int-  , id (id (id (ord d))) :: Int-  , id (id (id (abs _))) :: Int-  , id (id (id (abs x))) :: Int-  , id (id (id (abs y))) :: Int-  , id (id (id (negate _))) :: Int-  , id (id (id (negate x))) :: Int-  , id (id (id (negate y))) :: Int-  , id (id (id (head _))) :: Int-  , id (id (id (head xs))) :: Int-  , id (id (id (head ys))) :: Int-  , id (id (abs (id _))) :: Int-  , id (id (abs (id x))) :: Int-  , id (id (abs (id y))) :: Int-  , id (id (abs (abs _))) :: Int-  , id (id (abs (abs x))) :: Int-  , id (id (negate (id _))) :: Int-  , id (id (negate (id x))) :: Int-  , id (id (negate (id y))) :: Int-  , id (id (negate (negate _))) :: Int-  , id (id (negate (negate x))) :: Int-  , id (abs (id (id _))) :: Int-  , id (abs (id (id x))) :: Int-  , id (abs (id (id y))) :: Int-  , id (abs (id (abs _))) :: Int-  , id (abs (id (abs x))) :: Int-  , id (abs (abs (id _))) :: Int-  , id (abs (abs (id x))) :: Int-  , id (abs (abs (abs _))) :: Int-  , id (negate (id (id _))) :: Int-  , id (negate (id (id x))) :: Int-  , id (negate (id (id y))) :: Int-  , id (negate (id (negate _))) :: Int-  , id (negate (id (negate x))) :: Int-  , id (negate (negate (id _))) :: Int-  , id (negate (negate (id x))) :: Int-  , id (negate (negate (negate _))) :: Int-  , abs (id (id (id _))) :: Int-  , abs (id (id (id x))) :: Int-  , abs (id (id (abs _))) :: Int-  , abs (id (abs (id _))) :: Int-  , abs (abs (id (id _))) :: Int-  , negate (id (id (id _))) :: Int-  , negate (id (id (id x))) :: Int-  , negate (id (id (negate _))) :: Int-  , negate (id (negate (id _))) :: Int-  , negate (negate (id (id _))) :: Int-  , (id (id (id _)) +) :: Int -> Int-  , _ + (0 + 0) :: Int-  , 0 + (_ + 0) :: Int-  , 0 + (0 + _) :: Int-  , (_ + 0) + 0 :: Int-  , (0 + _) + 0 :: Int-  , (0 + 0) + _ :: Int-  , 0:0:_ :: [Int]-  , 0:0:xs :: [Int]-  , not (not (_ || False)) :: Bool-  , not (not (_ || True)) :: Bool-  , not (not (False || _)) :: Bool-  , not (not (True || _)) :: Bool-  , not (_ || not False) :: Bool-  , not (_ || not True) :: Bool-  , not (False || not _) :: Bool-  , not (True || not _) :: Bool-  , not (not _ || False) :: Bool-  , not (not _ || True) :: Bool-  , not (not False || _) :: Bool-  , not (not True || _) :: Bool-  , id (id (abs (ord _))) :: Int-  , id (id (abs (ord c))) :: Int-  , id (id (abs (negate _))) :: Int-  , id (id (abs (negate x))) :: Int-  , id (id (abs (head _))) :: Int-  , id (id (abs (head xs))) :: Int-  , id (id (negate (ord _))) :: Int-  , id (id (negate (ord c))) :: Int-  , id (id (negate (abs _))) :: Int-  , id (id (negate (abs x))) :: Int-  , id (id (negate (head _))) :: Int-  , id (id (negate (head xs))) :: Int-  , id (id (head (sort _))) :: Int-  , id (id (head (tail _))) :: Int-  , id (id (head (tail xs))) :: Int-  , id (id (_ * 0)) :: Int-  , id (id (_ * 1)) :: Int-  , id (id (x * 0)) :: Int-  , id (id (0 * _)) :: Int-  , id (id (0 * x)) :: Int-  , id (id (1 * _)) :: Int-  , id (id (_ + 0)) :: Int-  , id (id (_ + 1)) :: Int-  , id (id (_ + (-1))) :: Int-  , id (id (x + 0)) :: Int-  , id (id (x + 1)) :: Int-  , id (id (y + 0)) :: Int-  , id (id (0 + _)) :: Int-  , id (id (0 + x)) :: Int-  , id (id (0 + y)) :: Int-  , id (id (1 + _)) :: Int-  , id (id (1 + x)) :: Int-  , id (id ((-1) + _)) :: Int-  , id (abs (id (ord _))) :: Int-  , id (abs (id (ord c))) :: Int-  , id (abs (id (negate _))) :: Int-  , id (abs (id (negate x))) :: Int-  , id (abs (id (head _))) :: Int-  , id (abs (id (head xs))) :: Int-  , id (abs (abs (ord _))) :: Int-  , id (abs (abs (negate _))) :: Int-  , id (abs (abs (head _))) :: Int-  , id (abs (negate (id _))) :: Int-  , id (abs (negate (id x))) :: Int-  , id (abs (negate (abs _))) :: Int-  , id (abs (negate (negate _))) :: Int-  , id (negate (id (ord _))) :: Int-  , id (negate (id (ord c))) :: Int-  , id (negate (id (abs _))) :: Int-  , id (negate (id (abs x))) :: Int-  , id (negate (id (head _))) :: Int-  , id (negate (id (head xs))) :: Int-  , id (negate (abs (id _))) :: Int-  , id (negate (abs (id x))) :: Int-  , id (negate (abs (abs _))) :: Int-  , id (negate (abs (negate _))) :: Int-  , id (negate (negate (ord _))) :: Int-  , id (negate (negate (abs _))) :: Int-  , id (negate (negate (head _))) :: Int-  , id (head (tail (tail _))) :: Int-  , id (_ * id 0) :: Int-  , id (_ * id 1) :: Int-  , id (x * id 0) :: Int-  , id (0 * id _) :: Int-  , id (0 * id x) :: Int-  , id (1 * id _) :: Int-  , id (id _ * 0) :: Int-  , id (id _ * 1) :: Int-  , id (id x * 0) :: Int-  , id (id 0 * _) :: Int-  , id (id 0 * x) :: Int-  , id (id 1 * _) :: Int-  , id (_ + id 0) :: Int-  , id (_ + id 1) :: Int-  , id (_ + id (-1)) :: Int-  , id (x + id 0) :: Int-  , id (x + id 1) :: Int-  , id (y + id 0) :: Int-  , id (0 + id _) :: Int-  , id (0 + id x) :: Int-  , id (0 + id y) :: Int-  , id (1 + id _) :: Int-  , id (1 + id x) :: Int-  , id ((-1) + id _) :: Int-  , id (id _ + 0) :: Int-  , id (id _ + 1) :: Int-  , id (id _ + (-1)) :: Int-  , id (id x + 0) :: Int-  , id (id x + 1) :: Int-  , id (id y + 0) :: Int-  , id (id 0 + _) :: Int-  , id (id 0 + x) :: Int-  , id (id 0 + y) :: Int-  , id (id 1 + _) :: Int-  , id (id 1 + x) :: Int-  , id (id (-1) + _) :: Int-  , abs (id (id (ord _))) :: Int-  , abs (id (id (negate _))) :: Int-  , abs (id (id (head _))) :: Int-  , abs (id (negate (id _))) :: Int-  , abs (negate (id (id _))) :: Int-  , negate (id (id (ord _))) :: Int-  , negate (id (id (abs _))) :: Int-  , negate (id (id (head _))) :: Int-  , negate (id (abs (id _))) :: Int-  , negate (abs (id (id _))) :: Int-  , head [head _] :: Int-  , head (head []:_) :: Int-  , _ || not (not False) :: Bool-  , _ || not (not True) :: Bool-  , False || not (not _) :: Bool-  , True || not (not _) :: Bool-  , not _ || not False :: Bool-  , not _ || not True :: Bool-  , not False || not _ :: Bool-  , not True || not _ :: Bool-  , not (not _) || False :: Bool-  , not (not _) || True :: Bool-  , not (not False) || _ :: Bool-  , not (not True) || _ :: Bool-  , _ * id (id 0) :: Int-  , 0 * id (id _) :: Int-  , id _ * id 0 :: Int-  , id 0 * id _ :: Int-  , id (id _) * 0 :: Int-  , id (id 0) * _ :: Int-  , _ + id (id 0) :: Int-  , _ + id (id 1) :: Int-  , x + id (id 0) :: Int-  , 0 + id (id _) :: Int-  , 0 + id (id x) :: Int-  , 1 + id (id _) :: Int-  , id _ + id 0 :: Int-  , id _ + id 1 :: Int-  , id x + id 0 :: Int-  , id 0 + id _ :: Int-  , id 0 + id x :: Int-  , id 1 + id _ :: Int-  , id (id _) + 0 :: Int-  , id (id _) + 1 :: Int-  , id (id x) + 0 :: Int-  , id (id 0) + _ :: Int-  , id (id 0) + x :: Int-  , id (id 1) + _ :: Int-  , [_,0] :: [Int]-  , [_,0,0] :: [Int]-  , [_,1] :: [Int]-  , _:([] ++ []) :: [Int]-  , [x,0] :: [Int]-  , [0,_] :: [Int]-  , [0,_,0] :: [Int]-  , [0,x] :: [Int]-  , 0:1:_ :: [Int]-  , [1,_] :: [Int]-  , 1:0:_ :: [Int]-  , [id (id _)] :: [Int]-  , [id (id _),0] :: [Int]-  , [id (id x)] :: [Int]-  , id (id 0):_ :: [Int]-  , id (id 0):xs :: [Int]-  , id (id 1):_ :: [Int]-  , 0 + 0:_ :: [Int]-  , [] ++ [_] :: [Int]-  , [_] ++ [] :: [Int]-  , id (abs (negate (ord _))) :: Int-  , id (abs (negate (head _))) :: Int-  , id (abs (head (tail _))) :: Int-  , id (abs (_ * 0)) :: Int-  , id (abs (0 * _)) :: Int-  , id (abs (_ + 0)) :: Int-  , id (abs (_ + 1)) :: Int-  , id (abs (x + 0)) :: Int-  , id (abs (0 + _)) :: Int-  , id (abs (0 + x)) :: Int-  , id (abs (1 + _)) :: Int-  , id (negate (abs (ord _))) :: Int-  , id (negate (abs (head _))) :: Int-  , id (negate (head (tail _))) :: Int-  , id (negate (_ * 0)) :: Int-  , id (negate (0 * _)) :: Int-  , id (negate (_ + 0)) :: Int-  , id (negate (_ + 1)) :: Int-  , id (negate (x + 0)) :: Int-  , id (negate (0 + _)) :: Int-  , id (negate (0 + x)) :: Int-  , id (negate (1 + _)) :: Int-  , id (head [_]) :: Int-  , id (head [_,0]) :: Int-  , id (head [_,1]) :: Int-  , id (head [_,0,0]) :: Int-  , id (head [x]) :: Int-  , id (head [x,0]) :: Int-  , id (head [y]) :: Int-  , id (head (0:_)) :: Int-  , id (head (0:xs)) :: Int-  , id (head (0:ys)) :: Int-  , id (head (1:_)) :: Int-  , id (head (1:xs)) :: Int-  , id (head ((-1):_)) :: Int-  , id (head (_ ++ [])) :: Int-  , id (head (_ ++ [0])) :: Int-  , id (head (xs ++ [])) :: Int-  , id (head ([] ++ _)) :: Int-  , id (head ([] ++ xs)) :: Int-  , id (head ([0] ++ _)) :: Int-  , id (_ * ord 'a') :: Int-  , id (_ * abs 0) :: Int-  , id (_ * negate 0) :: Int-  , id (_ * head []) :: Int-  , id (0 * ord _) :: Int-  , id (0 * abs _) :: Int-  , id (0 * negate _) :: Int-  , id (0 * head _) :: Int-  , id (ord _ * 0) :: Int-  , id (ord 'a' * _) :: Int-  , id (abs _ * 0) :: Int-  , id (abs 0 * _) :: Int-  , id (negate _ * 0) :: Int-  , id (negate 0 * _) :: Int-  , id (head _ * 0) :: Int-  , id (head [] * _) :: Int-  , id (_ + ord ' ') :: Int-  , id (_ + ord 'a') :: Int-  , id (_ + abs 0) :: Int-  , id (_ + abs 1) :: Int-  , id (_ + negate 0) :: Int-  , id (_ + negate 1) :: Int-  , id (_ + head []) :: Int-  , id (_ + head [0]) :: Int-  , id (x + ord 'a') :: Int-  , id (x + abs 0) :: Int-  , id (x + negate 0) :: Int-  , id (x + head []) :: Int-  , id (0 + ord _) :: Int-  , id (0 + ord c) :: Int-  , id (0 + abs _) :: Int-  , id (0 + abs x) :: Int-  , id (0 + negate _) :: Int-  , id (0 + negate x) :: Int-  , id (0 + head _) :: Int-  , id (0 + head xs) :: Int-  , id (1 + ord _) :: Int-  , id (1 + abs _) :: Int-  , id (1 + negate _) :: Int-  , id (1 + head _) :: Int-  , id (ord _ + 0) :: Int-  , id (ord _ + 1) :: Int-  , id (ord c + 0) :: Int-  , id (ord ' ' + _) :: Int-  , id (ord 'a' + _) :: Int-  , id (ord 'a' + x) :: Int-  , id (abs _ + 0) :: Int-  , id (abs _ + 1) :: Int-  , id (abs x + 0) :: Int-  , id (abs 0 + _) :: Int-  , id (abs 0 + x) :: Int-  , id (abs 1 + _) :: Int-  , id (negate _ + 0) :: Int-  , id (negate _ + 1) :: Int-  , id (negate x + 0) :: Int-  , id (negate 0 + _) :: Int-  , id (negate 0 + x) :: Int-  , id (negate 1 + _) :: Int-  , id (head _ + 0) :: Int-  , id (head _ + 1) :: Int-  , id (head xs + 0) :: Int-  , id (head [] + _) :: Int-  , id (head [] + x) :: Int-  , id (head [0] + _) :: Int-  , abs (id (_ + 0)) :: Int-  , abs (id (0 + _)) :: Int-  , abs (head [_]) :: Int-  , abs (head (0:_)) :: Int-  , abs (_ + id 0) :: Int-  , abs (0 + id _) :: Int-  , abs (id _ + 0) :: Int-  , abs (id 0 + _) :: Int-  , negate (id (_ + 0)) :: Int-  , negate (id (0 + _)) :: Int-  , negate (head [_]) :: Int-  , negate (head (0:_)) :: Int-  , negate (_ + id 0) :: Int-  , negate (0 + id _) :: Int-  , negate (id _ + 0) :: Int-  , negate (id 0 + _) :: Int-  , head (tail [_]) :: Int-  , head (tail (0:_)) :: Int-  , head (_:tail []) :: Int-  , head (0:tail _) :: Int-  , head [ord _] :: Int-  , head (ord 'a':_) :: Int-  , head [id _] :: Int-  , head [id _,0] :: Int-  , head [id x] :: Int-  , head (id 0:_) :: Int-  , head (id 0:xs) :: Int-  , head (id 1:_) :: Int-  , head [abs _] :: Int-  , head (abs 0:_) :: Int-  , head [negate _] :: Int-  , head (negate 0:_) :: Int-  , tail [id _] :: [Int]-  , tail (id 0:_) :: [Int]-  , _ + id (ord 'a') :: Int-  , _ + id (abs 0) :: Int-  , _ + id (negate 0) :: Int-  , _ + id (head []) :: Int-  , _ + abs (id 0) :: Int-  , _ + negate (id 0) :: Int-  , 0 + id (ord _) :: Int-  , 0 + id (abs _) :: Int-  , 0 + id (negate _) :: Int-  , 0 + id (head _) :: Int-  , 0 + abs (id _) :: Int-  , 0 + negate (id _) :: Int-  , ord _ + id 0 :: Int-  , ord 'a' + id _ :: Int-  , id _ + ord 'a' :: Int-  , id _ + abs 0 :: Int-  , id _ + negate 0 :: Int-  , id _ + head [] :: Int-  , id 0 + ord _ :: Int-  , id 0 + abs _ :: Int-  , id 0 + negate _ :: Int-  , id 0 + head _ :: Int-  , id (ord _) + 0 :: Int-  , id (ord 'a') + _ :: Int-  , id (abs _) + 0 :: Int-  , id (abs 0) + _ :: Int-  , id (negate _) + 0 :: Int-  , id (negate 0) + _ :: Int-  , id (head _) + 0 :: Int-  , id (head []) + _ :: Int-  , abs _ + id 0 :: Int-  , abs 0 + id _ :: Int-  , abs (id _) + 0 :: Int-  , abs (id 0) + _ :: Int-  , negate _ + id 0 :: Int-  , negate 0 + id _ :: Int-  , negate (id _) + 0 :: Int-  , negate (id 0) + _ :: Int-  , head _ + id 0 :: Int-  , head [] + id _ :: Int-  , 0:(_ ++ []) :: [Int]-  , 0:([] ++ _) :: [Int]-  , id _:tail [] :: [Int]-  , id 0:tail _ :: [Int]-  , [id (ord _)] :: [Int]-  , id (ord 'a'):_ :: [Int]-  , [id (abs _)] :: [Int]-  , id (abs 0):_ :: [Int]-  , [id (negate _)] :: [Int]-  , id (negate 0):_ :: [Int]-  , [id (head _)] :: [Int]-  , id (head []):_ :: [Int]-  , [abs (id _)] :: [Int]-  , abs (id 0):_ :: [Int]-  , [negate (id _)] :: [Int]-  , negate (id 0):_ :: [Int]-  , [_ + 0] :: [Int]-  , [0 + _] :: [Int]-  , _ ++ [0] :: [Int]-  , [] ++ (0:_) :: [Int]-  , (0:_) ++ [] :: [Int]-  , [0] ++ _ :: [Int]-  , not (not (not (not False))) :: Bool-  , not (not (not (not True))) :: Bool-  , id (id (id (id 0))) :: Int-  , id (id (id (id 1))) :: Int-  , id (id (id (id (-1)))) :: Int-  , id (id (id (ord ' '))) :: Int-  , id (id (id (ord 'a'))) :: Int-  , id (id (id (abs 0))) :: Int-  , id (id (id (abs 1))) :: Int-  , id (id (id (negate 0))) :: Int-  , id (id (id (negate 1))) :: Int-  , id (id (id (head []))) :: Int-  , id (id (id (head [0]))) :: Int-  , id (id (abs (id 0))) :: Int-  , id (id (abs (id 1))) :: Int-  , id (id (abs (abs 0))) :: Int-  , id (id (negate (id 0))) :: Int-  , id (id (negate (id 1))) :: Int-  , id (id (negate (negate 0))) :: Int-  , id (id (0 * 0)) :: Int-  , id (id (0 + 0)) :: Int-  , id (abs (id (id 0))) :: Int-  , id (abs (id (id 1))) :: Int-  , id (abs (id (abs 0))) :: Int-  , id (abs (abs (id 0))) :: Int-  , id (negate (id (id 0))) :: Int-  , id (negate (id (id 1))) :: Int-  , id (negate (id (negate 0))) :: Int-  , id (negate (negate (id 0))) :: Int-  , id (0 * id 0) :: Int-  , id (id 0 * 0) :: Int-  , id (0 + id 0) :: Int-  , id (id 0 + 0) :: Int-  , abs (id (id (id 0))) :: Int-  , negate (id (id (id 0))) :: Int-  , 0 + id (id 0) :: Int-  , id 0 + id 0 :: Int-  , id (id 0) + 0 :: Int-  , [0,0] :: [Int]-  , id (id (abs (ord 'a'))) :: Int-  , id (id (abs (negate 0))) :: Int-  , id (id (abs (head []))) :: Int-  , id (id (negate (ord 'a'))) :: Int-  , id (id (negate (abs 0))) :: Int-  , id (id (negate (head []))) :: Int-  , id (id (head (tail []))) :: Int-  , id (id (0 + 1)) :: Int-  , id (id (1 + 0)) :: Int-  , id (abs (id (ord 'a'))) :: Int-  , id (abs (id (negate 0))) :: Int-  , id (abs (id (head []))) :: Int-  , id (abs (negate (id 0))) :: Int-  , id (abs (0 + 0)) :: Int-  , id (negate (id (ord 'a'))) :: Int-  , id (negate (id (abs 0))) :: Int-  , id (negate (id (head []))) :: Int-  , id (negate (abs (id 0))) :: Int-  , id (negate (0 + 0)) :: Int-  , id (head ([] ++ [])) :: Int-  , id (0 + id 1) :: Int-  , id (0 + abs 0) :: Int-  , id (0 + negate 0) :: Int-  , id (1 + id 0) :: Int-  , id (id 0 + 1) :: Int-  , id (id 1 + 0) :: Int-  , id (abs 0 + 0) :: Int-  , id (negate 0 + 0) :: Int-  , [id (id 0)] :: [Int]-  , id (head [0]) :: Int-  , id (head [0,0]) :: Int-  , id (head [1]) :: Int-  , id (0 + ord 'a') :: Int-  , id (0 + head []) :: Int-  , id (ord 'a' + 0) :: Int-  , id (head [] + 0) :: Int-  , head [id 0] :: Int-  , _:f _:_ :: [Int]-  , f _:_:_ :: [Int]-  , head (_:x:_) :: Int-  , head (_:x:xs) :: Int-  , head (_:y:_) :: Int-  , head (x:_:_) :: Int-  , head (x:_:xs) :: Int-  , head (y:_:_) :: Int-  , tail (_:x:_) :: [Int]-  , tail (x:_:_) :: [Int]-  , _:tail (x:_) :: [Int]-  , _:x:tail _ :: [Int]-  , _:ord _:_ :: [Int]-  , _:ord _:xs :: [Int]-  , _:ord c:_ :: [Int]-  , _:id x:_ :: [Int]-  , _:id x:xs :: [Int]-  , _:id y:_ :: [Int]-  , _:abs x:_ :: [Int]-  , _:negate x:_ :: [Int]-  , _:head _:xs :: [Int]-  , _:head xs:_ :: [Int]-  , x:tail (_:_) :: [Int]-  , x:_:tail _ :: [Int]-  , x:ord _:_ :: [Int]-  , x:id _:_ :: [Int]-  , x:id _:xs :: [Int]-  , x:abs _:_ :: [Int]-  , x:negate _:_ :: [Int]-  , y:id _:_ :: [Int]-  , ord _:_:_ :: [Int]-  , ord _:_:xs :: [Int]-  , ord _:x:_ :: [Int]-  , ord c:_:_ :: [Int]-  , id _:x:_ :: [Int]-  , id _:x:xs :: [Int]-  , id _:y:_ :: [Int]-  , id x:_:_ :: [Int]-  , id x:_:xs :: [Int]-  , id y:_:_ :: [Int]-  , abs _:x:_ :: [Int]-  , abs x:_:_ :: [Int]-  , negate _:x:_ :: [Int]-  , negate x:_:_ :: [Int]-  , head _:_:xs :: [Int]-  , head xs:_:_ :: [Int]-  , head (_:_):xs :: [Int]-  , head (_:xs):_ :: [Int]-  , id (f (head (_:_))) :: Int-  , id (head (f _:_)) :: Int-  , head (_:(_ ++ xs)) :: Int-  , head (_:(xs ++ _)) :: Int-  , head (_ + x:_) :: Int-  , head (x + _:_) :: Int-  , head (_ ++ (_:xs)) :: Int-  , head (xs ++ (_:_)) :: Int-  , head ((_:_) ++ xs) :: Int-  , head ((_:xs) ++ _) :: Int-  , _ + head (x:_) :: Int-  , x + head (_:_) :: Int-  , head (_:_) + x :: Int-  , head (x:_) + _ :: Int-  , id _:(_ ++ xs) :: [Int]-  , id _:(xs ++ _) :: [Int]-  , id (_ + x):_ :: [Int]-  , id (x + _):_ :: [Int]-  , _ + ord _:_ :: [Int]-  , _ + id x:_ :: [Int]-  , x + id _:_ :: [Int]-  , ord _ + _:_ :: [Int]-  , id _ + x:_ :: [Int]-  , id x + _:_ :: [Int]-  , _ ++ (id _:xs) :: [Int]-  , xs ++ (id _:_) :: [Int]-  , (id _:_) ++ xs :: [Int]-  , (id _:xs) ++ _ :: [Int]-  , id (f (id (_ + _))) :: Int-  , id (f (_ + id _)) :: Int-  , id (f (id _ + _)) :: Int-  , id (id (f (_ + _))) :: Int-  , id (id (_ + f _)) :: Int-  , id (id (f _ + _)) :: Int-  , id (_ + f (id _)) :: Int-  , id (_ + id (f _)) :: Int-  , id (_ + (_ + x)) :: Int-  , id (_ + (_ + y)) :: Int-  , id (_ + (x + _)) :: Int-  , id (_ + (x + x)) :: Int-  , id (_ + (y + _)) :: Int-  , id (x + (_ + _)) :: Int-  , id (x + (_ + x)) :: Int-  , id (x + (x + _)) :: Int-  , id (y + (_ + _)) :: Int-  , id (f _ + id _) :: Int-  , id (f (id _) + _) :: Int-  , id (id _ + f _) :: Int-  , id (id (f _) + _) :: Int-  , id ((_ + _) + x) :: Int-  , id ((_ + _) + y) :: Int-  , id ((_ + x) + _) :: Int-  , id ((_ + x) + x) :: Int-  , id ((_ + y) + _) :: Int-  , id ((x + _) + _) :: Int-  , id ((x + _) + x) :: Int-  , id ((x + x) + _) :: Int-  , id ((y + _) + _) :: Int-  , head (_:_:_) :: Int-  , head (_:_:xs) :: Int-  , head (_:_:ys) :: Int-  , head (x:x:_) :: Int-  , sort (_:_:_) :: [Int]-  , tail (_:_:_) :: [Int]-  , tail (_:_:xs) :: [Int]-  , _ + id (_ + x) :: Int-  , _ + id (x + _) :: Int-  , _ + (_ + ord _) :: Int-  , _ + (_ + id x) :: Int-  , _ + (_ + head _) :: Int-  , _ + (x + id _) :: Int-  , _ + (ord _ + _) :: Int-  , _ + (id _ + x) :: Int-  , _ + (id x + _) :: Int-  , _ + (head _ + _) :: Int-  , x + id (_ + _) :: Int-  , x + (_ + id _) :: Int-  , x + (id _ + _) :: Int-  , ord _ + (_ + _) :: Int-  , id _ + (_ + x) :: Int-  , id _ + (x + _) :: Int-  , id x + (_ + _) :: Int-  , id (_ + _) + x :: Int-  , id (_ + x) + _ :: Int-  , id (x + _) + _ :: Int-  , head _ + (_ + _) :: Int-  , (_ + _) + ord _ :: Int-  , (_ + _) + id x :: Int-  , (_ + _) + head _ :: Int-  , (_ + x) + id _ :: Int-  , (_ + ord _) + _ :: Int-  , (_ + id _) + x :: Int-  , (_ + id x) + _ :: Int-  , (_ + head _) + _ :: Int-  , (x + _) + id _ :: Int-  , (x + id _) + _ :: Int-  , (ord _ + _) + _ :: Int-  , (id _ + _) + x :: Int-  , (id _ + x) + _ :: Int-  , (id x + _) + _ :: Int-  , (head _ + _) + _ :: Int-  , _:sort (_:_) :: [Int]-  , _:tail (_:_) :: [Int]-  , _:tail (_:xs) :: [Int]-  , _:_:sort _ :: [Int]-  , _:_:tail _ :: [Int]-  , _:_:tail xs :: [Int]-  , _:id _:_ :: [Int]-  , _:id _:xs :: [Int]-  , _:id _:ys :: [Int]-  , _:abs _:_ :: [Int]-  , _:abs _:xs :: [Int]-  , _:negate _:_ :: [Int]-  , _:negate _:xs :: [Int]-  , _:head _:_ :: [Int]-  , x:id x:_ :: [Int]-  , x:head _:_ :: [Int]-  , id _:_:_ :: [Int]-  , id _:_:xs :: [Int]-  , id _:_:ys :: [Int]-  , id x:x:_ :: [Int]-  , abs _:_:_ :: [Int]-  , abs _:_:xs :: [Int]-  , negate _:_:_ :: [Int]-  , negate _:_:xs :: [Int]-  , head _:_:_ :: [Int]-  , head _:x:_ :: [Int]-  , head (_:_):_ :: [Int]-  , head (x:_):_ :: [Int]-  , not (elem _ (_:_)) :: Bool-  , id (_ * (_ + x)) :: Int-  , id (_ * (x + _)) :: Int-  , id (x * (_ + _)) :: Int-  , id ((_ + _) * x) :: Int-  , id ((_ + x) * _) :: Int-  , id ((x + _) * _) :: Int-  , id (_ + _ * x) :: Int-  , id (_ + x * _) :: Int-  , id (x + _ * _) :: Int-  , id (_ * _ + x) :: Int-  , id (_ * x + _) :: Int-  , id (x * _ + _) :: Int-  , head (_:insert _ _) :: Int-  , head (_:(_ ++ _)) :: Int-  , head (x:(_ ++ _)) :: Int-  , head (_ * _:_) :: Int-  , head (_ + _:_) :: Int-  , head (_ + _:xs) :: Int-  , head (insert _ (_:_)) :: Int-  , head (_ ++ (_:_)) :: Int-  , head (_ ++ (x:_)) :: Int-  , head ((_:_) ++ _) :: Int-  , head ((x:_) ++ _) :: Int-  , tail (_:(_ ++ _)) :: [Int]-  , tail (_ + _:_) :: [Int]-  , tail (_ ++ (_:_)) :: [Int]-  , tail ((_:_) ++ _) :: [Int]-  , _ * head (_:_) :: Int-  , head (_:_) * _ :: Int-  , _ + head (_:_) :: Int-  , _ + head (_:xs) :: Int-  , _ + head (_ ++ _) :: Int-  , head (_:_) + _ :: Int-  , head (_:xs) + _ :: Int-  , head (_ ++ _) + _ :: Int-  , elem _ (id _:_) :: Bool-  , elem (id _) (_:_) :: Bool-  , _:tail (_ ++ _) :: [Int]-  , _:insert (id _) _ :: [Int]-  , _:(_ ++ tail _) :: [Int]-  , _:(tail _ ++ _) :: [Int]-  , ord _:(_ ++ _) :: [Int]-  , id _:insert _ _ :: [Int]-  , id _:(_ ++ _) :: [Int]-  , id x:(_ ++ _) :: [Int]-  , id (_ * _):_ :: [Int]-  , id (_ + _):_ :: [Int]-  , id (_ + _):xs :: [Int]-  , abs _:(_ ++ _) :: [Int]-  , abs (_ + _):_ :: [Int]-  , negate _:(_ ++ _) :: [Int]-  , negate (_ + _):_ :: [Int]-  , _ * id _:_ :: [Int]-  , id _ * _:_ :: [Int]-  , _ + _:tail _ :: [Int]-  , _ + id _:_ :: [Int]-  , _ + id _:xs :: [Int]-  , _ + abs _:_ :: [Int]-  , _ + negate _:_ :: [Int]-  , _ + head _:_ :: [Int]-  , id _ + _:_ :: [Int]-  , id _ + _:xs :: [Int]-  , abs _ + _:_ :: [Int]-  , negate _ + _:_ :: [Int]-  , head _ + _:_ :: [Int]-  , insert _ (id _:_) :: [Int]-  , insert (id _) (_:_) :: [Int]-  , _ ++ tail (_:_) :: [Int]-  , _ ++ (_:tail _) :: [Int]-  , _ ++ (ord _:_) :: [Int]-  , _ ++ (id _:_) :: [Int]-  , _ ++ (id x:_) :: [Int]-  , _ ++ (abs _:_) :: [Int]-  , _ ++ (negate _:_) :: [Int]-  , tail _ ++ (_:_) :: [Int]-  , tail (_:_) ++ _ :: [Int]-  , (_:_) ++ tail _ :: [Int]-  , (_:tail _) ++ _ :: [Int]-  , (ord _:_) ++ _ :: [Int]-  , (id _:_) ++ _ :: [Int]-  , (id x:_) ++ _ :: [Int]-  , (abs _:_) ++ _ :: [Int]-  , (negate _:_) ++ _ :: [Int]-  , id (f (id (id (id _)))) :: Int-  , id (id (f (id (id _)))) :: Int-  , id (id (id (f (id _)))) :: Int-  , id (id (id (id (f _)))) :: Int-  , id (id (id (_ * x))) :: Int-  , id (id (id (x * _))) :: Int-  , id (id (id (_ + x))) :: Int-  , id (id (id (_ + y))) :: Int-  , id (id (id (x + _))) :: Int-  , id (id (id (y + _))) :: Int-  , id (id (_ * id x)) :: Int-  , id (id (x * id _)) :: Int-  , id (id (id _ * x)) :: Int-  , id (id (id x * _)) :: Int-  , id (id (_ + id x)) :: Int-  , id (id (_ + id y)) :: Int-  , id (id (x + id _)) :: Int-  , id (id (y + id _)) :: Int-  , id (id (id _ + x)) :: Int-  , id (id (id _ + y)) :: Int-  , id (id (id x + _)) :: Int-  , id (id (id y + _)) :: Int-  , id (_ * id (id x)) :: Int-  , id (x * id (id _)) :: Int-  , id (id _ * id x) :: Int-  , id (id x * id _) :: Int-  , id (id (id _) * x) :: Int-  , id (id (id x) * _) :: Int-  , id (_ + id (id x)) :: Int-  , id (_ + id (id y)) :: Int-  , id (x + id (id _)) :: Int-  , id (y + id (id _)) :: Int-  , id (id _ + id x) :: Int-  , id (id _ + id y) :: Int-  , id (id x + id _) :: Int-  , id (id y + id _) :: Int-  , id (id (id _) + x) :: Int-  , id (id (id _) + y) :: Int-  , id (id (id x) + _) :: Int-  , id (id (id y) + _) :: Int-  , _ + id (id (id x)) :: Int-  , x + id (id (id _)) :: Int-  , id _ + id (id x) :: Int-  , id x + id (id _) :: Int-  , id (id _) + id x :: Int-  , id (id x) + id _ :: Int-  , id (id (id _)) + x :: Int-  , id (id (id x)) + _ :: Int-  , id (id (id _)):_ :: [Int]-  , id (id (id _)):xs :: [Int]-  , id (id (id x)):_ :: [Int]-  , id (id (abs (_ + x))) :: Int-  , id (id (abs (x + _))) :: Int-  , id (id (negate (_ + x))) :: Int-  , id (id (negate (x + _))) :: Int-  , id (id (head (_:_))) :: Int-  , id (id (head (_:xs))) :: Int-  , id (id (head (_:ys))) :: Int-  , id (id (head (x:_))) :: Int-  , id (id (head (x:xs))) :: Int-  , id (id (head (y:_))) :: Int-  , id (id (head (insert _ _))) :: Int-  , id (id (head (_ ++ xs))) :: Int-  , id (id (head (xs ++ _))) :: Int-  , id (id (_ * ord _)) :: Int-  , id (id (_ * head _)) :: Int-  , id (id (ord _ * _)) :: Int-  , id (id (head _ * _)) :: Int-  , id (id (_ + ord _)) :: Int-  , id (id (_ + ord c)) :: Int-  , id (id (_ + abs x)) :: Int-  , id (id (_ + negate x)) :: Int-  , id (id (_ + head _)) :: Int-  , id (id (_ + head xs)) :: Int-  , id (id (x + ord _)) :: Int-  , id (id (x + abs _)) :: Int-  , id (id (x + negate _)) :: Int-  , id (id (x + head _)) :: Int-  , id (id (ord _ + _)) :: Int-  , id (id (ord _ + x)) :: Int-  , id (id (ord c + _)) :: Int-  , id (id (abs _ + x)) :: Int-  , id (id (abs x + _)) :: Int-  , id (id (negate _ + x)) :: Int-  , id (id (negate x + _)) :: Int-  , id (id (head _ + _)) :: Int-  , id (id (head _ + x)) :: Int-  , id (id (head xs + _)) :: Int-  , id (abs (id (_ + x))) :: Int-  , id (abs (id (x + _))) :: Int-  , id (abs (_ + id x)) :: Int-  , id (abs (x + id _)) :: Int-  , id (abs (id _ + x)) :: Int-  , id (abs (id x + _)) :: Int-  , id (negate (id (_ + x))) :: Int-  , id (negate (id (x + _))) :: Int-  , id (negate (_ + id x)) :: Int-  , id (negate (x + id _)) :: Int-  , id (negate (id _ + x)) :: Int-  , id (negate (id x + _)) :: Int-  , id (head (id _:_)) :: Int-  , id (head (id _:xs)) :: Int-  , id (head (id _:ys)) :: Int-  , id (head (id x:_)) :: Int-  , id (head (id x:xs)) :: Int-  , id (head (id y:_)) :: Int-  , id (head (head _:xs)) :: Int-  , id (head (head xs:_)) :: Int-  , id (_ * id (ord _)) :: Int-  , id (_ * id (head _)) :: Int-  , id (ord _ * id _) :: Int-  , id (id _ * ord _) :: Int-  , id (id _ * head _) :: Int-  , id (id (ord _) * _) :: Int-  , id (id (head _) * _) :: Int-  , id (head _ * id _) :: Int-  , id (_ + id (ord _)) :: Int-  , id (_ + id (ord c)) :: Int-  , id (_ + id (abs x)) :: Int-  , id (_ + id (negate x)) :: Int-  , id (_ + id (head _)) :: Int-  , id (_ + id (head xs)) :: Int-  , id (_ + abs (id x)) :: Int-  , id (_ + negate (id x)) :: Int-  , id (_ + (x + 0)) :: Int-  , id (_ + (0 + x)) :: Int-  , id (x + id (ord _)) :: Int-  , id (x + id (abs _)) :: Int-  , id (x + id (negate _)) :: Int-  , id (x + id (head _)) :: Int-  , id (x + abs (id _)) :: Int-  , id (x + negate (id _)) :: Int-  , id (x + (_ + 0)) :: Int-  , id (x + (0 + _)) :: Int-  , id (0 + (_ + x)) :: Int-  , id (0 + (x + _)) :: Int-  , id (ord _ + id _) :: Int-  , id (ord _ + id x) :: Int-  , id (ord c + id _) :: Int-  , id (id _ + ord _) :: Int-  , id (id _ + ord c) :: Int-  , id (id _ + abs x) :: Int-  , id (id _ + negate x) :: Int-  , id (id _ + head _) :: Int-  , id (id _ + head xs) :: Int-  , id (id x + ord _) :: Int-  , id (id x + abs _) :: Int-  , id (id x + negate _) :: Int-  , id (id x + head _) :: Int-  , id (id (ord _) + _) :: Int-  , id (id (ord _) + x) :: Int-  , id (id (ord c) + _) :: Int-  , id (id (abs _) + x) :: Int-  , id (id (abs x) + _) :: Int-  , id (id (negate _) + x) :: Int-  , id (id (negate x) + _) :: Int-  , id (id (head _) + _) :: Int-  , id (id (head _) + x) :: Int-  , id (id (head xs) + _) :: Int-  , id (abs _ + id x) :: Int-  , id (abs x + id _) :: Int-  , id (abs (id _) + x) :: Int-  , id (abs (id x) + _) :: Int-  , id (negate _ + id x) :: Int-  , id (negate x + id _) :: Int-  , id (negate (id _) + x) :: Int-  , id (negate (id x) + _) :: Int-  , id (head _ + id _) :: Int-  , id (head _ + id x) :: Int-  , id (head xs + id _) :: Int-  , id ((_ + x) + 0) :: Int-  , id ((_ + 0) + x) :: Int-  , id ((x + _) + 0) :: Int-  , id ((x + 0) + _) :: Int-  , id ((0 + _) + x) :: Int-  , id ((0 + x) + _) :: Int-  , head [_,x] :: Int-  , head (_:0:_) :: Int-  , head (_:0:xs) :: Int-  , head (_:1:_) :: Int-  , head [x,_] :: Int-  , head (x:0:_) :: Int-  , head (0:_:_) :: Int-  , head (0:_:xs) :: Int-  , head (0:x:_) :: Int-  , head (1:_:_) :: Int-  , head (id (id _):_) :: Int-  , head (id (id _):xs) :: Int-  , head (id (id x):_) :: Int-  , tail (_:0:_) :: [Int]-  , tail (0:_:_) :: [Int]-  , tail (id (id _):_) :: [Int]-  , _ + id (id (ord _)) :: Int-  , _ + id (id (head _)) :: Int-  , ord _ + id (id _) :: Int-  , id _ + id (ord _) :: Int-  , id _ + id (head _) :: Int-  , id (ord _) + id _ :: Int-  , id (id _) + ord _ :: Int-  , id (id _) + head _ :: Int-  , id (id (ord _)) + _ :: Int-  , id (id (head _)) + _ :: Int-  , id (head _) + id _ :: Int-  , head _ + id (id _) :: Int-  , _:tail (0:_) :: [Int]-  , _:0:tail _ :: [Int]-  , [_,ord _] :: [Int]-  , _:ord 'a':_ :: [Int]-  , [_,id x] :: [Int]-  , _:id 0:_ :: [Int]-  , _:id 0:xs :: [Int]-  , _:id 1:_ :: [Int]-  , _:abs 0:_ :: [Int]-  , _:negate 0:_ :: [Int]-  , [_,head _] :: [Int]-  , _:head []:_ :: [Int]-  , [x,id _] :: [Int]-  , x:id 0:_ :: [Int]-  , 0:tail (_:_) :: [Int]-  , 0:_:tail _ :: [Int]-  , 0:ord _:_ :: [Int]-  , 0:id _:_ :: [Int]-  , 0:id _:xs :: [Int]-  , 0:id x:_ :: [Int]-  , 0:abs _:_ :: [Int]-  , 0:negate _:_ :: [Int]-  , 1:id _:_ :: [Int]-  , [ord _,_] :: [Int]-  , ord _:0:_ :: [Int]-  , ord 'a':_:_ :: [Int]-  , [id _,x] :: [Int]-  , id _:0:_ :: [Int]-  , id _:0:xs :: [Int]-  , id _:1:_ :: [Int]-  , [id x,_] :: [Int]-  , id x:0:_ :: [Int]-  , id 0:_:_ :: [Int]-  , id 0:_:xs :: [Int]-  , id 0:x:_ :: [Int]-  , id 1:_:_ :: [Int]-  , id (id _):tail _ :: [Int]-  , id (id (ord _)):_ :: [Int]-  , id (id (abs _)):_ :: [Int]-  , id (id (negate _)):_ :: [Int]-  , id (abs (id _)):_ :: [Int]-  , id (negate (id _)):_ :: [Int]-  , abs _:0:_ :: [Int]-  , abs 0:_:_ :: [Int]-  , abs (id (id _)):_ :: [Int]-  , negate _:0:_ :: [Int]-  , negate 0:_:_ :: [Int]-  , negate (id (id _)):_ :: [Int]-  , [head _,_] :: [Int]-  , head []:_:_ :: [Int]-  , [head (_:_)] :: [Int]-  , head [_]:_ :: [Int]-  , id (abs (head (_:_))) :: Int-  , id (abs (head (_:xs))) :: Int-  , id (abs (head (x:_))) :: Int-  , id (abs (_ + ord _)) :: Int-  , id (abs (_ + head _)) :: Int-  , id (abs (ord _ + _)) :: Int-  , id (abs (head _ + _)) :: Int-  , id (negate (head (_:_))) :: Int-  , id (negate (head (_:xs))) :: Int-  , id (negate (head (x:_))) :: Int-  , id (negate (_ + ord _)) :: Int-  , id (negate (_ + head _)) :: Int-  , id (negate (ord _ + _)) :: Int-  , id (negate (head _ + _)) :: Int-  , id (head (tail (_:_))) :: Int-  , id (head (tail (_:xs))) :: Int-  , id (head (tail (x:_))) :: Int-  , id (head (_:sort _)) :: Int-  , id (head (_:tail _)) :: Int-  , id (head (_:tail xs)) :: Int-  , id (head (x:tail _)) :: Int-  , id (head (ord _:_)) :: Int-  , id (head (ord _:xs)) :: Int-  , id (head (ord c:_)) :: Int-  , id (head (abs _:_)) :: Int-  , id (head (abs _:xs)) :: Int-  , id (head (abs x:_)) :: Int-  , id (head (negate _:_)) :: Int-  , id (head (negate _:xs)) :: Int-  , id (head (negate x:_)) :: Int-  , id (_ + abs (ord _)) :: Int-  , id (_ + abs (head _)) :: Int-  , id (_ + negate (ord _)) :: Int-  , id (_ + negate (head _)) :: Int-  , id (_ + head (tail _)) :: Int-  , id (ord _ + abs _) :: Int-  , id (ord _ + negate _) :: Int-  , id (ord _ + head _) :: Int-  , id (abs _ + ord _) :: Int-  , id (abs _ + head _) :: Int-  , id (abs (ord _) + _) :: Int-  , id (abs (head _) + _) :: Int-  , id (negate _ + ord _) :: Int-  , id (negate _ + head _) :: Int-  , id (negate (ord _) + _) :: Int-  , id (negate (head _) + _) :: Int-  , id (head _ + ord _) :: Int-  , id (head _ + abs _) :: Int-  , id (head _ + negate _) :: Int-  , id (head (tail _) + _) :: Int-  , abs (id (head (_:_))) :: Int-  , abs (head (id _:_)) :: Int-  , negate (id (head (_:_))) :: Int-  , negate (head (id _:_)) :: Int-  , head (tail (id _:_)) :: Int-  , head (_:(_ ++ [])) :: Int-  , head (_:([] ++ _)) :: Int-  , head (id _:tail _) :: Int-  , head (id (ord _):_) :: Int-  , head (id (abs _):_) :: Int-  , head (id (negate _):_) :: Int-  , head (abs (id _):_) :: Int-  , head (negate (id _):_) :: Int-  , head (_ + 0:_) :: Int-  , head (0 + _:_) :: Int-  , head (_ ++ [_]) :: Int-  , head ([] ++ (_:_)) :: Int-  , head ((_:_) ++ []) :: Int-  , head ([_] ++ _) :: Int-  , _ + head (0:_) :: Int-  , 0 + head (_:_) :: Int-  , head (_:_) + 0 :: Int-  , head (0:_) + _ :: Int-  , id _:(_ ++ []) :: [Int]-  , id _:([] ++ _) :: [Int]-  , id (_ + 0):_ :: [Int]-  , id (0 + _):_ :: [Int]-  , _ + id 0:_ :: [Int]-  , 0 + id _:_ :: [Int]-  , id _ + 0:_ :: [Int]-  , id 0 + _:_ :: [Int]-  , _ ++ [id _] :: [Int]-  , [] ++ (id _:_) :: [Int]-  , (id _:_) ++ [] :: [Int]-  , [id _] ++ _ :: [Int]-  , not (_ || (_ || _)) :: Bool-  , not ((_ || _) || _) :: Bool-  , id (_ * (_ * _)) :: Int-  , id ((_ * _) * _) :: Int-  , id (_ + (_ + _)) :: Int-  , id ((_ + _) + _) :: Int-  , abs (_ + (_ + _)) :: Int-  , abs ((_ + _) + _) :: Int-  , negate (_ + (_ + _)) :: Int-  , negate ((_ + _) + _) :: Int-  , head (_ ++ (_ ++ _)) :: Int-  , head ((_ ++ _) ++ _) :: Int-  , _ || not (_ || _) :: Bool-  , _ || (_ || not _) :: Bool-  , _ || (not _ || _) :: Bool-  , not _ || (_ || _) :: Bool-  , not (_ || _) || _ :: Bool-  , (_ || _) || not _ :: Bool-  , (_ || not _) || _ :: Bool-  , (not _ || _) || _ :: Bool-  , _ + id (_ + _) :: Int-  , _ + abs (_ + _) :: Int-  , _ + negate (_ + _) :: Int-  , _ + (_ + id _) :: Int-  , _ + (_ + abs _) :: Int-  , _ + (_ + negate _) :: Int-  , _ + (id _ + _) :: Int-  , _ + (abs _ + _) :: Int-  , _ + (negate _ + _) :: Int-  , id _ + (_ + _) :: Int-  , id (_ + _) + _ :: Int-  , abs _ + (_ + _) :: Int-  , abs (_ + _) + _ :: Int-  , negate _ + (_ + _) :: Int-  , negate (_ + _) + _ :: Int-  , (_ + _) + id _ :: Int-  , (_ + _) + abs _ :: Int-  , (_ + _) + negate _ :: Int-  , (_ + id _) + _ :: Int-  , (_ + abs _) + _ :: Int-  , (_ + negate _) + _ :: Int-  , (id _ + _) + _ :: Int-  , (abs _ + _) + _ :: Int-  , (negate _ + _) + _ :: Int-  , id (_ * (_ + _)) :: Int-  , id ((_ + _) * _) :: Int-  , id (_ + _ * _) :: Int-  , id (_ * _ + _) :: Int-  , _ * id (_ + _) :: Int-  , _ * (_ + id _) :: Int-  , _ * (id _ + _) :: Int-  , id _ * (_ + _) :: Int-  , id (_ + _) * _ :: Int-  , (_ + _) * id _ :: Int-  , (_ + id _) * _ :: Int-  , (id _ + _) * _ :: Int-  , _ + id (_ * _) :: Int-  , _ + _ * id _ :: Int-  , _ + id _ * _ :: Int-  , id _ + _ * _ :: Int-  , id (_ * _) + _ :: Int-  , _ * _ + id _ :: Int-  , _ * id _ + _ :: Int-  , id _ * _ + _ :: Int-  , head _:(_ ++ _) :: [Int]-  , head (_ ++ _):_ :: [Int]-  , _ ++ (head _:_) :: [Int]-  , (head _:_) ++ _ :: [Int]-  , not (not (not (_ || _))) :: Bool-  , not (not (_ || not _)) :: Bool-  , not (not (not _ || _)) :: Bool-  , not (_ || not (not _)) :: Bool-  , not (not _ || not _) :: Bool-  , not (not (not _) || _) :: Bool-  , id (id (id (_ * _))) :: Int-  , id (id (id (_ + _))) :: Int-  , id (id (id (x + x))) :: Int-  , id (id (_ * id _)) :: Int-  , id (id (id _ * _)) :: Int-  , id (id (_ + id _)) :: Int-  , id (id (x + id x)) :: Int-  , id (id (id _ + _)) :: Int-  , id (id (id x + x)) :: Int-  , id (_ * id (id _)) :: Int-  , id (id _ * id _) :: Int-  , id (id (id _) * _) :: Int-  , id (_ + id (id _)) :: Int-  , id (x + id (id x)) :: Int-  , id (id _ + id _) :: Int-  , id (id x + id x) :: Int-  , id (id (id _) + _) :: Int-  , id (id (id x) + x) :: Int-  , _ || not (not (not _)) :: Bool-  , not _ || not (not _) :: Bool-  , not (not _) || not _ :: Bool-  , not (not (not _)) || _ :: Bool-  , _ * id (id (id _)) :: Int-  , id _ * id (id _) :: Int-  , id (id _) * id _ :: Int-  , id (id (id _)) * _ :: Int-  , _ + id (id (id _)) :: Int-  , id _ + id (id _) :: Int-  , id (id _) + id _ :: Int-  , id (id (id _)) + _ :: Int-  , id (id (abs (_ * _))) :: Int-  , id (id (abs (_ + _))) :: Int-  , id (id (negate (_ * _))) :: Int-  , id (id (negate (_ + _))) :: Int-  , id (id (head (_ ++ _))) :: Int-  , id (id (_ * abs _)) :: Int-  , id (id (_ * negate _)) :: Int-  , id (id (abs _ * _)) :: Int-  , id (id (negate _ * _)) :: Int-  , id (id (_ + abs _)) :: Int-  , id (id (_ + negate _)) :: Int-  , id (id (abs _ + _)) :: Int-  , id (id (negate _ + _)) :: Int-  , id (abs (id (_ * _))) :: Int-  , id (abs (id (_ + _))) :: Int-  , id (abs (abs (_ + _))) :: Int-  , id (abs (_ * id _)) :: Int-  , id (abs (id _ * _)) :: Int-  , id (abs (_ + id _)) :: Int-  , id (abs (_ + abs _)) :: Int-  , id (abs (id _ + _)) :: Int-  , id (abs (abs _ + _)) :: Int-  , id (negate (id (_ * _))) :: Int-  , id (negate (id (_ + _))) :: Int-  , id (negate (negate (_ + _))) :: Int-  , id (negate (_ * id _)) :: Int-  , id (negate (id _ * _)) :: Int-  , id (negate (_ + id _)) :: Int-  , id (negate (_ + negate _)) :: Int-  , id (negate (id _ + _)) :: Int-  , id (negate (negate _ + _)) :: Int-  , id (head (head _:_)) :: Int-  , id (_ * id (abs _)) :: Int-  , id (_ * id (negate _)) :: Int-  , id (_ * abs (id _)) :: Int-  , id (_ * negate (id _)) :: Int-  , id (id _ * abs _) :: Int-  , id (id _ * negate _) :: Int-  , id (id (abs _) * _) :: Int-  , id (id (negate _) * _) :: Int-  , id (abs _ * id _) :: Int-  , id (abs (id _) * _) :: Int-  , id (negate _ * id _) :: Int-  , id (negate (id _) * _) :: Int-  , id (_ + id (abs _)) :: Int-  , id (_ + id (negate _)) :: Int-  , id (_ + abs (id _)) :: Int-  , id (_ + abs (abs _)) :: Int-  , id (_ + negate (id _)) :: Int-  , id (_ + negate (negate _)) :: Int-  , id (_ + (_ + 0)) :: Int-  , id (_ + (_ + 1)) :: Int-  , id (_ + (0 + _)) :: Int-  , id (_ + (1 + _)) :: Int-  , id (0 + (_ + _)) :: Int-  , id (1 + (_ + _)) :: Int-  , id (ord _ + ord _) :: Int-  , id (id _ + abs _) :: Int-  , id (id _ + negate _) :: Int-  , id (id (abs _) + _) :: Int-  , id (id (negate _) + _) :: Int-  , id (abs _ + id _) :: Int-  , id (abs _ + abs _) :: Int-  , id (abs (id _) + _) :: Int-  , id (abs (abs _) + _) :: Int-  , id (negate _ + id _) :: Int-  , id (negate _ + negate _) :: Int-  , id (negate (id _) + _) :: Int-  , id (negate (negate _) + _) :: Int-  , id (head _ + head _) :: Int-  , id ((_ + _) + 0) :: Int-  , id ((_ + _) + 1) :: Int-  , id ((_ + 0) + _) :: Int-  , id ((_ + 1) + _) :: Int-  , id ((0 + _) + _) :: Int-  , id ((1 + _) + _) :: Int-  , abs (id (id (_ + _))) :: Int-  , abs (id (_ + id _)) :: Int-  , abs (id (id _ + _)) :: Int-  , abs (_ + id (id _)) :: Int-  , abs (id _ + id _) :: Int-  , abs (id (id _) + _) :: Int-  , negate (id (id (_ + _))) :: Int-  , negate (id (_ + id _)) :: Int-  , negate (id (id _ + _)) :: Int-  , negate (_ + id (id _)) :: Int-  , negate (id _ + id _) :: Int-  , negate (id (id _) + _) :: Int-  , head [_,_] :: Int-  , head [_,_,0] :: Int-  , head (id (head _):_) :: Int-  , tail [_,_] :: [Int]-  , _ + id (id (abs _)) :: Int-  , _ + id (id (negate _)) :: Int-  , _ + id (abs (id _)) :: Int-  , _ + id (negate (id _)) :: Int-  , _ + id (_ + 0) :: Int-  , _ + id (0 + _) :: Int-  , _ + abs (id (id _)) :: Int-  , _ + negate (id (id _)) :: Int-  , _ + (_ + id 0) :: Int-  , _ + (0 + id _) :: Int-  , _ + (id _ + 0) :: Int-  , _ + (id 0 + _) :: Int-  , 0 + id (_ + _) :: Int-  , 0 + (_ + id _) :: Int-  , 0 + (id _ + _) :: Int-  , id _ + id (abs _) :: Int-  , id _ + id (negate _) :: Int-  , id _ + abs (id _) :: Int-  , id _ + negate (id _) :: Int-  , id _ + (_ + 0) :: Int-  , id _ + (0 + _) :: Int-  , id 0 + (_ + _) :: Int-  , id (id _) + abs _ :: Int-  , id (id _) + negate _ :: Int-  , id (id (abs _)) + _ :: Int-  , id (id (negate _)) + _ :: Int-  , id (abs _) + id _ :: Int-  , id (abs (id _)) + _ :: Int-  , id (negate _) + id _ :: Int-  , id (negate (id _)) + _ :: Int-  , id (_ + _) + 0 :: Int-  , id (_ + 0) + _ :: Int-  , id (0 + _) + _ :: Int-  , abs _ + id (id _) :: Int-  , abs (id _) + id _ :: Int-  , abs (id (id _)) + _ :: Int-  , negate _ + id (id _) :: Int-  , negate (id _) + id _ :: Int-  , negate (id (id _)) + _ :: Int-  , (_ + _) + id 0 :: Int-  , (_ + 0) + id _ :: Int-  , (_ + id _) + 0 :: Int-  , (_ + id 0) + _ :: Int-  , (0 + _) + id _ :: Int-  , (0 + id _) + _ :: Int-  , (id _ + _) + 0 :: Int-  , (id _ + 0) + _ :: Int-  , (id 0 + _) + _ :: Int-  , _:tail [_] :: [Int]-  , _:_:tail [] :: [Int]-  , [_,id _] :: [Int]-  , [_,id _,0] :: [Int]-  , [_,abs _] :: [Int]-  , [_,negate _] :: [Int]-  , 0:head _:_ :: [Int]-  , [id _,_] :: [Int]-  , [id _,_,0] :: [Int]-  , id (id (head _)):_ :: [Int]-  , [abs _,_] :: [Int]-  , [negate _,_] :: [Int]-  , head _:0:_ :: [Int]-  , head (0:_):_ :: [Int]-  , id (abs (negate (_ + _))) :: Int-  , id (abs (head (_ ++ _))) :: Int-  , id (abs (_ + negate _)) :: Int-  , id (abs (negate _ + _)) :: Int-  , id (negate (abs (_ + _))) :: Int-  , id (negate (head (_ ++ _))) :: Int-  , id (negate (_ + abs _)) :: Int-  , id (negate (abs _ + _)) :: Int-  , id (head (tail (_ ++ _))) :: Int-  , id (head (_ ++ tail _)) :: Int-  , id (_ * (_ + 0)) :: Int-  , id (_ * (0 + _)) :: Int-  , id (0 * (_ + _)) :: Int-  , id ((_ + _) * 0) :: Int-  , id ((_ + 0) * _) :: Int-  , id ((0 + _) * _) :: Int-  , id (_ + abs (negate _)) :: Int-  , id (_ + negate (abs _)) :: Int-  , id (_ + _ * 0) :: Int-  , id (_ + 0 * _) :: Int-  , id (0 + _ * _) :: Int-  , id (abs _ + negate _) :: Int-  , id (abs (negate _) + _) :: Int-  , id (negate _ + abs _) :: Int-  , id (negate (abs _) + _) :: Int-  , id (_ * _ + 0) :: Int-  , id (_ * 0 + _) :: Int-  , id (0 * _ + _) :: Int-  , head (0:(_ ++ _)) :: Int-  , head [_ + _] :: Int-  , head (_ ++ (0:_)) :: Int-  , head ((0:_) ++ _) :: Int-  , _ + head [_] :: Int-  , head [_] + _ :: Int-  , id 0:(_ ++ _) :: [Int]-  , [id (_ + _)] :: [Int]-  , [_ + id _] :: [Int]-  , [id _ + _] :: [Int]-  , _ ++ (id 0:_) :: [Int]-  , (id 0:_) ++ _ :: [Int]-  , not (not (not (not (not _)))) :: Bool-  , id (id (id (id (id _)))) :: Int-  , id (id (id (id (id x)))) :: Int-  , id (id (id (id (id y)))) :: Int-  , id (id (id (id (ord _)))) :: Int-  , id (id (id (id (ord c)))) :: Int-  , id (id (id (id (abs _)))) :: Int-  , id (id (id (id (abs x)))) :: Int-  , id (id (id (id (negate _)))) :: Int-  , id (id (id (id (negate x)))) :: Int-  , id (id (id (id (head _)))) :: Int-  , id (id (id (id (head xs)))) :: Int-  , id (id (id (abs (id _)))) :: Int-  , id (id (id (abs (id x)))) :: Int-  , id (id (id (abs (abs _)))) :: Int-  , id (id (id (negate (id _)))) :: Int-  , id (id (id (negate (id x)))) :: Int-  , id (id (id (negate (negate _)))) :: Int-  , id (id (abs (id (id _)))) :: Int-  , id (id (abs (id (id x)))) :: Int-  , id (id (abs (id (abs _)))) :: Int-  , id (id (abs (abs (id _)))) :: Int-  , id (id (negate (id (id _)))) :: Int-  , id (id (negate (id (id x)))) :: Int-  , id (id (negate (id (negate _)))) :: Int-  , id (id (negate (negate (id _)))) :: Int-  , id (abs (id (id (id _)))) :: Int-  , id (abs (id (id (id x)))) :: Int-  , id (abs (id (id (abs _)))) :: Int-  , id (abs (id (abs (id _)))) :: Int-  , id (abs (abs (id (id _)))) :: Int-  , id (negate (id (id (id _)))) :: Int-  , id (negate (id (id (id x)))) :: Int-  , id (negate (id (id (negate _)))) :: Int-  , id (negate (id (negate (id _)))) :: Int-  , id (negate (negate (id (id _)))) :: Int-  , abs (id (id (id (id _)))) :: Int-  , negate (id (id (id (id _)))) :: Int-  , id (id (id (abs (ord _)))) :: Int-  , id (id (id (abs (negate _)))) :: Int-  , id (id (id (abs (head _)))) :: Int-  , id (id (id (negate (ord _)))) :: Int-  , id (id (id (negate (abs _)))) :: Int-  , id (id (id (negate (head _)))) :: Int-  , id (id (id (head (tail _)))) :: Int-  , id (id (id (_ * 0))) :: Int-  , id (id (id (0 * _))) :: Int-  , id (id (id (_ + 0))) :: Int-  , id (id (id (_ + 1))) :: Int-  , id (id (id (x + 0))) :: Int-  , id (id (id (0 + _))) :: Int-  , id (id (id (0 + x))) :: Int-  , id (id (id (1 + _))) :: Int-  , id (id (abs (id (ord _)))) :: Int-  , id (id (abs (id (negate _)))) :: Int-  , id (id (abs (id (head _)))) :: Int-  , id (id (abs (negate (id _)))) :: Int-  , id (id (negate (id (ord _)))) :: Int-  , id (id (negate (id (abs _)))) :: Int-  , id (id (negate (id (head _)))) :: Int-  , id (id (negate (abs (id _)))) :: Int-  , id (id (_ * id 0)) :: Int-  , id (id (0 * id _)) :: Int-  , id (id (id _ * 0)) :: Int-  , id (id (id 0 * _)) :: Int-  , id (id (_ + id 0)) :: Int-  , id (id (_ + id 1)) :: Int-  , id (id (x + id 0)) :: Int-  , id (id (0 + id _)) :: Int-  , id (id (0 + id x)) :: Int-  , id (id (1 + id _)) :: Int-  , id (id (id _ + 0)) :: Int-  , id (id (id _ + 1)) :: Int-  , id (id (id x + 0)) :: Int-  , id (id (id 0 + _)) :: Int-  , id (id (id 0 + x)) :: Int-  , id (id (id 1 + _)) :: Int-  , id (abs (id (id (ord _)))) :: Int-  , id (abs (id (id (negate _)))) :: Int-  , id (abs (id (id (head _)))) :: Int-  , id (abs (id (negate (id _)))) :: Int-  , id (abs (negate (id (id _)))) :: Int-  , id (negate (id (id (ord _)))) :: Int-  , id (negate (id (id (abs _)))) :: Int-  , id (negate (id (id (head _)))) :: Int-  , id (negate (id (abs (id _)))) :: Int-  , id (negate (abs (id (id _)))) :: Int-  , id (_ * id (id 0)) :: Int-  , id (0 * id (id _)) :: Int-  , id (id _ * id 0) :: Int-  , id (id 0 * id _) :: Int-  , id (id (id _) * 0) :: Int-  , id (id (id 0) * _) :: Int-  , id (_ + id (id 0)) :: Int-  , id (_ + id (id 1)) :: Int-  , id (_ + (0 + 0)) :: Int-  , id (x + id (id 0)) :: Int-  , id (0 + id (id _)) :: Int-  , id (0 + id (id x)) :: Int-  , id (0 + (_ + 0)) :: Int-  , id (0 + (0 + _)) :: Int-  , id (1 + id (id _)) :: Int-  , id (id _ + id 0) :: Int-  , id (id _ + id 1) :: Int-  , id (id x + id 0) :: Int-  , id (id 0 + id _) :: Int-  , id (id 0 + id x) :: Int-  , id (id 1 + id _) :: Int-  , id (id (id _) + 0) :: Int-  , id (id (id _) + 1) :: Int-  , id (id (id x) + 0) :: Int-  , id (id (id 0) + _) :: Int-  , id (id (id 0) + x) :: Int-  , id (id (id 1) + _) :: Int-  , id ((_ + 0) + 0) :: Int-  , id ((0 + _) + 0) :: Int-  , id ((0 + 0) + _) :: Int-  , head (0:0:_) :: Int-  , _ + id (id (id 0)) :: Int-  , 0 + id (id (id _)) :: Int-  , id _ + id (id 0) :: Int-  , id 0 + id (id _) :: Int-  , id (id _) + id 0 :: Int-  , id (id 0) + id _ :: Int-  , id (id (id _)) + 0 :: Int-  , id (id (id 0)) + _ :: Int-  , 0:id 0:_ :: [Int]-  , id 0:0:_ :: [Int]-  , [id (id (id _))] :: [Int]-  , id (id (id 0)):_ :: [Int]-  , id (id (abs (_ + 0))) :: Int-  , id (id (abs (0 + _))) :: Int-  , id (id (negate (_ + 0))) :: Int-  , id (id (negate (0 + _))) :: Int-  , id (id (head [_])) :: Int-  , id (id (head [_,0])) :: Int-  , id (id (head [x])) :: Int-  , id (id (head (0:_))) :: Int-  , id (id (head (0:xs))) :: Int-  , id (id (head (1:_))) :: Int-  , id (id (head (_ ++ []))) :: Int-  , id (id (head ([] ++ _))) :: Int-  , id (id (_ + ord 'a')) :: Int-  , id (id (_ + abs 0)) :: Int-  , id (id (_ + negate 0)) :: Int-  , id (id (_ + head [])) :: Int-  , id (id (0 + ord _)) :: Int-  , id (id (0 + abs _)) :: Int-  , id (id (0 + negate _)) :: Int-  , id (id (0 + head _)) :: Int-  , id (id (ord _ + 0)) :: Int-  , id (id (ord 'a' + _)) :: Int-  , id (id (abs _ + 0)) :: Int-  , id (id (abs 0 + _)) :: Int-  , id (id (negate _ + 0)) :: Int-  , id (id (negate 0 + _)) :: Int-  , id (id (head _ + 0)) :: Int-  , id (id (head [] + _)) :: Int-  , id (abs (id (_ + 0))) :: Int-  , id (abs (id (0 + _))) :: Int-  , id (abs (_ + id 0)) :: Int-  , id (abs (0 + id _)) :: Int-  , id (abs (id _ + 0)) :: Int-  , id (abs (id 0 + _)) :: Int-  , id (negate (id (_ + 0))) :: Int-  , id (negate (id (0 + _))) :: Int-  , id (negate (_ + id 0)) :: Int-  , id (negate (0 + id _)) :: Int-  , id (negate (id _ + 0)) :: Int-  , id (negate (id 0 + _)) :: Int-  , id (head [id _]) :: Int-  , id (head [id _,0]) :: Int-  , id (head [id x]) :: Int-  , id (head (id 0:_)) :: Int-  , id (head (id 0:xs)) :: Int-  , id (head (id 1:_)) :: Int-  , id (head [head _]) :: Int-  , id (head (head []:_)) :: Int-  , id (_ + id (ord 'a')) :: Int-  , id (_ + id (abs 0)) :: Int-  , id (_ + id (negate 0)) :: Int-  , id (_ + id (head [])) :: Int-  , id (_ + abs (id 0)) :: Int-  , id (_ + negate (id 0)) :: Int-  , id (0 + id (ord _)) :: Int-  , id (0 + id (abs _)) :: Int-  , id (0 + id (negate _)) :: Int-  , id (0 + id (head _)) :: Int-  , id (0 + abs (id _)) :: Int-  , id (0 + negate (id _)) :: Int-  , id (ord _ + id 0) :: Int-  , id (ord 'a' + id _) :: Int-  , id (id _ + ord 'a') :: Int-  , id (id _ + abs 0) :: Int-  , id (id _ + negate 0) :: Int-  , id (id _ + head []) :: Int-  , id (id 0 + ord _) :: Int-  , id (id 0 + abs _) :: Int-  , id (id 0 + negate _) :: Int-  , id (id 0 + head _) :: Int-  , id (id (ord _) + 0) :: Int-  , id (id (ord 'a') + _) :: Int-  , id (id (abs _) + 0) :: Int-  , id (id (abs 0) + _) :: Int-  , id (id (negate _) + 0) :: Int-  , id (id (negate 0) + _) :: Int-  , id (id (head _) + 0) :: Int-  , id (id (head []) + _) :: Int-  , id (abs _ + id 0) :: Int-  , id (abs 0 + id _) :: Int-  , id (abs (id _) + 0) :: Int-  , id (abs (id 0) + _) :: Int-  , id (negate _ + id 0) :: Int-  , id (negate 0 + id _) :: Int-  , id (negate (id _) + 0) :: Int-  , id (negate (id 0) + _) :: Int-  , id (head _ + id 0) :: Int-  , id (head [] + id _) :: Int-  , head [_,0] :: Int-  , head [0,_] :: Int-  , head [id (id _)] :: Int-  , head (id (id 0):_) :: Int-  , [_,id 0] :: [Int]-  , [0,id _] :: [Int]-  , [id _,0] :: [Int]-  , [id 0,_] :: [Int]-  , id (abs (head [_])) :: Int-  , id (abs (head (0:_))) :: Int-  , id (negate (head [_])) :: Int-  , id (negate (head (0:_))) :: Int-  , id (head (tail [_])) :: Int-  , id (head (tail (0:_))) :: Int-  , id (head (_:tail [])) :: Int-  , id (head (0:tail _)) :: Int-  , id (head [ord _]) :: Int-  , id (head (ord 'a':_)) :: Int-  , id (head [abs _]) :: Int-  , id (head (abs 0:_)) :: Int-  , id (head [negate _]) :: Int-  , id (head (negate 0:_)) :: Int-  , id (id (id (id (id 0)))) :: Int-  , id (id (id (id (id 1)))) :: Int-  , id (id (id (id (ord 'a')))) :: Int-  , id (id (id (id (abs 0)))) :: Int-  , id (id (id (id (negate 0)))) :: Int-  , id (id (id (id (head [])))) :: Int-  , id (id (id (abs (id 0)))) :: Int-  , id (id (id (negate (id 0)))) :: Int-  , id (id (id (0 + 0))) :: Int-  , id (id (abs (id (id 0)))) :: Int-  , id (id (negate (id (id 0)))) :: Int-  , id (id (0 + id 0)) :: Int-  , id (id (id 0 + 0)) :: Int-  , id (abs (id (id (id 0)))) :: Int-  , id (negate (id (id (id 0)))) :: Int-  , id (0 + id (id 0)) :: Int-  , id (id 0 + id 0) :: Int-  , id (id (id 0) + 0) :: Int-  , id (id (head [0])) :: Int-  , id (head [id 0]) :: Int-  , _:_:x:_ :: [Int]-  , _:_:x:xs :: [Int]-  , _:_:y:_ :: [Int]-  , _:x:_:_ :: [Int]-  , _:x:_:xs :: [Int]-  , _:x:x:_ :: [Int]-  , _:y:_:_ :: [Int]-  , x:_:_:_ :: [Int]-  , x:_:_:xs :: [Int]-  , x:_:x:_ :: [Int]-  , x:x:_:_ :: [Int]-  , y:_:_:_ :: [Int]-  , _:_:(_ ++ xs) :: [Int]-  , _:_:(xs ++ _) :: [Int]-  , _:x:(_ ++ _) :: [Int]-  , _:_ + x:_ :: [Int]-  , _:x + _:_ :: [Int]-  , _:(_ ++ (_:xs)) :: [Int]-  , _:(_ ++ (x:_)) :: [Int]-  , _:(xs ++ (_:_)) :: [Int]-  , _:((_:_) ++ xs) :: [Int]-  , _:((_:xs) ++ _) :: [Int]-  , _:((x:_) ++ _) :: [Int]-  , x:_:(_ ++ _) :: [Int]-  , x:_ + _:_ :: [Int]-  , x:(_ ++ (_:_)) :: [Int]-  , x:((_:_) ++ _) :: [Int]-  , _ + _:x:_ :: [Int]-  , _ + x:_:_ :: [Int]-  , x + _:_:_ :: [Int]-  , _ ++ (_:_:xs) :: [Int]-  , _ ++ (_:x:_) :: [Int]-  , _ ++ (x:_:_) :: [Int]-  , xs ++ (_:_:_) :: [Int]-  , (_:_) ++ (_:xs) :: [Int]-  , (_:_) ++ (x:_) :: [Int]-  , (_:xs) ++ (_:_) :: [Int]-  , (_:_:_) ++ xs :: [Int]-  , (_:_:xs) ++ _ :: [Int]-  , (_:x:_) ++ _ :: [Int]-  , (x:_) ++ (_:_) :: [Int]-  , (x:_:_) ++ _ :: [Int]-  , _:x:0:_ :: [Int]-  , _:0:x:_ :: [Int]-  , _:id (id x):_ :: [Int]-  , x:_:0:_ :: [Int]-  , x:0:_:_ :: [Int]-  , x:id (id _):_ :: [Int]-  , 0:_:x:_ :: [Int]-  , 0:x:_:_ :: [Int]-  , id _:id x:_ :: [Int]-  , id x:id _:_ :: [Int]-  , id (id _):x:_ :: [Int]-  , id (id x):_:_ :: [Int]-  , id (head (_:x:_)) :: Int-  , id (head (_:x:xs)) :: Int-  , id (head (_:y:_)) :: Int-  , id (head (x:_:_)) :: Int-  , id (head (x:_:xs)) :: Int-  , id (head (y:_:_)) :: Int-  , head (_:ord _:_) :: Int-  , head (_:id x:_) :: Int-  , head (x:id _:_) :: Int-  , head (ord _:_:_) :: Int-  , head (id _:x:_) :: Int-  , head (id x:_:_) :: Int-  , _:id (ord _):_ :: [Int]-  , ord _:id _:_ :: [Int]-  , id _:ord _:_ :: [Int]-  , id (ord _):_:_ :: [Int]-  , id (head (_:(_ ++ xs))) :: Int-  , id (head (_:(xs ++ _))) :: Int-  , id (head (_ + x:_)) :: Int-  , id (head (x + _:_)) :: Int-  , id (head (_ ++ (_:xs))) :: Int-  , id (head (xs ++ (_:_))) :: Int-  , id (head ((_:_) ++ xs)) :: Int-  , id (head ((_:xs) ++ _)) :: Int-  , id (_ + head (x:_)) :: Int-  , id (x + head (_:_)) :: Int-  , id (head (_:_) + x) :: Int-  , id (head (x:_) + _) :: Int-  , _:_:_:_ :: [Int]-  , _:_:_:xs :: [Int]-  , _:_:_:ys :: [Int]-  , elem _ (_:_:_) :: Bool-  , _:_:insert _ _ :: [Int]-  , _:_:(_ ++ _) :: [Int]-  , _:_ * _:_ :: [Int]-  , _:_ + _:_ :: [Int]-  , _:_ + _:xs :: [Int]-  , _:insert _ (_:_) :: [Int]-  , _:(_ ++ (_:_)) :: [Int]-  , _:(_ ++ (_ ++ _)) :: [Int]-  , _:((_:_) ++ _) :: [Int]-  , _:((_ ++ _) ++ _) :: [Int]-  , _ * _:_:_ :: [Int]-  , _ + _:_:_ :: [Int]-  , _ + _:_:xs :: [Int]-  , _ + (_ + _):_ :: [Int]-  , (_ + _) + _:_ :: [Int]-  , insert _ (_:_:_) :: [Int]-  , _ ++ (_:_:_) :: [Int]-  , _ ++ (_:(_ ++ _)) :: [Int]-  , _ ++ (_ ++ (_:_)) :: [Int]-  , _ ++ ((_:_) ++ _) :: [Int]-  , (_:_) ++ (_:_) :: [Int]-  , (_:_) ++ (_ ++ _) :: [Int]-  , (_:_:_) ++ _ :: [Int]-  , (_:(_ ++ _)) ++ _ :: [Int]-  , (_ ++ _) ++ (_:_) :: [Int]-  , (_ ++ (_:_)) ++ _ :: [Int]-  , ((_:_) ++ _) ++ _ :: [Int]-  , _ + _:(_ ++ _) :: [Int]-  , _ ++ (_ + _:_) :: [Int]-  , (_ + _:_) ++ _ :: [Int]-  , id (id (_ + (_ + x))) :: Int-  , id (id (_ + (x + _))) :: Int-  , id (id (x + (_ + _))) :: Int-  , id (id ((_ + _) + x)) :: Int-  , id (id ((_ + x) + _)) :: Int-  , id (id ((x + _) + _)) :: Int-  , id (_ + id (_ + x)) :: Int-  , id (_ + id (x + _)) :: Int-  , id (_ + (_ + id x)) :: Int-  , id (_ + (x + id _)) :: Int-  , id (_ + (id _ + x)) :: Int-  , id (_ + (id x + _)) :: Int-  , id (x + id (_ + _)) :: Int-  , id (x + (_ + id _)) :: Int-  , id (x + (id _ + _)) :: Int-  , id (id _ + (_ + x)) :: Int-  , id (id _ + (x + _)) :: Int-  , id (id x + (_ + _)) :: Int-  , id (id (_ + _) + x) :: Int-  , id (id (_ + x) + _) :: Int-  , id (id (x + _) + _) :: Int-  , id ((_ + _) + id x) :: Int-  , id ((_ + x) + id _) :: Int-  , id ((_ + id _) + x) :: Int-  , id ((_ + id x) + _) :: Int-  , id ((x + _) + id _) :: Int-  , id ((x + id _) + _) :: Int-  , id ((id _ + _) + x) :: Int-  , id ((id _ + x) + _) :: Int-  , id ((id x + _) + _) :: Int-  , head (_:head _:_) :: Int-  , head (head _:_:_) :: Int-  , head (head (_:_):_) :: Int-  , [_,_,x] :: [Int]-  , _:_:0:_ :: [Int]-  , _:_:0:xs :: [Int]-  , _:_:1:_ :: [Int]-  , [_,x,_] :: [Int]-  , _:0:_:_ :: [Int]-  , _:0:_:xs :: [Int]-  , _:1:_:_ :: [Int]-  , _:id (id _):_ :: [Int]-  , _:id (id _):xs :: [Int]-  , [x,_,_] :: [Int]-  , 0:_:_:_ :: [Int]-  , 0:_:_:xs :: [Int]-  , 1:_:_:_ :: [Int]-  , id _:id _:_ :: [Int]-  , id _:id _:xs :: [Int]-  , id (id _):_:_ :: [Int]-  , id (id _):_:xs :: [Int]-  , id (head (_:_:_)) :: Int-  , id (head (_:_:xs)) :: Int-  , id (head (_:_:ys)) :: Int-  , id (head (x:x:_)) :: Int-  , id (_ + (_ + ord _)) :: Int-  , id (_ + (_ + head _)) :: Int-  , id (_ + (ord _ + _)) :: Int-  , id (_ + (head _ + _)) :: Int-  , id (ord _ + (_ + _)) :: Int-  , id (head _ + (_ + _)) :: Int-  , id ((_ + _) + ord _) :: Int-  , id ((_ + _) + head _) :: Int-  , id ((_ + ord _) + _) :: Int-  , id ((_ + head _) + _) :: Int-  , id ((ord _ + _) + _) :: Int-  , id ((head _ + _) + _) :: Int-  , abs (head (_:_:_)) :: Int-  , negate (head (_:_:_)) :: Int-  , head (tail (_:_:_)) :: Int-  , head (_:tail (_:_)) :: Int-  , head (_:_:tail _) :: Int-  , head (_:id _:_) :: Int-  , head (_:id _:xs) :: Int-  , head (_:abs _:_) :: Int-  , head (_:negate _:_) :: Int-  , head (id _:_:_) :: Int-  , head (id _:_:xs) :: Int-  , head (abs _:_:_) :: Int-  , head (negate _:_:_) :: Int-  , tail (_:id _:_) :: [Int]-  , tail (id _:_:_) :: [Int]-  , _:tail (id _:_) :: [Int]-  , _:_:(_ ++ []) :: [Int]-  , [_,_,] ++ _ :: [Int]-  , _:0:(_ ++ _) :: [Int]-  , _:id _:tail _ :: [Int]-  , _:id (abs _):_ :: [Int]-  , _:id (negate _):_ :: [Int]-  , _:id (head _):_ :: [Int]-  , _:abs (id _):_ :: [Int]-  , _:negate (id _):_ :: [Int]-  , _:_ + 0:_ :: [Int]-  , _:0 + _:_ :: [Int]-  , _:(_ ++ [_]) :: [Int]-  , _:(_ ++ (0:_)) :: [Int]-  , _:([] ++ (_:_)) :: [Int]-  , _:((_:_) ++ []) :: [Int]-  , _:([_] ++ _) :: [Int]-  , _:((0:_) ++ _) :: [Int]-  , 0:_:(_ ++ _) :: [Int]-  , 0:_ + _:_ :: [Int]-  , 0:(_ ++ (_:_)) :: [Int]-  , 0:((_:_) ++ _) :: [Int]-  , id _:tail (_:_) :: [Int]-  , id _:_:tail _ :: [Int]-  , id _:abs _:_ :: [Int]-  , id _:negate _:_ :: [Int]-  , id _:head _:_ :: [Int]-  , id (id _):(_ ++ _) :: [Int]-  , id (id (_ + _)):_ :: [Int]-  , id (abs _):_:_ :: [Int]-  , id (negate _):_:_ :: [Int]-  , id (head _):_:_ :: [Int]-  , id (head (_:_)):_ :: [Int]-  , id (_ + id _):_ :: [Int]-  , id (id _ + _):_ :: [Int]-  , abs _:id _:_ :: [Int]-  , abs (id _):_:_ :: [Int]-  , negate _:id _:_ :: [Int]-  , negate (id _):_:_ :: [Int]-  , head _:id _:_ :: [Int]-  , head (id _:_):_ :: [Int]-  , _ + _:0:_ :: [Int]-  , _ + 0:_:_ :: [Int]-  , _ + id (id _):_ :: [Int]-  , 0 + _:_:_ :: [Int]-  , id _ + id _:_ :: [Int]-  , id (id _) + _:_ :: [Int]-  , _ ++ [_,_] :: [Int]-  , _ ++ (_:0:_) :: [Int]-  , _ ++ (0:_:_) :: [Int]-  , _ ++ (id (id _):_) :: [Int]-  , [] ++ (_:_:_) :: [Int]-  , (_:_) ++ [_] :: [Int]-  , (_:_) ++ (0:_) :: [Int]-  , [_] ++ (_:_) :: [Int]-  , (_:_:_) ++ [] :: [Int]-  , [_,_] ++ _ :: [Int]-  , (_:0:_) ++ _ :: [Int]-  , (0:_) ++ (_:_) :: [Int]-  , (0:_:_) ++ _ :: [Int]-  , (id (id _):_) ++ _ :: [Int]-  , id (head (_:insert _ _)) :: Int-  , id (head (_:(_ ++ _))) :: Int-  , id (head (x:(_ ++ _))) :: Int-  , id (head (_ * _:_)) :: Int-  , id (head (_ + _:_)) :: Int-  , id (head (_ + _:xs)) :: Int-  , id (head (_ ++ (_:_))) :: Int-  , id (head (_ ++ (x:_))) :: Int-  , id (head ((_:_) ++ _)) :: Int-  , id (head ((x:_) ++ _)) :: Int-  , id (_ * head (_:_)) :: Int-  , id (head (_:_) * _) :: Int-  , id (_ + head (_:_)) :: Int-  , id (_ + head (_:xs)) :: Int-  , id (_ + head (_ ++ _)) :: Int-  , id (head (_:_) + _) :: Int-  , id (head (_:xs) + _) :: Int-  , id (head (_ ++ _) + _) :: Int-  , head (id _:(_ ++ _)) :: Int-  , head (id (_ + _):_) :: Int-  , head (_ + id _:_) :: Int-  , head (id _ + _:_) :: Int-  , head (_ ++ (id _:_)) :: Int-  , head ((id _:_) ++ _) :: Int-  , _ + id (head (_:_)) :: Int-  , _ + head (id _:_) :: Int-  , id _ + head (_:_) :: Int-  , id (head (_:_)) + _ :: Int-  , head (_:_) + id _ :: Int-  , head (id _:_) + _ :: Int-  , id (id (id (id (_ + x)))) :: Int-  , id (id (id (id (x + _)))) :: Int-  , id (id (id (_ + id x))) :: Int-  , id (id (id (x + id _))) :: Int-  , id (id (id (id _ + x))) :: Int-  , id (id (id (id x + _))) :: Int-  , id (id (_ + id (id x))) :: Int-  , id (id (x + id (id _))) :: Int-  , id (id (id _ + id x)) :: Int-  , id (id (id x + id _)) :: Int-  , id (id (id (id _) + x)) :: Int-  , id (id (id (id x) + _)) :: Int-  , id (_ + id (id (id x))) :: Int-  , id (x + id (id (id _))) :: Int-  , id (id _ + id (id x)) :: Int-  , id (id x + id (id _)) :: Int-  , id (id (id _) + id x) :: Int-  , id (id (id x) + id _) :: Int-  , id (id (id (id _)) + x) :: Int-  , id (id (id (id x)) + _) :: Int-  , _:0:0:_ :: [Int]-  , 0:_:0:_ :: [Int]-  , 0:0:_:_ :: [Int]-  , id (id (id (id _))):_ :: [Int]-  , id (id (id (head (_:_)))) :: Int-  , id (id (id (head (_:xs)))) :: Int-  , id (id (id (head (x:_)))) :: Int-  , id (id (id (_ + ord _))) :: Int-  , id (id (id (_ + head _))) :: Int-  , id (id (id (ord _ + _))) :: Int-  , id (id (id (head _ + _))) :: Int-  , id (id (head (id _:_))) :: Int-  , id (id (head (id _:xs))) :: Int-  , id (id (head (id x:_))) :: Int-  , id (id (_ + id (ord _))) :: Int-  , id (id (_ + id (head _))) :: Int-  , id (id (ord _ + id _)) :: Int-  , id (id (id _ + ord _)) :: Int-  , id (id (id _ + head _)) :: Int-  , id (id (id (ord _) + _)) :: Int-  , id (id (id (head _) + _)) :: Int-  , id (id (head _ + id _)) :: Int-  , id (head (id (id _):_)) :: Int-  , id (head (id (id _):xs)) :: Int-  , id (head (id (id x):_)) :: Int-  , id (_ + id (id (ord _))) :: Int-  , id (_ + id (id (head _))) :: Int-  , id (ord _ + id (id _)) :: Int-  , id (id _ + id (ord _)) :: Int-  , id (id _ + id (head _)) :: Int-  , id (id (ord _) + id _) :: Int-  , id (id (id _) + ord _) :: Int-  , id (id (id _) + head _) :: Int-  , id (id (id (ord _)) + _) :: Int-  , id (id (id (head _)) + _) :: Int-  , id (id (head _) + id _) :: Int-  , id (head _ + id (id _)) :: Int-  , head (id (id (id _)):_) :: Int-  , _:id (id 0):_ :: [Int]-  , 0:id (id _):_ :: [Int]-  , id _:id 0:_ :: [Int]-  , id 0:id _:_ :: [Int]-  , id (id _):0:_ :: [Int]-  , id (id 0):_:_ :: [Int]-  , id (id (abs (head (_:_)))) :: Int-  , id (id (negate (head (_:_)))) :: Int-  , id (id (head (tail (_:_)))) :: Int-  , id (id (head (_:tail _))) :: Int-  , id (id (head (ord _:_))) :: Int-  , id (id (head (abs _:_))) :: Int-  , id (id (head (negate _:_))) :: Int-  , id (abs (id (head (_:_)))) :: Int-  , id (abs (head (id _:_))) :: Int-  , id (negate (id (head (_:_)))) :: Int-  , id (negate (head (id _:_))) :: Int-  , id (head (tail (id _:_))) :: Int-  , id (head [_,x]) :: Int-  , id (head (_:0:_)) :: Int-  , id (head (_:0:xs)) :: Int-  , id (head (_:1:_)) :: Int-  , id (head [x,_]) :: Int-  , id (head (x:0:_)) :: Int-  , id (head (0:_:_)) :: Int-  , id (head (0:_:xs)) :: Int-  , id (head (0:x:_)) :: Int-  , id (head (1:_:_)) :: Int-  , id (head (id _:tail _)) :: Int-  , id (head (id (ord _):_)) :: Int-  , id (head (id (abs _):_)) :: Int-  , id (head (id (negate _):_)) :: Int-  , id (head (abs (id _):_)) :: Int-  , id (head (negate (id _):_)) :: Int-  , head (_:id 0:_) :: Int-  , head (0:id _:_) :: Int-  , head (id _:0:_) :: Int-  , head (id 0:_:_) :: Int-  , id (head (_:(_ ++ []))) :: Int-  , id (head (_:([] ++ _))) :: Int-  , id (head (_ + 0:_)) :: Int-  , id (head (0 + _:_)) :: Int-  , id (head (_ ++ [_])) :: Int-  , id (head ([] ++ (_:_))) :: Int-  , id (head ((_:_) ++ [])) :: Int-  , id (head ([_] ++ _)) :: Int-  , id (_ + head (0:_)) :: Int-  , id (0 + head (_:_)) :: Int-  , id (head (_:_) + 0) :: Int-  , id (head (0:_) + _) :: Int-  , _ + (_ + (_ + _)) :: Int-  , _ + ((_ + _) + _) :: Int-  , (_ + _) + (_ + _) :: Int-  , (_ + (_ + _)) + _ :: Int-  , ((_ + _) + _) + _ :: Int-  , id (id (_ + (_ + _))) :: Int-  , id (id ((_ + _) + _)) :: Int-  , id (_ + id (_ + _)) :: Int-  , id (_ + (_ + id _)) :: Int-  , id (_ + (id _ + _)) :: Int-  , id (id _ + (_ + _)) :: Int-  , id (id (_ + _) + _) :: Int-  , id ((_ + _) + id _) :: Int-  , id ((_ + id _) + _) :: Int-  , id ((id _ + _) + _) :: Int-  , _ + id (id (_ + _)) :: Int-  , _ + id (_ + id _) :: Int-  , _ + id (id _ + _) :: Int-  , _ + (_ + id (id _)) :: Int-  , _ + (id _ + id _) :: Int-  , _ + (id (id _) + _) :: Int-  , id _ + id (_ + _) :: Int-  , id _ + (_ + id _) :: Int-  , id _ + (id _ + _) :: Int-  , id (id _) + (_ + _) :: Int-  , id (id (_ + _)) + _ :: Int-  , id (_ + _) + id _ :: Int-  , id (_ + id _) + _ :: Int-  , id (id _ + _) + _ :: Int-  , (_ + _) + id (id _) :: Int-  , (_ + id _) + id _ :: Int-  , (_ + id (id _)) + _ :: Int-  , (id _ + _) + id _ :: Int-  , (id _ + id _) + _ :: Int-  , (id (id _) + _) + _ :: Int-  , [_,_,_] :: [Int]-  , [_,_,_,0] :: [Int]-  , id (id (_ * (_ + _))) :: Int-  , id (id ((_ + _) * _)) :: Int-  , id (id (_ + _ * _)) :: Int-  , id (id (_ * _ + _)) :: Int-  , id (abs (_ + (_ + _))) :: Int-  , id (abs ((_ + _) + _)) :: Int-  , id (negate (_ + (_ + _))) :: Int-  , id (negate ((_ + _) + _)) :: Int-  , id (head (_ ++ (_ ++ _))) :: Int-  , id (_ * id (_ + _)) :: Int-  , id (_ * (_ + id _)) :: Int-  , id (_ * (id _ + _)) :: Int-  , id (id _ * (_ + _)) :: Int-  , id (id (_ + _) * _) :: Int-  , id ((_ + _) * id _) :: Int-  , id ((_ + id _) * _) :: Int-  , id ((id _ + _) * _) :: Int-  , id (_ + id (_ * _)) :: Int-  , id (_ + abs (_ + _)) :: Int-  , id (_ + negate (_ + _)) :: Int-  , id (_ + _ * id _) :: Int-  , id (_ + id _ * _) :: Int-  , id (_ + (_ + abs _)) :: Int-  , id (_ + (_ + negate _)) :: Int-  , id (_ + (abs _ + _)) :: Int-  , id (_ + (negate _ + _)) :: Int-  , id (id _ + _ * _) :: Int-  , id (id (_ * _) + _) :: Int-  , id (abs _ + (_ + _)) :: Int-  , id (abs (_ + _) + _) :: Int-  , id (negate _ + (_ + _)) :: Int-  , id (negate (_ + _) + _) :: Int-  , id (_ * _ + id _) :: Int-  , id (_ * id _ + _) :: Int-  , id (id _ * _ + _) :: Int-  , id ((_ + _) + abs _) :: Int-  , id ((_ + _) + negate _) :: Int-  , id ((_ + abs _) + _) :: Int-  , id ((_ + negate _) + _) :: Int-  , id ((abs _ + _) + _) :: Int-  , id ((negate _ + _) + _) :: Int-  , [_,_ + _] :: [Int]-  , [_ + _,_] :: [Int]-  , id (id (id (id (_ * _)))) :: Int-  , id (id (id (id (_ + _)))) :: Int-  , id (id (id (_ * id _))) :: Int-  , id (id (id (id _ * _))) :: Int-  , id (id (id (_ + id _))) :: Int-  , id (id (id (id _ + _))) :: Int-  , id (id (_ * id (id _))) :: Int-  , id (id (id _ * id _)) :: Int-  , id (id (id (id _) * _)) :: Int-  , id (id (_ + id (id _))) :: Int-  , id (id (id _ + id _)) :: Int-  , id (id (id (id _) + _)) :: Int-  , id (_ * id (id (id _))) :: Int-  , id (id _ * id (id _)) :: Int-  , id (id (id _) * id _) :: Int-  , id (id (id (id _)) * _) :: Int-  , id (_ + id (id (id _))) :: Int-  , id (id _ + id (id _)) :: Int-  , id (id (id _) + id _) :: Int-  , id (id (id (id _)) + _) :: Int-  , _ + id (id (id (id _))) :: Int-  , id _ + id (id (id _)) :: Int-  , id (id _) + id (id _) :: Int-  , id (id (id _)) + id _ :: Int-  , id (id (id (id _))) + _ :: Int-  , id (id (id (abs (_ + _)))) :: Int-  , id (id (id (negate (_ + _)))) :: Int-  , id (id (id (head (_ ++ _)))) :: Int-  , id (id (id (_ + abs _))) :: Int-  , id (id (id (_ + negate _))) :: Int-  , id (id (id (abs _ + _))) :: Int-  , id (id (id (negate _ + _))) :: Int-  , id (id (abs (id (_ + _)))) :: Int-  , id (id (abs (_ + id _))) :: Int-  , id (id (abs (id _ + _))) :: Int-  , id (id (negate (id (_ + _)))) :: Int-  , id (id (negate (_ + id _))) :: Int-  , id (id (negate (id _ + _))) :: Int-  , id (id (head (head _:_))) :: Int-  , id (id (_ + id (abs _))) :: Int-  , id (id (_ + id (negate _))) :: Int-  , id (id (_ + abs (id _))) :: Int-  , id (id (_ + negate (id _))) :: Int-  , id (id (_ + (_ + 0))) :: Int-  , id (id (_ + (0 + _))) :: Int-  , id (id (0 + (_ + _))) :: Int-  , id (id (id _ + abs _)) :: Int-  , id (id (id _ + negate _)) :: Int-  , id (id (id (abs _) + _)) :: Int-  , id (id (id (negate _) + _)) :: Int-  , id (id (abs _ + id _)) :: Int-  , id (id (abs (id _) + _)) :: Int-  , id (id (negate _ + id _)) :: Int-  , id (id (negate (id _) + _)) :: Int-  , id (id ((_ + _) + 0)) :: Int-  , id (id ((_ + 0) + _)) :: Int-  , id (id ((0 + _) + _)) :: Int-  , id (abs (id (id (_ + _)))) :: Int-  , id (abs (id (_ + id _))) :: Int-  , id (abs (id (id _ + _))) :: Int-  , id (abs (_ + id (id _))) :: Int-  , id (abs (id _ + id _)) :: Int-  , id (abs (id (id _) + _)) :: Int-  , id (negate (id (id (_ + _)))) :: Int-  , id (negate (id (_ + id _))) :: Int-  , id (negate (id (id _ + _))) :: Int-  , id (negate (_ + id (id _))) :: Int-  , id (negate (id _ + id _)) :: Int-  , id (negate (id (id _) + _)) :: Int-  , id (head (id (head _):_)) :: Int-  , id (_ + id (id (abs _))) :: Int-  , id (_ + id (id (negate _))) :: Int-  , id (_ + id (abs (id _))) :: Int-  , id (_ + id (negate (id _))) :: Int-  , id (_ + id (_ + 0)) :: Int-  , id (_ + id (0 + _)) :: Int-  , id (_ + abs (id (id _))) :: Int-  , id (_ + negate (id (id _))) :: Int-  , id (_ + (_ + id 0)) :: Int-  , id (_ + (0 + id _)) :: Int-  , id (_ + (id _ + 0)) :: Int-  , id (_ + (id 0 + _)) :: Int-  , id (0 + id (_ + _)) :: Int-  , id (0 + (_ + id _)) :: Int-  , id (0 + (id _ + _)) :: Int-  , id (id _ + id (abs _)) :: Int-  , id (id _ + id (negate _)) :: Int-  , id (id _ + abs (id _)) :: Int-  , id (id _ + negate (id _)) :: Int-  , id (id _ + (_ + 0)) :: Int-  , id (id _ + (0 + _)) :: Int-  , id (id 0 + (_ + _)) :: Int-  , id (id (id _) + abs _) :: Int-  , id (id (id _) + negate _) :: Int-  , id (id (id (abs _)) + _) :: Int-  , id (id (id (negate _)) + _) :: Int-  , id (id (abs _) + id _) :: Int-  , id (id (abs (id _)) + _) :: Int-  , id (id (negate _) + id _) :: Int-  , id (id (negate (id _)) + _) :: Int-  , id (id (_ + _) + 0) :: Int-  , id (id (_ + 0) + _) :: Int-  , id (id (0 + _) + _) :: Int-  , id (abs _ + id (id _)) :: Int-  , id (abs (id _) + id _) :: Int-  , id (abs (id (id _)) + _) :: Int-  , id (negate _ + id (id _)) :: Int-  , id (negate (id _) + id _) :: Int-  , id (negate (id (id _)) + _) :: Int-  , id ((_ + _) + id 0) :: Int-  , id ((_ + 0) + id _) :: Int-  , id ((_ + id _) + 0) :: Int-  , id ((_ + id 0) + _) :: Int-  , id ((0 + _) + id _) :: Int-  , id ((0 + id _) + _) :: Int-  , id ((id _ + _) + 0) :: Int-  , id ((id _ + 0) + _) :: Int-  , id ((id 0 + _) + _) :: Int-  , [_,_,0] :: [Int]-  , [_,0,_] :: [Int]-  , [_,id (id _)] :: [Int]-  , [0,_,_] :: [Int]-  , [id _,id _] :: [Int]-  , [id (id _),_] :: [Int]-  , id (head [_,_]) :: Int-  , id (head [_,_,0]) :: Int-  , head [_,id _] :: Int-  , head [id _,_] :: Int-  , id (head (0:(_ ++ _))) :: Int-  , id (head [_ + _]) :: Int-  , id (head (_ ++ (0:_))) :: Int-  , id (head ((0:_) ++ _)) :: Int-  , id (_ + head [_]) :: Int-  , id (head [_] + _) :: Int-  , id (id (id (id (id (id _))))) :: Int-  , id (id (id (id (id (id x))))) :: Int-  , id (id (id (id (id (ord _))))) :: Int-  , id (id (id (id (id (abs _))))) :: Int-  , id (id (id (id (id (negate _))))) :: Int-  , id (id (id (id (id (head _))))) :: Int-  , id (id (id (id (abs (id _))))) :: Int-  , id (id (id (id (negate (id _))))) :: Int-  , id (id (id (abs (id (id _))))) :: Int-  , id (id (id (negate (id (id _))))) :: Int-  , id (id (abs (id (id (id _))))) :: Int-  , id (id (negate (id (id (id _))))) :: Int-  , id (abs (id (id (id (id _))))) :: Int-  , id (negate (id (id (id (id _))))) :: Int-  , id (id (id (id (_ + 0)))) :: Int-  , id (id (id (id (0 + _)))) :: Int-  , id (id (id (_ + id 0))) :: Int-  , id (id (id (0 + id _))) :: Int-  , id (id (id (id _ + 0))) :: Int-  , id (id (id (id 0 + _))) :: Int-  , id (id (_ + id (id 0))) :: Int-  , id (id (0 + id (id _))) :: Int-  , id (id (id _ + id 0)) :: Int-  , id (id (id 0 + id _)) :: Int-  , id (id (id (id _) + 0)) :: Int-  , id (id (id (id 0) + _)) :: Int-  , id (_ + id (id (id 0))) :: Int-  , id (0 + id (id (id _))) :: Int-  , id (id _ + id (id 0)) :: Int-  , id (id 0 + id (id _)) :: Int-  , id (id (id _) + id 0) :: Int-  , id (id (id 0) + id _) :: Int-  , id (id (id (id _)) + 0) :: Int-  , id (id (id (id 0)) + _) :: Int-  , id (id (id (head [_]))) :: Int-  , id (id (id (head (0:_)))) :: Int-  , id (id (head [id _])) :: Int-  , id (id (head (id 0:_))) :: Int-  , id (head (0:0:_)) :: Int-  , id (head [id (id _)]) :: Int-  , id (head (id (id 0):_)) :: Int-  , id (head [_,0]) :: Int-  , id (head [0,_]) :: Int-  , id (id (id (id (id (id 0))))) :: Int-  , head (_:_:x:_) :: Int-  , head (_:x:_:_) :: Int-  , head (x:_:_:_) :: Int-  , _:_:ord _:_ :: [Int]-  , _:_:id x:_ :: [Int]-  , _:x:id _:_ :: [Int]-  , _:ord _:_:_ :: [Int]-  , _:id _:x:_ :: [Int]-  , _:id x:_:_ :: [Int]-  , x:_:id _:_ :: [Int]-  , x:id _:_:_ :: [Int]-  , ord _:_:_:_ :: [Int]-  , id _:_:x:_ :: [Int]-  , id _:x:_:_ :: [Int]-  , id x:_:_:_ :: [Int]-  , id (id (head (_:x:_))) :: Int-  , id (id (head (x:_:_))) :: Int-  , id (head (_:id x:_)) :: Int-  , id (head (x:id _:_)) :: Int-  , id (head (id _:x:_)) :: Int-  , id (head (id x:_:_)) :: Int-  , id (head (_:ord _:_)) :: Int-  , id (head (ord _:_:_)) :: Int-  , head (_:_:_:_) :: Int-  , head (_:_:_:xs) :: Int-  , tail (_:_:_:_) :: [Int]-  , _:tail (_:_:_) :: [Int]-  , _:_:tail (_:_) :: [Int]-  , _:_:_:tail _ :: [Int]-  , _:_:id _:_ :: [Int]-  , _:_:id _:xs :: [Int]-  , _:_:abs _:_ :: [Int]-  , _:_:negate _:_ :: [Int]-  , _:_:head _:_ :: [Int]-  , _:id _:_:_ :: [Int]-  , _:id _:_:xs :: [Int]-  , _:abs _:_:_ :: [Int]-  , _:negate _:_:_ :: [Int]-  , _:head _:_:_ :: [Int]-  , _:head (_:_):_ :: [Int]-  , id _:_:_:_ :: [Int]-  , id _:_:_:xs :: [Int]-  , abs _:_:_:_ :: [Int]-  , negate _:_:_:_ :: [Int]-  , head _:_:_:_ :: [Int]-  , head (_:_):_:_ :: [Int]-  , head (_:_:_):_ :: [Int]-  , head (_:_:(_ ++ _)) :: Int-  , head (_:_ + _:_) :: Int-  , head (_:(_ ++ (_:_))) :: Int-  , head (_:((_:_) ++ _)) :: Int-  , head (_ + _:_:_) :: Int-  , head (_ ++ (_:_:_)) :: Int-  , head ((_:_) ++ (_:_)) :: Int-  , head ((_:_:_) ++ _) :: Int-  , _ + head (_:_:_) :: Int-  , head (_:_:_) + _ :: Int-  , _:id _:(_ ++ _) :: [Int]-  , _:id (_ + _):_ :: [Int]-  , _:_ + id _:_ :: [Int]-  , _:id _ + _:_ :: [Int]-  , _:(_ ++ (id _:_)) :: [Int]-  , _:((id _:_) ++ _) :: [Int]-  , id _:_:(_ ++ _) :: [Int]-  , id _:_ + _:_ :: [Int]-  , id _:(_ ++ (_:_)) :: [Int]-  , id _:((_:_) ++ _) :: [Int]-  , id (_ + _):_:_ :: [Int]-  , _ + _:id _:_ :: [Int]-  , _ + id _:_:_ :: [Int]-  , id _ + _:_:_ :: [Int]-  , _ ++ (_:id _:_) :: [Int]-  , _ ++ (id _:_:_) :: [Int]-  , (_:_) ++ (id _:_) :: [Int]-  , (_:id _:_) ++ _ :: [Int]-  , (id _:_) ++ (_:_) :: [Int]-  , (id _:_:_) ++ _ :: [Int]-  , _:id (id (id _)):_ :: [Int]-  , id _:id (id _):_ :: [Int]-  , id (id _):id _:_ :: [Int]-  , id (id (id _)):_:_ :: [Int]-  , id (id (head (_:_:_))) :: Int-  , id (id (head (_:_:xs))) :: Int-  , id (head (_:id _:_)) :: Int-  , id (head (_:id _:xs)) :: Int-  , id (head (_:head _:_)) :: Int-  , id (head (id _:_:_)) :: Int-  , id (head (id _:_:xs)) :: Int-  , id (head (head _:_:_)) :: Int-  , id (head (head (_:_):_)) :: Int-  , head (_:_:0:_) :: Int-  , head (_:0:_:_) :: Int-  , head (_:id (id _):_) :: Int-  , head (0:_:_:_) :: Int-  , head (id _:id _:_) :: Int-  , head (id (id _):_:_) :: Int-  , _:_:id 0:_ :: [Int]-  , _:0:id _:_ :: [Int]-  , _:id _:0:_ :: [Int]-  , _:id 0:_:_ :: [Int]-  , 0:_:id _:_ :: [Int]-  , 0:id _:_:_ :: [Int]-  , id _:_:0:_ :: [Int]-  , id _:0:_:_ :: [Int]-  , id 0:_:_:_ :: [Int]-  , id (id (head (_:(_ ++ _)))) :: Int-  , id (id (head (_ + _:_))) :: Int-  , id (id (head (_ ++ (_:_)))) :: Int-  , id (id (head ((_:_) ++ _))) :: Int-  , id (id (_ + head (_:_))) :: Int-  , id (id (head (_:_) + _)) :: Int-  , id (abs (head (_:_:_))) :: Int-  , id (negate (head (_:_:_))) :: Int-  , id (head (tail (_:_:_))) :: Int-  , id (head (_:tail (_:_))) :: Int-  , id (head (_:_:tail _)) :: Int-  , id (head (_:abs _:_)) :: Int-  , id (head (_:negate _:_)) :: Int-  , id (head (id _:(_ ++ _))) :: Int-  , id (head (id (_ + _):_)) :: Int-  , id (head (abs _:_:_)) :: Int-  , id (head (negate _:_:_)) :: Int-  , id (head (_ + id _:_)) :: Int-  , id (head (id _ + _:_)) :: Int-  , id (head (_ ++ (id _:_))) :: Int-  , id (head ((id _:_) ++ _)) :: Int-  , id (_ + id (head (_:_))) :: Int-  , id (_ + head (id _:_)) :: Int-  , id (id _ + head (_:_)) :: Int-  , id (id (head (_:_)) + _) :: Int-  , id (head (_:_) + id _) :: Int-  , id (head (id _:_) + _) :: Int-  , id (id (id (id (head (_:_))))) :: Int-  , id (id (id (head (id _:_)))) :: Int-  , id (id (head (id (id _):_))) :: Int-  , id (head (id (id (id _)):_)) :: Int-  , id (id (head (_:0:_))) :: Int-  , id (id (head (0:_:_))) :: Int-  , id (head (_:id 0:_)) :: Int-  , id (head (0:id _:_)) :: Int-  , id (head (id _:0:_)) :: Int-  , id (head (id 0:_:_)) :: Int-  , id (_ + (_ + (_ + _))) :: Int-  , id (_ + ((_ + _) + _)) :: Int-  , id ((_ + _) + (_ + _)) :: Int-  , id ((_ + (_ + _)) + _) :: Int-  , id (((_ + _) + _) + _) :: Int-  , id (id (id (_ + (_ + _)))) :: Int-  , id (id (id ((_ + _) + _))) :: Int-  , id (id (_ + id (_ + _))) :: Int-  , id (id (_ + (_ + id _))) :: Int-  , id (id (_ + (id _ + _))) :: Int-  , id (id (id _ + (_ + _))) :: Int-  , id (id (id (_ + _) + _)) :: Int-  , id (id ((_ + _) + id _)) :: Int-  , id (id ((_ + id _) + _)) :: Int-  , id (id ((id _ + _) + _)) :: Int-  , id (_ + id (id (_ + _))) :: Int-  , id (_ + id (_ + id _)) :: Int-  , id (_ + id (id _ + _)) :: Int-  , id (_ + (_ + id (id _))) :: Int-  , id (_ + (id _ + id _)) :: Int-  , id (_ + (id (id _) + _)) :: Int-  , id (id _ + id (_ + _)) :: Int-  , id (id _ + (_ + id _)) :: Int-  , id (id _ + (id _ + _)) :: Int-  , id (id (id _) + (_ + _)) :: Int-  , id (id (id (_ + _)) + _) :: Int-  , id (id (_ + _) + id _) :: Int-  , id (id (_ + id _) + _) :: Int-  , id (id (id _ + _) + _) :: Int-  , id ((_ + _) + id (id _)) :: Int-  , id ((_ + id _) + id _) :: Int-  , id ((_ + id (id _)) + _) :: Int-  , id ((id _ + _) + id _) :: Int-  , id ((id _ + id _) + _) :: Int-  , id ((id (id _) + _) + _) :: Int-  , head [_,_,_] :: Int-  , [_,_,id _] :: [Int]-  , [_,id _,_] :: [Int]-  , [id _,_,_] :: [Int]-  , id (id (id (id (id (_ + _))))) :: Int-  , id (id (id (id (_ + id _)))) :: Int-  , id (id (id (id (id _ + _)))) :: Int-  , id (id (id (_ + id (id _)))) :: Int-  , id (id (id (id _ + id _))) :: Int-  , id (id (id (id (id _) + _))) :: Int-  , id (id (_ + id (id (id _)))) :: Int-  , id (id (id _ + id (id _))) :: Int-  , id (id (id (id _) + id _)) :: Int-  , id (id (id (id (id _)) + _)) :: Int-  , id (_ + id (id (id (id _)))) :: Int-  , id (id _ + id (id (id _))) :: Int-  , id (id (id _) + id (id _)) :: Int-  , id (id (id (id _)) + id _) :: Int-  , id (id (id (id (id _))) + _) :: Int-  , id (id (head [_,_])) :: Int-  , id (head [_,id _]) :: Int-  , id (head [id _,_]) :: Int-  , id (id (id (id (id (id (id _)))))) :: Int-  , _:_:_:x:_ :: [Int]-  , _:_:x:_:_ :: [Int]-  , _:x:_:_:_ :: [Int]-  , x:_:_:_:_ :: [Int]-  , id (head (_:_:x:_)) :: Int-  , id (head (_:x:_:_)) :: Int-  , id (head (x:_:_:_)) :: Int-  , _:_:_:_:_ :: [Int]-  , _:_:_:_:xs :: [Int]-  , _:_:_:(_ ++ _) :: [Int]-  , _:_:_ + _:_ :: [Int]-  , _:_:(_ ++ (_:_)) :: [Int]-  , _:_:((_:_) ++ _) :: [Int]-  , _:_ + _:_:_ :: [Int]-  , _:(_ ++ (_:_:_)) :: [Int]-  , _:((_:_) ++ (_:_)) :: [Int]-  , _:((_:_:_) ++ _) :: [Int]-  , _ + _:_:_:_ :: [Int]-  , _ ++ (_:_:_:_) :: [Int]-  , (_:_) ++ (_:_:_) :: [Int]-  , (_:_:_) ++ (_:_) :: [Int]-  , (_:_:_:_) ++ _ :: [Int]-  , _:_:_:0:_ :: [Int]-  , _:_:0:_:_ :: [Int]-  , _:_:id (id _):_ :: [Int]-  , _:0:_:_:_ :: [Int]-  , _:id _:id _:_ :: [Int]-  , _:id (id _):_:_ :: [Int]-  , 0:_:_:_:_ :: [Int]-  , id _:_:id _:_ :: [Int]-  , id _:id _:_:_ :: [Int]-  , id (id _):_:_:_ :: [Int]-  , id (head (_:_:_:_)) :: Int-  , id (head (_:_:_:xs)) :: Int-  , head (_:_:id _:_) :: Int-  , head (_:id _:_:_) :: Int-  , head (id _:_:_:_) :: Int-  , id (head (_:_:(_ ++ _))) :: Int-  , id (head (_:_ + _:_)) :: Int-  , id (head (_:(_ ++ (_:_)))) :: Int-  , id (head (_:((_:_) ++ _))) :: Int-  , id (head (_ + _:_:_)) :: Int-  , id (head (_ ++ (_:_:_))) :: Int-  , id (head ((_:_) ++ (_:_))) :: Int-  , id (head ((_:_:_) ++ _)) :: Int-  , id (_ + head (_:_:_)) :: Int-  , id (head (_:_:_) + _) :: Int-  , id (id (id (head (_:_:_)))) :: Int-  , id (id (head (_:id _:_))) :: Int-  , id (id (head (id _:_:_))) :: Int-  , id (head (_:id (id _):_)) :: Int-  , id (head (id _:id _:_)) :: Int-  , id (head (id (id _):_:_)) :: Int-  , id (head (_:_:0:_)) :: Int-  , id (head (_:0:_:_)) :: Int-  , id (head (0:_:_:_)) :: Int-  , [_,_,_,_] :: [Int]-  , id (head [_,_,_]) :: Int-  , head (_:_:_:_:_) :: Int-  , _:_:_:id _:_ :: [Int]-  , _:_:id _:_:_ :: [Int]-  , _:id _:_:_:_ :: [Int]-  , id _:_:_:_:_ :: [Int]-  , id (id (head (_:_:_:_))) :: Int-  , id (head (_:_:id _:_)) :: Int-  , id (head (_:id _:_:_)) :: Int-  , id (head (id _:_:_:_)) :: Int-  , _:_:_:_:_:_ :: [Int]-  , id (head (_:_:_:_:_)) :: Int-  ]--sortBy compareLexicographically $ take 5040 $ list  ::  [ Expr ]  =-  [ _ :: Bool-  , p :: Bool-  , q :: Bool-  , r :: Bool-  , p' :: Bool-  , q' :: Bool-  , _ :: Char-  , c :: Char-  , d :: Char-  , e :: Char-  , c' :: Char-  , d' :: Char-  , _ :: Int-  , x :: Int-  , y :: Int-  , z :: Int-  , x' :: Int-  , y' :: Int-  , z' :: Int-  , x'' :: Int-  , _ :: [Int]-  , xs :: [Int]-  , ys :: [Int]-  , zs :: [Int]-  , xs' :: [Int]-  , ys' :: [Int]-  , f :: Int -> Int-  , g :: Int -> Int-  , h :: Int -> Int-  , False :: Bool-  , True :: Bool-  , ' ' :: Char-  , 'A' :: Char-  , 'a' :: Char-  , 'b' :: Char-  , 'c' :: Char-  , 0 :: Int-  , 1 :: Int-  , 2 :: Int-  , 3 :: Int-  , -1 :: Int-  , -2 :: Int-  , -3 :: Int-  , [] :: [Int]-  , [0] :: [Int]-  , [1] :: [Int]-  , [2] :: [Int]-  , [-1] :: [Int]-  , [0,0] :: [Int]-  , [0,1] :: [Int]-  , [1,0] :: [Int]-  , [1,1] :: [Int]-  , [-1,0] :: [Int]-  , [0,-1] :: [Int]-  , [0,0,0] :: [Int]-  , [0,0,1] :: [Int]-  , [0,1,0] :: [Int]-  , [1,0,0] :: [Int]-  , [0,0,0,0] :: [Int]-  , not :: Bool -> Bool-  , id :: Int -> Int-  , abs :: Int -> Int-  , negate :: Int -> Int-  , (&&) :: Bool -> Bool -> Bool-  , (||) :: Bool -> Bool -> Bool-  , (==>) :: Bool -> Bool -> Bool-  , (*) :: Int -> Int -> Int-  , (+) :: Int -> Int -> Int-  , f _ :: Int-  , f x :: Int-  , f y :: Int-  , f z :: Int-  , f 0 :: Int-  , f 1 :: Int-  , f (-1) :: Int-  , f (f _) :: Int-  , f (ord _) :: Int-  , f (ord c) :: Int-  , f (ord 'a') :: Int-  , f (id _) :: Int-  , f (id x) :: Int-  , f (id y) :: Int-  , f (id 0) :: Int-  , f (id 1) :: Int-  , f (id (ord _)) :: Int-  , f (id (id _)) :: Int-  , f (id (id x)) :: Int-  , f (id (id 0)) :: Int-  , f (id (id (id _))) :: Int-  , f (id (abs _)) :: Int-  , f (id (negate _)) :: Int-  , f (id (head _)) :: Int-  , f (id (_ + _)) :: Int-  , f (abs _) :: Int-  , f (abs x) :: Int-  , f (abs 0) :: Int-  , f (abs (id _)) :: Int-  , f (negate _) :: Int-  , f (negate x) :: Int-  , f (negate 0) :: Int-  , f (negate (id _)) :: Int-  , f (head _) :: Int-  , f (head xs) :: Int-  , f (head []) :: Int-  , f (head (_:_)) :: Int-  , f (_ * _) :: Int-  , f (_ + _) :: Int-  , f (_ + x) :: Int-  , f (_ + 0) :: Int-  , f (_ + id _) :: Int-  , f (x + _) :: Int-  , f (0 + _) :: Int-  , f (id _ + _) :: Int-  , g _ :: Int-  , g x :: Int-  , g y :: Int-  , g 0 :: Int-  , g 1 :: Int-  , g (ord _) :: Int-  , g (id _) :: Int-  , g (id x) :: Int-  , g (id 0) :: Int-  , g (id (id _)) :: Int-  , g (abs _) :: Int-  , g (negate _) :: Int-  , g (head _) :: Int-  , g (_ + _) :: Int-  , h _ :: Int-  , h x :: Int-  , h 0 :: Int-  , h (id _) :: Int-  , f' _ :: Int-  , not _ :: Bool-  , not p :: Bool-  , not q :: Bool-  , not r :: Bool-  , not p' :: Bool-  , not False :: Bool-  , not True :: Bool-  , not (not _) :: Bool-  , not (not p) :: Bool-  , not (not q) :: Bool-  , not (not r) :: Bool-  , not (not False) :: Bool-  , not (not True) :: Bool-  , not (not (not _)) :: Bool-  , not (not (not p)) :: Bool-  , not (not (not q)) :: Bool-  , not (not (not False)) :: Bool-  , not (not (not True)) :: Bool-  , not (not (not (not _))) :: Bool-  , not (not (not (not p))) :: Bool-  , not (not (not (not False))) :: Bool-  , not (not (not (not True))) :: Bool-  , not (not (not (not (not _)))) :: Bool-  , not (not (not (_ || _))) :: Bool-  , not (not (odd _)) :: Bool-  , not (not (even _)) :: Bool-  , not (not (_ && _)) :: Bool-  , not (not (_ == _)) :: Bool-  , not (not (_ || _)) :: Bool-  , not (not (_ || p)) :: Bool-  , not (not (_ || False)) :: Bool-  , not (not (_ || True)) :: Bool-  , not (not (_ || not _)) :: Bool-  , not (not (p || _)) :: Bool-  , not (not (False || _)) :: Bool-  , not (not (True || _)) :: Bool-  , not (not (not _ || _)) :: Bool-  , not (not (_ == _)) :: Bool-  , not (not (elem _ _)) :: Bool-  , not (odd _) :: Bool-  , not (odd x) :: Bool-  , not (odd 0) :: Bool-  , not (odd (id _)) :: Bool-  , not (even _) :: Bool-  , not (even x) :: Bool-  , not (even 0) :: Bool-  , not (even (id _)) :: Bool-  , not (_ && _) :: Bool-  , not (_ && p) :: Bool-  , not (_ && False) :: Bool-  , not (_ && True) :: Bool-  , not (_ && not _) :: Bool-  , not (p && _) :: Bool-  , not (False && _) :: Bool-  , not (True && _) :: Bool-  , not (not _ && _) :: Bool-  , not (_ <= _) :: Bool-  , not (_ == _) :: Bool-  , not (_ == p) :: Bool-  , not (_ == False) :: Bool-  , not (_ == True) :: Bool-  , not (_ == not _) :: Bool-  , not (p == _) :: Bool-  , not (False == _) :: Bool-  , not (True == _) :: Bool-  , not (not _ == _) :: Bool-  , not (_ || _) :: Bool-  , not (_ || p) :: Bool-  , not (_ || q) :: Bool-  , not (_ || False) :: Bool-  , not (_ || True) :: Bool-  , not (_ || not _) :: Bool-  , not (_ || not p) :: Bool-  , not (_ || not False) :: Bool-  , not (_ || not True) :: Bool-  , not (_ || not (not _)) :: Bool-  , not (_ || (_ || _)) :: Bool-  , not (p || _) :: Bool-  , not (p || p) :: Bool-  , not (p || False) :: Bool-  , not (p || True) :: Bool-  , not (p || not _) :: Bool-  , not (q || _) :: Bool-  , not (False || _) :: Bool-  , not (False || p) :: Bool-  , not (False || False) :: Bool-  , not (False || True) :: Bool-  , not (False || not _) :: Bool-  , not (True || _) :: Bool-  , not (True || p) :: Bool-  , not (True || False) :: Bool-  , not (True || True) :: Bool-  , not (True || not _) :: Bool-  , not (not _ || _) :: Bool-  , not (not _ || p) :: Bool-  , not (not _ || False) :: Bool-  , not (not _ || True) :: Bool-  , not (not _ || not _) :: Bool-  , not (not p || _) :: Bool-  , not (not False || _) :: Bool-  , not (not True || _) :: Bool-  , not (not (not _) || _) :: Bool-  , not ((_ || _) || _) :: Bool-  , not (_ ==> _) :: Bool-  , not (_ <= _) :: Bool-  , not (_ == _) :: Bool-  , not (_ == x) :: Bool-  , not (_ == 0) :: Bool-  , not (_ == id _) :: Bool-  , not (x == _) :: Bool-  , not (0 == _) :: Bool-  , not (id _ == _) :: Bool-  , not (elem _ _) :: Bool-  , not (elem _ xs) :: Bool-  , not (elem _ []) :: Bool-  , not (elem _ (_:_)) :: Bool-  , not (elem x _) :: Bool-  , not (elem 0 _) :: Bool-  , not (elem (id _) _) :: Bool-  , ord _ :: Int-  , ord c :: Int-  , ord d :: Int-  , ord e :: Int-  , ord c' :: Int-  , ord ' ' :: Int-  , ord 'A' :: Int-  , ord 'a' :: Int-  , ord 'b' :: Int-  , odd _ :: Bool-  , odd x :: Bool-  , odd y :: Bool-  , odd 0 :: Bool-  , odd 1 :: Bool-  , odd (ord _) :: Bool-  , odd (id _) :: Bool-  , odd (id x) :: Bool-  , odd (id 0) :: Bool-  , odd (id (id _)) :: Bool-  , odd (abs _) :: Bool-  , odd (negate _) :: Bool-  , odd (head _) :: Bool-  , odd (_ + _) :: Bool-  , even _ :: Bool-  , even x :: Bool-  , even y :: Bool-  , even 0 :: Bool-  , even 1 :: Bool-  , even (ord _) :: Bool-  , even (id _) :: Bool-  , even (id x) :: Bool-  , even (id 0) :: Bool-  , even (id (id _)) :: Bool-  , even (abs _) :: Bool-  , even (negate _) :: Bool-  , even (head _) :: Bool-  , even (_ + _) :: Bool-  , id _ :: Int-  , id x :: Int-  , id y :: Int-  , id z :: Int-  , id x' :: Int-  , id y' :: Int-  , id z' :: Int-  , id 0 :: Int-  , id 1 :: Int-  , id 2 :: Int-  , id 3 :: Int-  , id (-1) :: Int-  , id (-2) :: Int-  , id (f _) :: Int-  , id (f x) :: Int-  , id (f y) :: Int-  , id (f z) :: Int-  , id (f 0) :: Int-  , id (f 1) :: Int-  , id (f (-1)) :: Int-  , id (f (f _)) :: Int-  , id (f (ord _)) :: Int-  , id (f (ord c)) :: Int-  , id (f (ord 'a')) :: Int-  , id (f (id _)) :: Int-  , id (f (id x)) :: Int-  , id (f (id y)) :: Int-  , id (f (id 0)) :: Int-  , id (f (id 1)) :: Int-  , id (f (id (ord _))) :: Int-  , id (f (id (id _))) :: Int-  , id (f (id (id x))) :: Int-  , id (f (id (id 0))) :: Int-  , id (f (id (id (id _)))) :: Int-  , id (f (id (abs _))) :: Int-  , id (f (id (negate _))) :: Int-  , id (f (id (head _))) :: Int-  , id (f (id (_ + _))) :: Int-  , id (f (abs _)) :: Int-  , id (f (abs x)) :: Int-  , id (f (abs 0)) :: Int-  , id (f (abs (id _))) :: Int-  , id (f (negate _)) :: Int-  , id (f (negate x)) :: Int-  , id (f (negate 0)) :: Int-  , id (f (negate (id _))) :: Int-  , id (f (head _)) :: Int-  , id (f (head xs)) :: Int-  , id (f (head [])) :: Int-  , id (f (head (_:_))) :: Int-  , id (f (_ * _)) :: Int-  , id (f (_ + _)) :: Int-  , id (f (_ + x)) :: Int-  , id (f (_ + 0)) :: Int-  , id (f (_ + id _)) :: Int-  , id (f (x + _)) :: Int-  , id (f (0 + _)) :: Int-  , id (f (id _ + _)) :: Int-  , id (g _) :: Int-  , id (g x) :: Int-  , id (g y) :: Int-  , id (g 0) :: Int-  , id (g 1) :: Int-  , id (g (ord _)) :: Int-  , id (g (id _)) :: Int-  , id (g (id x)) :: Int-  , id (g (id 0)) :: Int-  , id (g (id (id _))) :: Int-  , id (g (abs _)) :: Int-  , id (g (negate _)) :: Int-  , id (g (head _)) :: Int-  , id (g (_ + _)) :: Int-  , id (h _) :: Int-  , id (h x) :: Int-  , id (h 0) :: Int-  , id (h (id _)) :: Int-  , id (f' _) :: Int-  , id (ord _) :: Int-  , id (ord c) :: Int-  , id (ord d) :: Int-  , id (ord e) :: Int-  , id (ord ' ') :: Int-  , id (ord 'a') :: Int-  , id (ord 'b') :: Int-  , id (id _) :: Int-  , id (id x) :: Int-  , id (id y) :: Int-  , id (id z) :: Int-  , id (id x') :: Int-  , id (id y') :: Int-  , id (id 0) :: Int-  , id (id 1) :: Int-  , id (id 2) :: Int-  , id (id (-1)) :: Int-  , id (id (-2)) :: Int-  , id (id (f _)) :: Int-  , id (id (f x)) :: Int-  , id (id (f y)) :: Int-  , id (id (f 0)) :: Int-  , id (id (f 1)) :: Int-  , id (id (f (ord _))) :: Int-  , id (id (f (id _))) :: Int-  , id (id (f (id x))) :: Int-  , id (id (f (id 0))) :: Int-  , id (id (f (id (id _)))) :: Int-  , id (id (f (abs _))) :: Int-  , id (id (f (negate _))) :: Int-  , id (id (f (head _))) :: Int-  , id (id (f (_ + _))) :: Int-  , id (id (g _)) :: Int-  , id (id (g x)) :: Int-  , id (id (g 0)) :: Int-  , id (id (g (id _))) :: Int-  , id (id (h _)) :: Int-  , id (id (ord _)) :: Int-  , id (id (ord c)) :: Int-  , id (id (ord d)) :: Int-  , id (id (ord e)) :: Int-  , id (id (ord ' ')) :: Int-  , id (id (ord 'a')) :: Int-  , id (id (ord 'b')) :: Int-  , id (id (id _)) :: Int-  , id (id (id x)) :: Int-  , id (id (id y)) :: Int-  , id (id (id z)) :: Int-  , id (id (id x')) :: Int-  , id (id (id 0)) :: Int-  , id (id (id 1)) :: Int-  , id (id (id 2)) :: Int-  , id (id (id (-1))) :: Int-  , id (id (id (f _))) :: Int-  , id (id (id (f x))) :: Int-  , id (id (id (f 0))) :: Int-  , id (id (id (f (id _)))) :: Int-  , id (id (id (g _))) :: Int-  , id (id (id (ord _))) :: Int-  , id (id (id (ord c))) :: Int-  , id (id (id (ord d))) :: Int-  , id (id (id (ord ' '))) :: Int-  , id (id (id (ord 'a'))) :: Int-  , id (id (id (id _))) :: Int-  , id (id (id (id x))) :: Int-  , id (id (id (id y))) :: Int-  , id (id (id (id z))) :: Int-  , id (id (id (id 0))) :: Int-  , id (id (id (id 1))) :: Int-  , id (id (id (id (-1)))) :: Int-  , id (id (id (id (f _)))) :: Int-  , id (id (id (id (ord _)))) :: Int-  , id (id (id (id (ord c)))) :: Int-  , id (id (id (id (ord 'a')))) :: Int-  , id (id (id (id (id _)))) :: Int-  , id (id (id (id (id x)))) :: Int-  , id (id (id (id (id y)))) :: Int-  , id (id (id (id (id 0)))) :: Int-  , id (id (id (id (id 1)))) :: Int-  , id (id (id (id (id (ord _))))) :: Int-  , id (id (id (id (id (id _))))) :: Int-  , id (id (id (id (id (id x))))) :: Int-  , id (id (id (id (id (id 0))))) :: Int-  , id (id (id (id (id (id (id _)))))) :: Int-  , id (id (id (id (id (abs _))))) :: Int-  , id (id (id (id (id (negate _))))) :: Int-  , id (id (id (id (id (head _))))) :: Int-  , id (id (id (id (id (_ + _))))) :: Int-  , id (id (id (id (abs _)))) :: Int-  , id (id (id (id (abs x)))) :: Int-  , id (id (id (id (abs 0)))) :: Int-  , id (id (id (id (abs (id _))))) :: Int-  , id (id (id (id (negate _)))) :: Int-  , id (id (id (id (negate x)))) :: Int-  , id (id (id (id (negate 0)))) :: Int-  , id (id (id (id (negate (id _))))) :: Int-  , id (id (id (id (head _)))) :: Int-  , id (id (id (id (head xs)))) :: Int-  , id (id (id (id (head [])))) :: Int-  , id (id (id (id (head (_:_))))) :: Int-  , id (id (id (id (_ * _)))) :: Int-  , id (id (id (id (_ + _)))) :: Int-  , id (id (id (id (_ + x)))) :: Int-  , id (id (id (id (_ + 0)))) :: Int-  , id (id (id (id (_ + id _)))) :: Int-  , id (id (id (id (x + _)))) :: Int-  , id (id (id (id (0 + _)))) :: Int-  , id (id (id (id (id _ + _)))) :: Int-  , id (id (id (abs _))) :: Int-  , id (id (id (abs x))) :: Int-  , id (id (id (abs y))) :: Int-  , id (id (id (abs 0))) :: Int-  , id (id (id (abs 1))) :: Int-  , id (id (id (abs (ord _)))) :: Int-  , id (id (id (abs (id _)))) :: Int-  , id (id (id (abs (id x)))) :: Int-  , id (id (id (abs (id 0)))) :: Int-  , id (id (id (abs (id (id _))))) :: Int-  , id (id (id (abs (abs _)))) :: Int-  , id (id (id (abs (negate _)))) :: Int-  , id (id (id (abs (head _)))) :: Int-  , id (id (id (abs (_ + _)))) :: Int-  , id (id (id (negate _))) :: Int-  , id (id (id (negate x))) :: Int-  , id (id (id (negate y))) :: Int-  , id (id (id (negate 0))) :: Int-  , id (id (id (negate 1))) :: Int-  , id (id (id (negate (ord _)))) :: Int-  , id (id (id (negate (id _)))) :: Int-  , id (id (id (negate (id x)))) :: Int-  , id (id (id (negate (id 0)))) :: Int-  , id (id (id (negate (id (id _))))) :: Int-  , id (id (id (negate (abs _)))) :: Int-  , id (id (id (negate (negate _)))) :: Int-  , id (id (id (negate (head _)))) :: Int-  , id (id (id (negate (_ + _)))) :: Int-  , id (id (id (head _))) :: Int-  , id (id (id (head xs))) :: Int-  , id (id (id (head ys))) :: Int-  , id (id (id (head []))) :: Int-  , id (id (id (head [0]))) :: Int-  , id (id (id (head (tail _)))) :: Int-  , id (id (id (head (_:_)))) :: Int-  , id (id (id (head (_:xs)))) :: Int-  , id (id (id (head [_]))) :: Int-  , id (id (id (head (_:_:_)))) :: Int-  , id (id (id (head (x:_)))) :: Int-  , id (id (id (head (0:_)))) :: Int-  , id (id (id (head (id _:_)))) :: Int-  , id (id (id (head (_ ++ _)))) :: Int-  , id (id (id (_ * _))) :: Int-  , id (id (id (_ * x))) :: Int-  , id (id (id (_ * 0))) :: Int-  , id (id (id (_ * id _))) :: Int-  , id (id (id (x * _))) :: Int-  , id (id (id (0 * _))) :: Int-  , id (id (id (id _ * _))) :: Int-  , id (id (id (_ + _))) :: Int-  , id (id (id (_ + x))) :: Int-  , id (id (id (_ + y))) :: Int-  , id (id (id (_ + 0))) :: Int-  , id (id (id (_ + 1))) :: Int-  , id (id (id (_ + ord _))) :: Int-  , id (id (id (_ + id _))) :: Int-  , id (id (id (_ + id x))) :: Int-  , id (id (id (_ + id 0))) :: Int-  , id (id (id (_ + id (id _)))) :: Int-  , id (id (id (_ + abs _))) :: Int-  , id (id (id (_ + negate _))) :: Int-  , id (id (id (_ + head _))) :: Int-  , id (id (id (_ + (_ + _)))) :: Int-  , id (id (id (x + _))) :: Int-  , id (id (id (x + x))) :: Int-  , id (id (id (x + 0))) :: Int-  , id (id (id (x + id _))) :: Int-  , id (id (id (y + _))) :: Int-  , id (id (id (0 + _))) :: Int-  , id (id (id (0 + x))) :: Int-  , id (id (id (0 + 0))) :: Int-  , id (id (id (0 + id _))) :: Int-  , id (id (id (1 + _))) :: Int-  , id (id (id (ord _ + _))) :: Int-  , id (id (id (id _ + _))) :: Int-  , id (id (id (id _ + x))) :: Int-  , id (id (id (id _ + 0))) :: Int-  , id (id (id (id _ + id _))) :: Int-  , id (id (id (id x + _))) :: Int-  , id (id (id (id 0 + _))) :: Int-  , id (id (id (id (id _) + _))) :: Int-  , id (id (id (abs _ + _))) :: Int-  , id (id (id (negate _ + _))) :: Int-  , id (id (id (head _ + _))) :: Int-  , id (id (id ((_ + _) + _))) :: Int-  , id (id (abs _)) :: Int-  , id (id (abs x)) :: Int-  , id (id (abs y)) :: Int-  , id (id (abs z)) :: Int-  , id (id (abs 0)) :: Int-  , id (id (abs 1)) :: Int-  , id (id (abs (-1))) :: Int-  , id (id (abs (f _))) :: Int-  , id (id (abs (ord _))) :: Int-  , id (id (abs (ord c))) :: Int-  , id (id (abs (ord 'a'))) :: Int-  , id (id (abs (id _))) :: Int-  , id (id (abs (id x))) :: Int-  , id (id (abs (id y))) :: Int-  , id (id (abs (id 0))) :: Int-  , id (id (abs (id 1))) :: Int-  , id (id (abs (id (ord _)))) :: Int-  , id (id (abs (id (id _)))) :: Int-  , id (id (abs (id (id x)))) :: Int-  , id (id (abs (id (id 0)))) :: Int-  , id (id (abs (id (id (id _))))) :: Int-  , id (id (abs (id (abs _)))) :: Int-  , id (id (abs (id (negate _)))) :: Int-  , id (id (abs (id (head _)))) :: Int-  , id (id (abs (id (_ + _)))) :: Int-  , id (id (abs (abs _))) :: Int-  , id (id (abs (abs x))) :: Int-  , id (id (abs (abs 0))) :: Int-  , id (id (abs (abs (id _)))) :: Int-  , id (id (abs (negate _))) :: Int-  , id (id (abs (negate x))) :: Int-  , id (id (abs (negate 0))) :: Int-  , id (id (abs (negate (id _)))) :: Int-  , id (id (abs (head _))) :: Int-  , id (id (abs (head xs))) :: Int-  , id (id (abs (head []))) :: Int-  , id (id (abs (head (_:_)))) :: Int-  , id (id (abs (_ * _))) :: Int-  , id (id (abs (_ + _))) :: Int-  , id (id (abs (_ + x))) :: Int-  , id (id (abs (_ + 0))) :: Int-  , id (id (abs (_ + id _))) :: Int-  , id (id (abs (x + _))) :: Int-  , id (id (abs (0 + _))) :: Int-  , id (id (abs (id _ + _))) :: Int-  , id (id (negate _)) :: Int-  , id (id (negate x)) :: Int-  , id (id (negate y)) :: Int-  , id (id (negate z)) :: Int-  , id (id (negate 0)) :: Int-  , id (id (negate 1)) :: Int-  , id (id (negate (-1))) :: Int-  , id (id (negate (f _))) :: Int-  , id (id (negate (ord _))) :: Int-  , id (id (negate (ord c))) :: Int-  , id (id (negate (ord 'a'))) :: Int-  , id (id (negate (id _))) :: Int-  , id (id (negate (id x))) :: Int-  , id (id (negate (id y))) :: Int-  , id (id (negate (id 0))) :: Int-  , id (id (negate (id 1))) :: Int-  , id (id (negate (id (ord _)))) :: Int-  , id (id (negate (id (id _)))) :: Int-  , id (id (negate (id (id x)))) :: Int-  , id (id (negate (id (id 0)))) :: Int-  , id (id (negate (id (id (id _))))) :: Int-  , id (id (negate (id (abs _)))) :: Int-  , id (id (negate (id (negate _)))) :: Int-  , id (id (negate (id (head _)))) :: Int-  , id (id (negate (id (_ + _)))) :: Int-  , id (id (negate (abs _))) :: Int-  , id (id (negate (abs x))) :: Int-  , id (id (negate (abs 0))) :: Int-  , id (id (negate (abs (id _)))) :: Int-  , id (id (negate (negate _))) :: Int-  , id (id (negate (negate x))) :: Int-  , id (id (negate (negate 0))) :: Int-  , id (id (negate (negate (id _)))) :: Int-  , id (id (negate (head _))) :: Int-  , id (id (negate (head xs))) :: Int-  , id (id (negate (head []))) :: Int-  , id (id (negate (head (_:_)))) :: Int-  , id (id (negate (_ * _))) :: Int-  , id (id (negate (_ + _))) :: Int-  , id (id (negate (_ + x))) :: Int-  , id (id (negate (_ + 0))) :: Int-  , id (id (negate (_ + id _))) :: Int-  , id (id (negate (x + _))) :: Int-  , id (id (negate (0 + _))) :: Int-  , id (id (negate (id _ + _))) :: Int-  , id (id (head _)) :: Int-  , id (id (head xs)) :: Int-  , id (id (head ys)) :: Int-  , id (id (head zs)) :: Int-  , id (id (head [])) :: Int-  , id (id (head [0])) :: Int-  , id (id (head [1])) :: Int-  , id (id (head [0,0])) :: Int-  , id (id (head (sort _))) :: Int-  , id (id (head (tail _))) :: Int-  , id (id (head (tail xs))) :: Int-  , id (id (head (tail []))) :: Int-  , id (id (head (tail (_:_)))) :: Int-  , id (id (head (_:_))) :: Int-  , id (id (head (_:xs))) :: Int-  , id (id (head (_:ys))) :: Int-  , id (id (head [_])) :: Int-  , id (id (head [_,0])) :: Int-  , id (id (head (_:tail _))) :: Int-  , id (id (head (_:_:_))) :: Int-  , id (id (head (_:_:xs))) :: Int-  , id (id (head [_,_])) :: Int-  , id (id (head (_:_:_:_))) :: Int-  , id (id (head (_:x:_))) :: Int-  , id (id (head (_:0:_))) :: Int-  , id (id (head (_:id _:_))) :: Int-  , id (id (head (_:(_ ++ _)))) :: Int-  , id (id (head (x:_))) :: Int-  , id (id (head (x:xs))) :: Int-  , id (id (head [x])) :: Int-  , id (id (head (x:_:_))) :: Int-  , id (id (head (y:_))) :: Int-  , id (id (head (0:_))) :: Int-  , id (id (head (0:xs))) :: Int-  , id (id (head [0])) :: Int-  , id (id (head (0:_:_))) :: Int-  , id (id (head (1:_))) :: Int-  , id (id (head (ord _:_))) :: Int-  , id (id (head (id _:_))) :: Int-  , id (id (head (id _:xs))) :: Int-  , id (id (head [id _])) :: Int-  , id (id (head (id _:_:_))) :: Int-  , id (id (head (id x:_))) :: Int-  , id (id (head (id 0:_))) :: Int-  , id (id (head (id (id _):_))) :: Int-  , id (id (head (abs _:_))) :: Int-  , id (id (head (negate _:_))) :: Int-  , id (id (head (head _:_))) :: Int-  , id (id (head (_ + _:_))) :: Int-  , id (id (head (insert _ _))) :: Int-  , id (id (head (_ ++ _))) :: Int-  , id (id (head (_ ++ xs))) :: Int-  , id (id (head (_ ++ []))) :: Int-  , id (id (head (_ ++ (_:_)))) :: Int-  , id (id (head (xs ++ _))) :: Int-  , id (id (head ([] ++ _))) :: Int-  , id (id (head ((_:_) ++ _))) :: Int-  , id (id (_ * _)) :: Int-  , id (id (_ * x)) :: Int-  , id (id (_ * y)) :: Int-  , id (id (_ * 0)) :: Int-  , id (id (_ * 1)) :: Int-  , id (id (_ * ord _)) :: Int-  , id (id (_ * id _)) :: Int-  , id (id (_ * id x)) :: Int-  , id (id (_ * id 0)) :: Int-  , id (id (_ * id (id _))) :: Int-  , id (id (_ * abs _)) :: Int-  , id (id (_ * negate _)) :: Int-  , id (id (_ * head _)) :: Int-  , id (id (_ * (_ + _))) :: Int-  , id (id (x * _)) :: Int-  , id (id (x * x)) :: Int-  , id (id (x * 0)) :: Int-  , id (id (x * id _)) :: Int-  , id (id (y * _)) :: Int-  , id (id (0 * _)) :: Int-  , id (id (0 * x)) :: Int-  , id (id (0 * 0)) :: Int-  , id (id (0 * id _)) :: Int-  , id (id (1 * _)) :: Int-  , id (id (ord _ * _)) :: Int-  , id (id (id _ * _)) :: Int-  , id (id (id _ * x)) :: Int-  , id (id (id _ * 0)) :: Int-  , id (id (id _ * id _)) :: Int-  , id (id (id x * _)) :: Int-  , id (id (id 0 * _)) :: Int-  , id (id (id (id _) * _)) :: Int-  , id (id (abs _ * _)) :: Int-  , id (id (negate _ * _)) :: Int-  , id (id (head _ * _)) :: Int-  , id (id ((_ + _) * _)) :: Int-  , id (id (_ + _)) :: Int-  , id (id (_ + x)) :: Int-  , id (id (_ + y)) :: Int-  , id (id (_ + z)) :: Int-  , id (id (_ + 0)) :: Int-  , id (id (_ + 1)) :: Int-  , id (id (_ + (-1))) :: Int-  , id (id (_ + f _)) :: Int-  , id (id (_ + ord _)) :: Int-  , id (id (_ + ord c)) :: Int-  , id (id (_ + ord 'a')) :: Int-  , id (id (_ + id _)) :: Int-  , id (id (_ + id x)) :: Int-  , id (id (_ + id y)) :: Int-  , id (id (_ + id 0)) :: Int-  , id (id (_ + id 1)) :: Int-  , id (id (_ + id (ord _))) :: Int-  , id (id (_ + id (id _))) :: Int-  , id (id (_ + id (id x))) :: Int-  , id (id (_ + id (id 0))) :: Int-  , id (id (_ + id (id (id _)))) :: Int-  , id (id (_ + id (abs _))) :: Int-  , id (id (_ + id (negate _))) :: Int-  , id (id (_ + id (head _))) :: Int-  , id (id (_ + id (_ + _))) :: Int-  , id (id (_ + abs _)) :: Int-  , id (id (_ + abs x)) :: Int-  , id (id (_ + abs 0)) :: Int-  , id (id (_ + abs (id _))) :: Int-  , id (id (_ + negate _)) :: Int-  , id (id (_ + negate x)) :: Int-  , id (id (_ + negate 0)) :: Int-  , id (id (_ + negate (id _))) :: Int-  , id (id (_ + head _)) :: Int-  , id (id (_ + head xs)) :: Int-  , id (id (_ + head [])) :: Int-  , id (id (_ + head (_:_))) :: Int-  , id (id (_ + _ * _)) :: Int-  , id (id (_ + (_ + _))) :: Int-  , id (id (_ + (_ + x))) :: Int-  , id (id (_ + (_ + 0))) :: Int-  , id (id (_ + (_ + id _))) :: Int-  , id (id (_ + (x + _))) :: Int-  , id (id (_ + (0 + _))) :: Int-  , id (id (_ + (id _ + _))) :: Int-  , id (id (x + _)) :: Int-  , id (id (x + x)) :: Int-  , id (id (x + y)) :: Int-  , id (id (x + 0)) :: Int-  , id (id (x + 1)) :: Int-  , id (id (x + ord _)) :: Int-  , id (id (x + id _)) :: Int-  , id (id (x + id x)) :: Int-  , id (id (x + id 0)) :: Int-  , id (id (x + id (id _))) :: Int-  , id (id (x + abs _)) :: Int-  , id (id (x + negate _)) :: Int-  , id (id (x + head _)) :: Int-  , id (id (x + (_ + _))) :: Int-  , id (id (y + _)) :: Int-  , id (id (y + x)) :: Int-  , id (id (y + 0)) :: Int-  , id (id (y + id _)) :: Int-  , id (id (z + _)) :: Int-  , id (id (0 + _)) :: Int-  , id (id (0 + x)) :: Int-  , id (id (0 + y)) :: Int-  , id (id (0 + 0)) :: Int-  , id (id (0 + 1)) :: Int-  , id (id (0 + ord _)) :: Int-  , id (id (0 + id _)) :: Int-  , id (id (0 + id x)) :: Int-  , id (id (0 + id 0)) :: Int-  , id (id (0 + id (id _))) :: Int-  , id (id (0 + abs _)) :: Int-  , id (id (0 + negate _)) :: Int-  , id (id (0 + head _)) :: Int-  , id (id (0 + (_ + _))) :: Int-  , id (id (1 + _)) :: Int-  , id (id (1 + x)) :: Int-  , id (id (1 + 0)) :: Int-  , id (id (1 + id _)) :: Int-  , id (id ((-1) + _)) :: Int-  , id (id (f _ + _)) :: Int-  , id (id (ord _ + _)) :: Int-  , id (id (ord _ + x)) :: Int-  , id (id (ord _ + 0)) :: Int-  , id (id (ord _ + id _)) :: Int-  , id (id (ord c + _)) :: Int-  , id (id (ord 'a' + _)) :: Int-  , id (id (id _ + _)) :: Int-  , id (id (id _ + x)) :: Int-  , id (id (id _ + y)) :: Int-  , id (id (id _ + 0)) :: Int-  , id (id (id _ + 1)) :: Int-  , id (id (id _ + ord _)) :: Int-  , id (id (id _ + id _)) :: Int-  , id (id (id _ + id x)) :: Int-  , id (id (id _ + id 0)) :: Int-  , id (id (id _ + id (id _))) :: Int-  , id (id (id _ + abs _)) :: Int-  , id (id (id _ + negate _)) :: Int-  , id (id (id _ + head _)) :: Int-  , id (id (id _ + (_ + _))) :: Int-  , id (id (id x + _)) :: Int-  , id (id (id x + x)) :: Int-  , id (id (id x + 0)) :: Int-  , id (id (id x + id _)) :: Int-  , id (id (id y + _)) :: Int-  , id (id (id 0 + _)) :: Int-  , id (id (id 0 + x)) :: Int-  , id (id (id 0 + 0)) :: Int-  , id (id (id 0 + id _)) :: Int-  , id (id (id 1 + _)) :: Int-  , id (id (id (ord _) + _)) :: Int-  , id (id (id (id _) + _)) :: Int-  , id (id (id (id _) + x)) :: Int-  , id (id (id (id _) + 0)) :: Int-  , id (id (id (id _) + id _)) :: Int-  , id (id (id (id x) + _)) :: Int-  , id (id (id (id 0) + _)) :: Int-  , id (id (id (id (id _)) + _)) :: Int-  , id (id (id (abs _) + _)) :: Int-  , id (id (id (negate _) + _)) :: Int-  , id (id (id (head _) + _)) :: Int-  , id (id (id (_ + _) + _)) :: Int-  , id (id (abs _ + _)) :: Int-  , id (id (abs _ + x)) :: Int-  , id (id (abs _ + 0)) :: Int-  , id (id (abs _ + id _)) :: Int-  , id (id (abs x + _)) :: Int-  , id (id (abs 0 + _)) :: Int-  , id (id (abs (id _) + _)) :: Int-  , id (id (negate _ + _)) :: Int-  , id (id (negate _ + x)) :: Int-  , id (id (negate _ + 0)) :: Int-  , id (id (negate _ + id _)) :: Int-  , id (id (negate x + _)) :: Int-  , id (id (negate 0 + _)) :: Int-  , id (id (negate (id _) + _)) :: Int-  , id (id (head _ + _)) :: Int-  , id (id (head _ + x)) :: Int-  , id (id (head _ + 0)) :: Int-  , id (id (head _ + id _)) :: Int-  , id (id (head xs + _)) :: Int-  , id (id (head [] + _)) :: Int-  , id (id (head (_:_) + _)) :: Int-  , id (id (_ * _ + _)) :: Int-  , id (id ((_ + _) + _)) :: Int-  , id (id ((_ + _) + x)) :: Int-  , id (id ((_ + _) + 0)) :: Int-  , id (id ((_ + _) + id _)) :: Int-  , id (id ((_ + x) + _)) :: Int-  , id (id ((_ + 0) + _)) :: Int-  , id (id ((_ + id _) + _)) :: Int-  , id (id ((x + _) + _)) :: Int-  , id (id ((0 + _) + _)) :: Int-  , id (id ((id _ + _) + _)) :: Int-  , id (abs _) :: Int-  , id (abs x) :: Int-  , id (abs y) :: Int-  , id (abs z) :: Int-  , id (abs x') :: Int-  , id (abs 0) :: Int-  , id (abs 1) :: Int-  , id (abs 2) :: Int-  , id (abs (-1)) :: Int-  , id (abs (f _)) :: Int-  , id (abs (f x)) :: Int-  , id (abs (f 0)) :: Int-  , id (abs (f (id _))) :: Int-  , id (abs (g _)) :: Int-  , id (abs (ord _)) :: Int-  , id (abs (ord c)) :: Int-  , id (abs (ord d)) :: Int-  , id (abs (ord ' ')) :: Int-  , id (abs (ord 'a')) :: Int-  , id (abs (id _)) :: Int-  , id (abs (id x)) :: Int-  , id (abs (id y)) :: Int-  , id (abs (id z)) :: Int-  , id (abs (id 0)) :: Int-  , id (abs (id 1)) :: Int-  , id (abs (id (-1))) :: Int-  , id (abs (id (f _))) :: Int-  , id (abs (id (ord _))) :: Int-  , id (abs (id (ord c))) :: Int-  , id (abs (id (ord 'a'))) :: Int-  , id (abs (id (id _))) :: Int-  , id (abs (id (id x))) :: Int-  , id (abs (id (id y))) :: Int-  , id (abs (id (id 0))) :: Int-  , id (abs (id (id 1))) :: Int-  , id (abs (id (id (ord _)))) :: Int-  , id (abs (id (id (id _)))) :: Int-  , id (abs (id (id (id x)))) :: Int-  , id (abs (id (id (id 0)))) :: Int-  , id (abs (id (id (id (id _))))) :: Int-  , id (abs (id (id (abs _)))) :: Int-  , id (abs (id (id (negate _)))) :: Int-  , id (abs (id (id (head _)))) :: Int-  , id (abs (id (id (_ + _)))) :: Int-  , id (abs (id (abs _))) :: Int-  , id (abs (id (abs x))) :: Int-  , id (abs (id (abs 0))) :: Int-  , id (abs (id (abs (id _)))) :: Int-  , id (abs (id (negate _))) :: Int-  , id (abs (id (negate x))) :: Int-  , id (abs (id (negate 0))) :: Int-  , id (abs (id (negate (id _)))) :: Int-  , id (abs (id (head _))) :: Int-  , id (abs (id (head xs))) :: Int-  , id (abs (id (head []))) :: Int-  , id (abs (id (head (_:_)))) :: Int-  , id (abs (id (_ * _))) :: Int-  , id (abs (id (_ + _))) :: Int-  , id (abs (id (_ + x))) :: Int-  , id (abs (id (_ + 0))) :: Int-  , id (abs (id (_ + id _))) :: Int-  , id (abs (id (x + _))) :: Int-  , id (abs (id (0 + _))) :: Int-  , id (abs (id (id _ + _))) :: Int-  , id (abs (abs _)) :: Int-  , id (abs (abs x)) :: Int-  , id (abs (abs y)) :: Int-  , id (abs (abs 0)) :: Int-  , id (abs (abs 1)) :: Int-  , id (abs (abs (ord _))) :: Int-  , id (abs (abs (id _))) :: Int-  , id (abs (abs (id x))) :: Int-  , id (abs (abs (id 0))) :: Int-  , id (abs (abs (id (id _)))) :: Int-  , id (abs (abs (abs _))) :: Int-  , id (abs (abs (negate _))) :: Int-  , id (abs (abs (head _))) :: Int-  , id (abs (abs (_ + _))) :: Int-  , id (abs (negate _)) :: Int-  , id (abs (negate x)) :: Int-  , id (abs (negate y)) :: Int-  , id (abs (negate 0)) :: Int-  , id (abs (negate 1)) :: Int-  , id (abs (negate (ord _))) :: Int-  , id (abs (negate (id _))) :: Int-  , id (abs (negate (id x))) :: Int-  , id (abs (negate (id 0))) :: Int-  , id (abs (negate (id (id _)))) :: Int-  , id (abs (negate (abs _))) :: Int-  , id (abs (negate (negate _))) :: Int-  , id (abs (negate (head _))) :: Int-  , id (abs (negate (_ + _))) :: Int-  , id (abs (head _)) :: Int-  , id (abs (head xs)) :: Int-  , id (abs (head ys)) :: Int-  , id (abs (head [])) :: Int-  , id (abs (head [0])) :: Int-  , id (abs (head (tail _))) :: Int-  , id (abs (head (_:_))) :: Int-  , id (abs (head (_:xs))) :: Int-  , id (abs (head [_])) :: Int-  , id (abs (head (_:_:_))) :: Int-  , id (abs (head (x:_))) :: Int-  , id (abs (head (0:_))) :: Int-  , id (abs (head (id _:_))) :: Int-  , id (abs (head (_ ++ _))) :: Int-  , id (abs (_ * _)) :: Int-  , id (abs (_ * x)) :: Int-  , id (abs (_ * 0)) :: Int-  , id (abs (_ * id _)) :: Int-  , id (abs (x * _)) :: Int-  , id (abs (0 * _)) :: Int-  , id (abs (id _ * _)) :: Int-  , id (abs (_ + _)) :: Int-  , id (abs (_ + x)) :: Int-  , id (abs (_ + y)) :: Int-  , id (abs (_ + 0)) :: Int-  , id (abs (_ + 1)) :: Int-  , id (abs (_ + ord _)) :: Int-  , id (abs (_ + id _)) :: Int-  , id (abs (_ + id x)) :: Int-  , id (abs (_ + id 0)) :: Int-  , id (abs (_ + id (id _))) :: Int-  , id (abs (_ + abs _)) :: Int-  , id (abs (_ + negate _)) :: Int-  , id (abs (_ + head _)) :: Int-  , id (abs (_ + (_ + _))) :: Int-  , id (abs (x + _)) :: Int-  , id (abs (x + x)) :: Int-  , id (abs (x + 0)) :: Int-  , id (abs (x + id _)) :: Int-  , id (abs (y + _)) :: Int-  , id (abs (0 + _)) :: Int-  , id (abs (0 + x)) :: Int-  , id (abs (0 + 0)) :: Int-  , id (abs (0 + id _)) :: Int-  , id (abs (1 + _)) :: Int-  , id (abs (ord _ + _)) :: Int-  , id (abs (id _ + _)) :: Int-  , id (abs (id _ + x)) :: Int-  , id (abs (id _ + 0)) :: Int-  , id (abs (id _ + id _)) :: Int-  , id (abs (id x + _)) :: Int-  , id (abs (id 0 + _)) :: Int-  , id (abs (id (id _) + _)) :: Int-  , id (abs (abs _ + _)) :: Int-  , id (abs (negate _ + _)) :: Int-  , id (abs (head _ + _)) :: Int-  , id (abs ((_ + _) + _)) :: Int-  , id (negate _) :: Int-  , id (negate x) :: Int-  , id (negate y) :: Int-  , id (negate z) :: Int-  , id (negate x') :: Int-  , id (negate 0) :: Int-  , id (negate 1) :: Int-  , id (negate 2) :: Int-  , id (negate (-1)) :: Int-  , id (negate (f _)) :: Int-  , id (negate (f x)) :: Int-  , id (negate (f 0)) :: Int-  , id (negate (f (id _))) :: Int-  , id (negate (g _)) :: Int-  , id (negate (ord _)) :: Int-  , id (negate (ord c)) :: Int-  , id (negate (ord d)) :: Int-  , id (negate (ord ' ')) :: Int-  , id (negate (ord 'a')) :: Int-  , id (negate (id _)) :: Int-  , id (negate (id x)) :: Int-  , id (negate (id y)) :: Int-  , id (negate (id z)) :: Int-  , id (negate (id 0)) :: Int-  , id (negate (id 1)) :: Int-  , id (negate (id (-1))) :: Int-  , id (negate (id (f _))) :: Int-  , id (negate (id (ord _))) :: Int-  , id (negate (id (ord c))) :: Int-  , id (negate (id (ord 'a'))) :: Int-  , id (negate (id (id _))) :: Int-  , id (negate (id (id x))) :: Int-  , id (negate (id (id y))) :: Int-  , id (negate (id (id 0))) :: Int-  , id (negate (id (id 1))) :: Int-  , id (negate (id (id (ord _)))) :: Int-  , id (negate (id (id (id _)))) :: Int-  , id (negate (id (id (id x)))) :: Int-  , id (negate (id (id (id 0)))) :: Int-  , id (negate (id (id (id (id _))))) :: Int-  , id (negate (id (id (abs _)))) :: Int-  , id (negate (id (id (negate _)))) :: Int-  , id (negate (id (id (head _)))) :: Int-  , id (negate (id (id (_ + _)))) :: Int-  , id (negate (id (abs _))) :: Int-  , id (negate (id (abs x))) :: Int-  , id (negate (id (abs 0))) :: Int-  , id (negate (id (abs (id _)))) :: Int-  , id (negate (id (negate _))) :: Int-  , id (negate (id (negate x))) :: Int-  , id (negate (id (negate 0))) :: Int-  , id (negate (id (negate (id _)))) :: Int-  , id (negate (id (head _))) :: Int-  , id (negate (id (head xs))) :: Int-  , id (negate (id (head []))) :: Int-  , id (negate (id (head (_:_)))) :: Int-  , id (negate (id (_ * _))) :: Int-  , id (negate (id (_ + _))) :: Int-  , id (negate (id (_ + x))) :: Int-  , id (negate (id (_ + 0))) :: Int-  , id (negate (id (_ + id _))) :: Int-  , id (negate (id (x + _))) :: Int-  , id (negate (id (0 + _))) :: Int-  , id (negate (id (id _ + _))) :: Int-  , id (negate (abs _)) :: Int-  , id (negate (abs x)) :: Int-  , id (negate (abs y)) :: Int-  , id (negate (abs 0)) :: Int-  , id (negate (abs 1)) :: Int-  , id (negate (abs (ord _))) :: Int-  , id (negate (abs (id _))) :: Int-  , id (negate (abs (id x))) :: Int-  , id (negate (abs (id 0))) :: Int-  , id (negate (abs (id (id _)))) :: Int-  , id (negate (abs (abs _))) :: Int-  , id (negate (abs (negate _))) :: Int-  , id (negate (abs (head _))) :: Int-  , id (negate (abs (_ + _))) :: Int-  , id (negate (negate _)) :: Int-  , id (negate (negate x)) :: Int-  , id (negate (negate y)) :: Int-  , id (negate (negate 0)) :: Int-  , id (negate (negate 1)) :: Int-  , id (negate (negate (ord _))) :: Int-  , id (negate (negate (id _))) :: Int-  , id (negate (negate (id x))) :: Int-  , id (negate (negate (id 0))) :: Int-  , id (negate (negate (id (id _)))) :: Int-  , id (negate (negate (abs _))) :: Int-  , id (negate (negate (negate _))) :: Int-  , id (negate (negate (head _))) :: Int-  , id (negate (negate (_ + _))) :: Int-  , id (negate (head _)) :: Int-  , id (negate (head xs)) :: Int-  , id (negate (head ys)) :: Int-  , id (negate (head [])) :: Int-  , id (negate (head [0])) :: Int-  , id (negate (head (tail _))) :: Int-  , id (negate (head (_:_))) :: Int-  , id (negate (head (_:xs))) :: Int-  , id (negate (head [_])) :: Int-  , id (negate (head (_:_:_))) :: Int-  , id (negate (head (x:_))) :: Int-  , id (negate (head (0:_))) :: Int-  , id (negate (head (id _:_))) :: Int-  , id (negate (head (_ ++ _))) :: Int-  , id (negate (_ * _)) :: Int-  , id (negate (_ * x)) :: Int-  , id (negate (_ * 0)) :: Int-  , id (negate (_ * id _)) :: Int-  , id (negate (x * _)) :: Int-  , id (negate (0 * _)) :: Int-  , id (negate (id _ * _)) :: Int-  , id (negate (_ + _)) :: Int-  , id (negate (_ + x)) :: Int-  , id (negate (_ + y)) :: Int-  , id (negate (_ + 0)) :: Int-  , id (negate (_ + 1)) :: Int-  , id (negate (_ + ord _)) :: Int-  , id (negate (_ + id _)) :: Int-  , id (negate (_ + id x)) :: Int-  , id (negate (_ + id 0)) :: Int-  , id (negate (_ + id (id _))) :: Int-  , id (negate (_ + abs _)) :: Int-  , id (negate (_ + negate _)) :: Int-  , id (negate (_ + head _)) :: Int-  , id (negate (_ + (_ + _))) :: Int-  , id (negate (x + _)) :: Int-  , id (negate (x + x)) :: Int-  , id (negate (x + 0)) :: Int-  , id (negate (x + id _)) :: Int-  , id (negate (y + _)) :: Int-  , id (negate (0 + _)) :: Int-  , id (negate (0 + x)) :: Int-  , id (negate (0 + 0)) :: Int-  , id (negate (0 + id _)) :: Int-  , id (negate (1 + _)) :: Int-  , id (negate (ord _ + _)) :: Int-  , id (negate (id _ + _)) :: Int-  , id (negate (id _ + x)) :: Int-  , id (negate (id _ + 0)) :: Int-  , id (negate (id _ + id _)) :: Int-  , id (negate (id x + _)) :: Int-  , id (negate (id 0 + _)) :: Int-  , id (negate (id (id _) + _)) :: Int-  , id (negate (abs _ + _)) :: Int-  , id (negate (negate _ + _)) :: Int-  , id (negate (head _ + _)) :: Int-  , id (negate ((_ + _) + _)) :: Int-  , id (head _) :: Int-  , id (head xs) :: Int-  , id (head ys) :: Int-  , id (head zs) :: Int-  , id (head xs') :: Int-  , id (head []) :: Int-  , id (head [0]) :: Int-  , id (head [1]) :: Int-  , id (head [-1]) :: Int-  , id (head [0,0]) :: Int-  , id (head [0,1]) :: Int-  , id (head [1,0]) :: Int-  , id (head [0,0,0]) :: Int-  , id (head (sort _)) :: Int-  , id (head (tail _)) :: Int-  , id (head (tail xs)) :: Int-  , id (head (tail ys)) :: Int-  , id (head (tail [])) :: Int-  , id (head (tail [0])) :: Int-  , id (head (tail (tail _))) :: Int-  , id (head (tail (_:_))) :: Int-  , id (head (tail (_:xs))) :: Int-  , id (head (tail [_])) :: Int-  , id (head (tail (_:_:_))) :: Int-  , id (head (tail (x:_))) :: Int-  , id (head (tail (0:_))) :: Int-  , id (head (tail (id _:_))) :: Int-  , id (head (tail (_ ++ _))) :: Int-  , id (head (_:_)) :: Int-  , id (head (_:xs)) :: Int-  , id (head (_:ys)) :: Int-  , id (head (_:zs)) :: Int-  , id (head [_]) :: Int-  , id (head [_,0]) :: Int-  , id (head [_,1]) :: Int-  , id (head [_,0,0]) :: Int-  , id (head (_:sort _)) :: Int-  , id (head (_:tail _)) :: Int-  , id (head (_:tail xs)) :: Int-  , id (head (_:tail [])) :: Int-  , id (head (_:tail (_:_))) :: Int-  , id (head (_:_:_)) :: Int-  , id (head (_:_:xs)) :: Int-  , id (head (_:_:ys)) :: Int-  , id (head [_,_]) :: Int-  , id (head [_,_,0]) :: Int-  , id (head (_:_:tail _)) :: Int-  , id (head (_:_:_:_)) :: Int-  , id (head (_:_:_:xs)) :: Int-  , id (head [_,_,_]) :: Int-  , id (head (_:_:_:_:_)) :: Int-  , id (head (_:_:x:_)) :: Int-  , id (head (_:_:0:_)) :: Int-  , id (head (_:_:id _:_)) :: Int-  , id (head (_:_:(_ ++ _))) :: Int-  , id (head (_:x:_)) :: Int-  , id (head (_:x:xs)) :: Int-  , id (head [_,x]) :: Int-  , id (head (_:x:_:_)) :: Int-  , id (head (_:y:_)) :: Int-  , id (head (_:0:_)) :: Int-  , id (head (_:0:xs)) :: Int-  , id (head [_,0]) :: Int-  , id (head (_:0:_:_)) :: Int-  , id (head (_:1:_)) :: Int-  , id (head (_:ord _:_)) :: Int-  , id (head (_:id _:_)) :: Int-  , id (head (_:id _:xs)) :: Int-  , id (head [_,id _]) :: Int-  , id (head (_:id _:_:_)) :: Int-  , id (head (_:id x:_)) :: Int-  , id (head (_:id 0:_)) :: Int-  , id (head (_:id (id _):_)) :: Int-  , id (head (_:abs _:_)) :: Int-  , id (head (_:negate _:_)) :: Int-  , id (head (_:head _:_)) :: Int-  , id (head (_:_ + _:_)) :: Int-  , id (head (_:insert _ _)) :: Int-  , id (head (_:(_ ++ _))) :: Int-  , id (head (_:(_ ++ xs))) :: Int-  , id (head (_:(_ ++ []))) :: Int-  , id (head (_:(_ ++ (_:_)))) :: Int-  , id (head (_:(xs ++ _))) :: Int-  , id (head (_:([] ++ _))) :: Int-  , id (head (_:((_:_) ++ _))) :: Int-  , id (head (x:_)) :: Int-  , id (head (x:xs)) :: Int-  , id (head (x:ys)) :: Int-  , id (head [x]) :: Int-  , id (head [x,0]) :: Int-  , id (head (x:tail _)) :: Int-  , id (head (x:_:_)) :: Int-  , id (head (x:_:xs)) :: Int-  , id (head [x,_]) :: Int-  , id (head (x:_:_:_)) :: Int-  , id (head (x:x:_)) :: Int-  , id (head (x:0:_)) :: Int-  , id (head (x:id _:_)) :: Int-  , id (head (x:(_ ++ _))) :: Int-  , id (head (y:_)) :: Int-  , id (head (y:xs)) :: Int-  , id (head [y]) :: Int-  , id (head (y:_:_)) :: Int-  , id (head (z:_)) :: Int-  , id (head (0:_)) :: Int-  , id (head (0:xs)) :: Int-  , id (head (0:ys)) :: Int-  , id (head [0]) :: Int-  , id (head [0,0]) :: Int-  , id (head (0:tail _)) :: Int-  , id (head (0:_:_)) :: Int-  , id (head (0:_:xs)) :: Int-  , id (head [0,_]) :: Int-  , id (head (0:_:_:_)) :: Int-  , id (head (0:x:_)) :: Int-  , id (head (0:0:_)) :: Int-  , id (head (0:id _:_)) :: Int-  , id (head (0:(_ ++ _))) :: Int-  , id (head (1:_)) :: Int-  , id (head (1:xs)) :: Int-  , id (head [1]) :: Int-  , id (head (1:_:_)) :: Int-  , id (head ((-1):_)) :: Int-  , id (head (f _:_)) :: Int-  , id (head (ord _:_)) :: Int-  , id (head (ord _:xs)) :: Int-  , id (head [ord _]) :: Int-  , id (head (ord _:_:_)) :: Int-  , id (head (ord c:_)) :: Int-  , id (head (ord 'a':_)) :: Int-  , id (head (id _:_)) :: Int-  , id (head (id _:xs)) :: Int-  , id (head (id _:ys)) :: Int-  , id (head [id _]) :: Int-  , id (head [id _,0]) :: Int-  , id (head (id _:tail _)) :: Int-  , id (head (id _:_:_)) :: Int-  , id (head (id _:_:xs)) :: Int-  , id (head [id _,_]) :: Int-  , id (head (id _:_:_:_)) :: Int-  , id (head (id _:x:_)) :: Int-  , id (head (id _:0:_)) :: Int-  , id (head (id _:id _:_)) :: Int-  , id (head (id _:(_ ++ _))) :: Int-  , id (head (id x:_)) :: Int-  , id (head (id x:xs)) :: Int-  , id (head [id x]) :: Int-  , id (head (id x:_:_)) :: Int-  , id (head (id y:_)) :: Int-  , id (head (id 0:_)) :: Int-  , id (head (id 0:xs)) :: Int-  , id (head [id 0]) :: Int-  , id (head (id 0:_:_)) :: Int-  , id (head (id 1:_)) :: Int-  , id (head (id (ord _):_)) :: Int-  , id (head (id (id _):_)) :: Int-  , id (head (id (id _):xs)) :: Int-  , id (head [id (id _)]) :: Int-  , id (head (id (id _):_:_)) :: Int-  , id (head (id (id x):_)) :: Int-  , id (head (id (id 0):_)) :: Int-  , id (head (id (id (id _)):_)) :: Int-  , id (head (id (abs _):_)) :: Int-  , id (head (id (negate _):_)) :: Int-  , id (head (id (head _):_)) :: Int-  , id (head (id (_ + _):_)) :: Int-  , id (head (abs _:_)) :: Int-  , id (head (abs _:xs)) :: Int-  , id (head [abs _]) :: Int-  , id (head (abs _:_:_)) :: Int-  , id (head (abs x:_)) :: Int-  , id (head (abs 0:_)) :: Int-  , id (head (abs (id _):_)) :: Int-  , id (head (negate _:_)) :: Int-  , id (head (negate _:xs)) :: Int-  , id (head [negate _]) :: Int-  , id (head (negate _:_:_)) :: Int-  , id (head (negate x:_)) :: Int-  , id (head (negate 0:_)) :: Int-  , id (head (negate (id _):_)) :: Int-  , id (head (head _:_)) :: Int-  , id (head (head _:xs)) :: Int-  , id (head [head _]) :: Int-  , id (head (head _:_:_)) :: Int-  , id (head (head xs:_)) :: Int-  , id (head (head []:_)) :: Int-  , id (head (head (_:_):_)) :: Int-  , id (head (_ * _:_)) :: Int-  , id (head (_ + _:_)) :: Int-  , id (head (_ + _:xs)) :: Int-  , id (head [_ + _]) :: Int-  , id (head (_ + _:_:_)) :: Int-  , id (head (_ + x:_)) :: Int-  , id (head (_ + 0:_)) :: Int-  , id (head (_ + id _:_)) :: Int-  , id (head (x + _:_)) :: Int-  , id (head (0 + _:_)) :: Int-  , id (head (id _ + _:_)) :: Int-  , id (head (insert _ _)) :: Int-  , id (head (_ ++ _)) :: Int-  , id (head (_ ++ xs)) :: Int-  , id (head (_ ++ ys)) :: Int-  , id (head (_ ++ [])) :: Int-  , id (head (_ ++ [0])) :: Int-  , id (head (_ ++ tail _)) :: Int-  , id (head (_ ++ (_:_))) :: Int-  , id (head (_ ++ (_:xs))) :: Int-  , id (head (_ ++ [_])) :: Int-  , id (head (_ ++ (_:_:_))) :: Int-  , id (head (_ ++ (x:_))) :: Int-  , id (head (_ ++ (0:_))) :: Int-  , id (head (_ ++ (id _:_))) :: Int-  , id (head (_ ++ (_ ++ _))) :: Int-  , id (head (xs ++ _)) :: Int-  , id (head (xs ++ xs)) :: Int-  , id (head (xs ++ [])) :: Int-  , id (head (xs ++ (_:_))) :: Int-  , id (head (ys ++ _)) :: Int-  , id (head ([] ++ _)) :: Int-  , id (head ([] ++ xs)) :: Int-  , id (head ([] ++ [])) :: Int-  , id (head ([] ++ (_:_))) :: Int-  , id (head ([0] ++ _)) :: Int-  , id (head ((_:_) ++ _)) :: Int-  , id (head ((_:_) ++ xs)) :: Int-  , id (head ((_:_) ++ [])) :: Int-  , id (head ((_:_) ++ (_:_))) :: Int-  , id (head ((_:xs) ++ _)) :: Int-  , id (head ([_] ++ _)) :: Int-  , id (head ((_:_:_) ++ _)) :: Int-  , id (head ((x:_) ++ _)) :: Int-  , id (head ((0:_) ++ _)) :: Int-  , id (head ((id _:_) ++ _)) :: Int-  , id (_ * _) :: Int-  , id (_ * x) :: Int-  , id (_ * y) :: Int-  , id (_ * z) :: Int-  , id (_ * 0) :: Int-  , id (_ * 1) :: Int-  , id (_ * (-1)) :: Int-  , id (_ * f _) :: Int-  , id (_ * ord _) :: Int-  , id (_ * ord c) :: Int-  , id (_ * ord 'a') :: Int-  , id (_ * id _) :: Int-  , id (_ * id x) :: Int-  , id (_ * id y) :: Int-  , id (_ * id 0) :: Int-  , id (_ * id 1) :: Int-  , id (_ * id (ord _)) :: Int-  , id (_ * id (id _)) :: Int-  , id (_ * id (id x)) :: Int-  , id (_ * id (id 0)) :: Int-  , id (_ * id (id (id _))) :: Int-  , id (_ * id (abs _)) :: Int-  , id (_ * id (negate _)) :: Int-  , id (_ * id (head _)) :: Int-  , id (_ * id (_ + _)) :: Int-  , id (_ * abs _) :: Int-  , id (_ * abs x) :: Int-  , id (_ * abs 0) :: Int-  , id (_ * abs (id _)) :: Int-  , id (_ * negate _) :: Int-  , id (_ * negate x) :: Int-  , id (_ * negate 0) :: Int-  , id (_ * negate (id _)) :: Int-  , id (_ * head _) :: Int-  , id (_ * head xs) :: Int-  , id (_ * head []) :: Int-  , id (_ * head (_:_)) :: Int-  , id (_ * (_ * _)) :: Int-  , id (_ * (_ + _)) :: Int-  , id (_ * (_ + x)) :: Int-  , id (_ * (_ + 0)) :: Int-  , id (_ * (_ + id _)) :: Int-  , id (_ * (x + _)) :: Int-  , id (_ * (0 + _)) :: Int-  , id (_ * (id _ + _)) :: Int-  , id (x * _) :: Int-  , id (x * x) :: Int-  , id (x * y) :: Int-  , id (x * 0) :: Int-  , id (x * 1) :: Int-  , id (x * ord _) :: Int-  , id (x * id _) :: Int-  , id (x * id x) :: Int-  , id (x * id 0) :: Int-  , id (x * id (id _)) :: Int-  , id (x * abs _) :: Int-  , id (x * negate _) :: Int-  , id (x * head _) :: Int-  , id (x * (_ + _)) :: Int-  , id (y * _) :: Int-  , id (y * x) :: Int-  , id (y * 0) :: Int-  , id (y * id _) :: Int-  , id (z * _) :: Int-  , id (0 * _) :: Int-  , id (0 * x) :: Int-  , id (0 * y) :: Int-  , id (0 * 0) :: Int-  , id (0 * 1) :: Int-  , id (0 * ord _) :: Int-  , id (0 * id _) :: Int-  , id (0 * id x) :: Int-  , id (0 * id 0) :: Int-  , id (0 * id (id _)) :: Int-  , id (0 * abs _) :: Int-  , id (0 * negate _) :: Int-  , id (0 * head _) :: Int-  , id (0 * (_ + _)) :: Int-  , id (1 * _) :: Int-  , id (1 * x) :: Int-  , id (1 * 0) :: Int-  , id (1 * id _) :: Int-  , id ((-1) * _) :: Int-  , id (f _ * _) :: Int-  , id (ord _ * _) :: Int-  , id (ord _ * x) :: Int-  , id (ord _ * 0) :: Int-  , id (ord _ * id _) :: Int-  , id (ord c * _) :: Int-  , id (ord 'a' * _) :: Int-  , id (id _ * _) :: Int-  , id (id _ * x) :: Int-  , id (id _ * y) :: Int-  , id (id _ * 0) :: Int-  , id (id _ * 1) :: Int-  , id (id _ * ord _) :: Int-  , id (id _ * id _) :: Int-  , id (id _ * id x) :: Int-  , id (id _ * id 0) :: Int-  , id (id _ * id (id _)) :: Int-  , id (id _ * abs _) :: Int-  , id (id _ * negate _) :: Int-  , id (id _ * head _) :: Int-  , id (id _ * (_ + _)) :: Int-  , id (id x * _) :: Int-  , id (id x * x) :: Int-  , id (id x * 0) :: Int-  , id (id x * id _) :: Int-  , id (id y * _) :: Int-  , id (id 0 * _) :: Int-  , id (id 0 * x) :: Int-  , id (id 0 * 0) :: Int-  , id (id 0 * id _) :: Int-  , id (id 1 * _) :: Int-  , id (id (ord _) * _) :: Int-  , id (id (id _) * _) :: Int-  , id (id (id _) * x) :: Int-  , id (id (id _) * 0) :: Int-  , id (id (id _) * id _) :: Int-  , id (id (id x) * _) :: Int-  , id (id (id 0) * _) :: Int-  , id (id (id (id _)) * _) :: Int-  , id (id (abs _) * _) :: Int-  , id (id (negate _) * _) :: Int-  , id (id (head _) * _) :: Int-  , id (id (_ + _) * _) :: Int-  , id (abs _ * _) :: Int-  , id (abs _ * x) :: Int-  , id (abs _ * 0) :: Int-  , id (abs _ * id _) :: Int-  , id (abs x * _) :: Int-  , id (abs 0 * _) :: Int-  , id (abs (id _) * _) :: Int-  , id (negate _ * _) :: Int-  , id (negate _ * x) :: Int-  , id (negate _ * 0) :: Int-  , id (negate _ * id _) :: Int-  , id (negate x * _) :: Int-  , id (negate 0 * _) :: Int-  , id (negate (id _) * _) :: Int-  , id (head _ * _) :: Int-  , id (head _ * x) :: Int-  , id (head _ * 0) :: Int-  , id (head _ * id _) :: Int-  , id (head xs * _) :: Int-  , id (head [] * _) :: Int-  , id (head (_:_) * _) :: Int-  , id ((_ * _) * _) :: Int-  , id ((_ + _) * _) :: Int-  , id ((_ + _) * x) :: Int-  , id ((_ + _) * 0) :: Int-  , id ((_ + _) * id _) :: Int-  , id ((_ + x) * _) :: Int-  , id ((_ + 0) * _) :: Int-  , id ((_ + id _) * _) :: Int-  , id ((x + _) * _) :: Int-  , id ((0 + _) * _) :: Int-  , id ((id _ + _) * _) :: Int-  , id (_ + _) :: Int-  , id (_ + x) :: Int-  , id (_ + y) :: Int-  , id (_ + z) :: Int-  , id (_ + x') :: Int-  , id (_ + 0) :: Int-  , id (_ + 1) :: Int-  , id (_ + 2) :: Int-  , id (_ + (-1)) :: Int-  , id (_ + f _) :: Int-  , id (_ + f x) :: Int-  , id (_ + f 0) :: Int-  , id (_ + f (id _)) :: Int-  , id (_ + g _) :: Int-  , id (_ + ord _) :: Int-  , id (_ + ord c) :: Int-  , id (_ + ord d) :: Int-  , id (_ + ord ' ') :: Int-  , id (_ + ord 'a') :: Int-  , id (_ + id _) :: Int-  , id (_ + id x) :: Int-  , id (_ + id y) :: Int-  , id (_ + id z) :: Int-  , id (_ + id 0) :: Int-  , id (_ + id 1) :: Int-  , id (_ + id (-1)) :: Int-  , id (_ + id (f _)) :: Int-  , id (_ + id (ord _)) :: Int-  , id (_ + id (ord c)) :: Int-  , id (_ + id (ord 'a')) :: Int-  , id (_ + id (id _)) :: Int-  , id (_ + id (id x)) :: Int-  , id (_ + id (id y)) :: Int-  , id (_ + id (id 0)) :: Int-  , id (_ + id (id 1)) :: Int-  , id (_ + id (id (ord _))) :: Int-  , id (_ + id (id (id _))) :: Int-  , id (_ + id (id (id x))) :: Int-  , id (_ + id (id (id 0))) :: Int-  , id (_ + id (id (id (id _)))) :: Int-  , id (_ + id (id (abs _))) :: Int-  , id (_ + id (id (negate _))) :: Int-  , id (_ + id (id (head _))) :: Int-  , id (_ + id (id (_ + _))) :: Int-  , id (_ + id (abs _)) :: Int-  , id (_ + id (abs x)) :: Int-  , id (_ + id (abs 0)) :: Int-  , id (_ + id (abs (id _))) :: Int-  , id (_ + id (negate _)) :: Int-  , id (_ + id (negate x)) :: Int-  , id (_ + id (negate 0)) :: Int-  , id (_ + id (negate (id _))) :: Int-  , id (_ + id (head _)) :: Int-  , id (_ + id (head xs)) :: Int-  , id (_ + id (head [])) :: Int-  , id (_ + id (head (_:_))) :: Int-  , id (_ + id (_ * _)) :: Int-  , id (_ + id (_ + _)) :: Int-  , id (_ + id (_ + x)) :: Int-  , id (_ + id (_ + 0)) :: Int-  , id (_ + id (_ + id _)) :: Int-  , id (_ + id (x + _)) :: Int-  , id (_ + id (0 + _)) :: Int-  , id (_ + id (id _ + _)) :: Int-  , id (_ + abs _) :: Int-  , id (_ + abs x) :: Int-  , id (_ + abs y) :: Int-  , id (_ + abs 0) :: Int-  , id (_ + abs 1) :: Int-  , id (_ + abs (ord _)) :: Int-  , id (_ + abs (id _)) :: Int-  , id (_ + abs (id x)) :: Int-  , id (_ + abs (id 0)) :: Int-  , id (_ + abs (id (id _))) :: Int-  , id (_ + abs (abs _)) :: Int-  , id (_ + abs (negate _)) :: Int-  , id (_ + abs (head _)) :: Int-  , id (_ + abs (_ + _)) :: Int-  , id (_ + negate _) :: Int-  , id (_ + negate x) :: Int-  , id (_ + negate y) :: Int-  , id (_ + negate 0) :: Int-  , id (_ + negate 1) :: Int-  , id (_ + negate (ord _)) :: Int-  , id (_ + negate (id _)) :: Int-  , id (_ + negate (id x)) :: Int-  , id (_ + negate (id 0)) :: Int-  , id (_ + negate (id (id _))) :: Int-  , id (_ + negate (abs _)) :: Int-  , id (_ + negate (negate _)) :: Int-  , id (_ + negate (head _)) :: Int-  , id (_ + negate (_ + _)) :: Int-  , id (_ + head _) :: Int-  , id (_ + head xs) :: Int-  , id (_ + head ys) :: Int-  , id (_ + head []) :: Int-  , id (_ + head [0]) :: Int-  , id (_ + head (tail _)) :: Int-  , id (_ + head (_:_)) :: Int-  , id (_ + head (_:xs)) :: Int-  , id (_ + head [_]) :: Int-  , id (_ + head (_:_:_)) :: Int-  , id (_ + head (x:_)) :: Int-  , id (_ + head (0:_)) :: Int-  , id (_ + head (id _:_)) :: Int-  , id (_ + head (_ ++ _)) :: Int-  , id (_ + _ * _) :: Int-  , id (_ + _ * x) :: Int-  , id (_ + _ * 0) :: Int-  , id (_ + _ * id _) :: Int-  , id (_ + x * _) :: Int-  , id (_ + 0 * _) :: Int-  , id (_ + id _ * _) :: Int-  , id (_ + (_ + _)) :: Int-  , id (_ + (_ + x)) :: Int-  , id (_ + (_ + y)) :: Int-  , id (_ + (_ + 0)) :: Int-  , id (_ + (_ + 1)) :: Int-  , id (_ + (_ + ord _)) :: Int-  , id (_ + (_ + id _)) :: Int-  , id (_ + (_ + id x)) :: Int-  , id (_ + (_ + id 0)) :: Int-  , id (_ + (_ + id (id _))) :: Int-  , id (_ + (_ + abs _)) :: Int-  , id (_ + (_ + negate _)) :: Int-  , id (_ + (_ + head _)) :: Int-  , id (_ + (_ + (_ + _))) :: Int-  , id (_ + (x + _)) :: Int-  , id (_ + (x + x)) :: Int-  , id (_ + (x + 0)) :: Int-  , id (_ + (x + id _)) :: Int-  , id (_ + (y + _)) :: Int-  , id (_ + (0 + _)) :: Int-  , id (_ + (0 + x)) :: Int-  , id (_ + (0 + 0)) :: Int-  , id (_ + (0 + id _)) :: Int-  , id (_ + (1 + _)) :: Int-  , id (_ + (ord _ + _)) :: Int-  , id (_ + (id _ + _)) :: Int-  , id (_ + (id _ + x)) :: Int-  , id (_ + (id _ + 0)) :: Int-  , id (_ + (id _ + id _)) :: Int-  , id (_ + (id x + _)) :: Int-  , id (_ + (id 0 + _)) :: Int-  , id (_ + (id (id _) + _)) :: Int-  , id (_ + (abs _ + _)) :: Int-  , id (_ + (negate _ + _)) :: Int-  , id (_ + (head _ + _)) :: Int-  , id (_ + ((_ + _) + _)) :: Int-  , id (x + _) :: Int-  , id (x + x) :: Int-  , id (x + y) :: Int-  , id (x + z) :: Int-  , id (x + 0) :: Int-  , id (x + 1) :: Int-  , id (x + (-1)) :: Int-  , id (x + f _) :: Int-  , id (x + ord _) :: Int-  , id (x + ord c) :: Int-  , id (x + ord 'a') :: Int-  , id (x + id _) :: Int-  , id (x + id x) :: Int-  , id (x + id y) :: Int-  , id (x + id 0) :: Int-  , id (x + id 1) :: Int-  , id (x + id (ord _)) :: Int-  , id (x + id (id _)) :: Int-  , id (x + id (id x)) :: Int-  , id (x + id (id 0)) :: Int-  , id (x + id (id (id _))) :: Int-  , id (x + id (abs _)) :: Int-  , id (x + id (negate _)) :: Int-  , id (x + id (head _)) :: Int-  , id (x + id (_ + _)) :: Int-  , id (x + abs _) :: Int-  , id (x + abs x) :: Int-  , id (x + abs 0) :: Int-  , id (x + abs (id _)) :: Int-  , id (x + negate _) :: Int-  , id (x + negate x) :: Int-  , id (x + negate 0) :: Int-  , id (x + negate (id _)) :: Int-  , id (x + head _) :: Int-  , id (x + head xs) :: Int-  , id (x + head []) :: Int-  , id (x + head (_:_)) :: Int-  , id (x + _ * _) :: Int-  , id (x + (_ + _)) :: Int-  , id (x + (_ + x)) :: Int-  , id (x + (_ + 0)) :: Int-  , id (x + (_ + id _)) :: Int-  , id (x + (x + _)) :: Int-  , id (x + (0 + _)) :: Int-  , id (x + (id _ + _)) :: Int-  , id (y + _) :: Int-  , id (y + x) :: Int-  , id (y + y) :: Int-  , id (y + 0) :: Int-  , id (y + 1) :: Int-  , id (y + ord _) :: Int-  , id (y + id _) :: Int-  , id (y + id x) :: Int-  , id (y + id 0) :: Int-  , id (y + id (id _)) :: Int-  , id (y + abs _) :: Int-  , id (y + negate _) :: Int-  , id (y + head _) :: Int-  , id (y + (_ + _)) :: Int-  , id (z + _) :: Int-  , id (z + x) :: Int-  , id (z + 0) :: Int-  , id (z + id _) :: Int-  , id (x' + _) :: Int-  , id (0 + _) :: Int-  , id (0 + x) :: Int-  , id (0 + y) :: Int-  , id (0 + z) :: Int-  , id (0 + 0) :: Int-  , id (0 + 1) :: Int-  , id (0 + (-1)) :: Int-  , id (0 + f _) :: Int-  , id (0 + ord _) :: Int-  , id (0 + ord c) :: Int-  , id (0 + ord 'a') :: Int-  , id (0 + id _) :: Int-  , id (0 + id x) :: Int-  , id (0 + id y) :: Int-  , id (0 + id 0) :: Int-  , id (0 + id 1) :: Int-  , id (0 + id (ord _)) :: Int-  , id (0 + id (id _)) :: Int-  , id (0 + id (id x)) :: Int-  , id (0 + id (id 0)) :: Int-  , id (0 + id (id (id _))) :: Int-  , id (0 + id (abs _)) :: Int-  , id (0 + id (negate _)) :: Int-  , id (0 + id (head _)) :: Int-  , id (0 + id (_ + _)) :: Int-  , id (0 + abs _) :: Int-  , id (0 + abs x) :: Int-  , id (0 + abs 0) :: Int-  , id (0 + abs (id _)) :: Int-  , id (0 + negate _) :: Int-  , id (0 + negate x) :: Int-  , id (0 + negate 0) :: Int-  , id (0 + negate (id _)) :: Int-  , id (0 + head _) :: Int-  , id (0 + head xs) :: Int-  , id (0 + head []) :: Int-  , id (0 + head (_:_)) :: Int-  , id (0 + _ * _) :: Int-  , id (0 + (_ + _)) :: Int-  , id (0 + (_ + x)) :: Int-  , id (0 + (_ + 0)) :: Int-  , id (0 + (_ + id _)) :: Int-  , id (0 + (x + _)) :: Int-  , id (0 + (0 + _)) :: Int-  , id (0 + (id _ + _)) :: Int-  , id (1 + _) :: Int-  , id (1 + x) :: Int-  , id (1 + y) :: Int-  , id (1 + 0) :: Int-  , id (1 + 1) :: Int-  , id (1 + ord _) :: Int-  , id (1 + id _) :: Int-  , id (1 + id x) :: Int-  , id (1 + id 0) :: Int-  , id (1 + id (id _)) :: Int-  , id (1 + abs _) :: Int-  , id (1 + negate _) :: Int-  , id (1 + head _) :: Int-  , id (1 + (_ + _)) :: Int-  , id (2 + _) :: Int-  , id ((-1) + _) :: Int-  , id ((-1) + x) :: Int-  , id ((-1) + 0) :: Int-  , id ((-1) + id _) :: Int-  , id (f _ + _) :: Int-  , id (f _ + x) :: Int-  , id (f _ + 0) :: Int-  , id (f _ + id _) :: Int-  , id (f x + _) :: Int-  , id (f 0 + _) :: Int-  , id (f (id _) + _) :: Int-  , id (g _ + _) :: Int-  , id (ord _ + _) :: Int-  , id (ord _ + x) :: Int-  , id (ord _ + y) :: Int-  , id (ord _ + 0) :: Int-  , id (ord _ + 1) :: Int-  , id (ord _ + ord _) :: Int-  , id (ord _ + id _) :: Int-  , id (ord _ + id x) :: Int-  , id (ord _ + id 0) :: Int-  , id (ord _ + id (id _)) :: Int-  , id (ord _ + abs _) :: Int-  , id (ord _ + negate _) :: Int-  , id (ord _ + head _) :: Int-  , id (ord _ + (_ + _)) :: Int-  , id (ord c + _) :: Int-  , id (ord c + x) :: Int-  , id (ord c + 0) :: Int-  , id (ord c + id _) :: Int-  , id (ord d + _) :: Int-  , id (ord ' ' + _) :: Int-  , id (ord 'a' + _) :: Int-  , id (ord 'a' + x) :: Int-  , id (ord 'a' + 0) :: Int-  , id (ord 'a' + id _) :: Int-  , id (id _ + _) :: Int-  , id (id _ + x) :: Int-  , id (id _ + y) :: Int-  , id (id _ + z) :: Int-  , id (id _ + 0) :: Int-  , id (id _ + 1) :: Int-  , id (id _ + (-1)) :: Int-  , id (id _ + f _) :: Int-  , id (id _ + ord _) :: Int-  , id (id _ + ord c) :: Int-  , id (id _ + ord 'a') :: Int-  , id (id _ + id _) :: Int-  , id (id _ + id x) :: Int-  , id (id _ + id y) :: Int-  , id (id _ + id 0) :: Int-  , id (id _ + id 1) :: Int-  , id (id _ + id (ord _)) :: Int-  , id (id _ + id (id _)) :: Int-  , id (id _ + id (id x)) :: Int-  , id (id _ + id (id 0)) :: Int-  , id (id _ + id (id (id _))) :: Int-  , id (id _ + id (abs _)) :: Int-  , id (id _ + id (negate _)) :: Int-  , id (id _ + id (head _)) :: Int-  , id (id _ + id (_ + _)) :: Int-  , id (id _ + abs _) :: Int-  , id (id _ + abs x) :: Int-  , id (id _ + abs 0) :: Int-  , id (id _ + abs (id _)) :: Int-  , id (id _ + negate _) :: Int-  , id (id _ + negate x) :: Int-  , id (id _ + negate 0) :: Int-  , id (id _ + negate (id _)) :: Int-  , id (id _ + head _) :: Int-  , id (id _ + head xs) :: Int-  , id (id _ + head []) :: Int-  , id (id _ + head (_:_)) :: Int-  , id (id _ + _ * _) :: Int-  , id (id _ + (_ + _)) :: Int-  , id (id _ + (_ + x)) :: Int-  , id (id _ + (_ + 0)) :: Int-  , id (id _ + (_ + id _)) :: Int-  , id (id _ + (x + _)) :: Int-  , id (id _ + (0 + _)) :: Int-  , id (id _ + (id _ + _)) :: Int-  , id (id x + _) :: Int-  , id (id x + x) :: Int-  , id (id x + y) :: Int-  , id (id x + 0) :: Int-  , id (id x + 1) :: Int-  , id (id x + ord _) :: Int-  , id (id x + id _) :: Int-  , id (id x + id x) :: Int-  , id (id x + id 0) :: Int-  , id (id x + id (id _)) :: Int-  , id (id x + abs _) :: Int-  , id (id x + negate _) :: Int-  , id (id x + head _) :: Int-  , id (id x + (_ + _)) :: Int-  , id (id y + _) :: Int-  , id (id y + x) :: Int-  , id (id y + 0) :: Int-  , id (id y + id _) :: Int-  , id (id z + _) :: Int-  , id (id 0 + _) :: Int-  , id (id 0 + x) :: Int-  , id (id 0 + y) :: Int-  , id (id 0 + 0) :: Int-  , id (id 0 + 1) :: Int-  , id (id 0 + ord _) :: Int-  , id (id 0 + id _) :: Int-  , id (id 0 + id x) :: Int-  , id (id 0 + id 0) :: Int-  , id (id 0 + id (id _)) :: Int-  , id (id 0 + abs _) :: Int-  , id (id 0 + negate _) :: Int-  , id (id 0 + head _) :: Int-  , id (id 0 + (_ + _)) :: Int-  , id (id 1 + _) :: Int-  , id (id 1 + x) :: Int-  , id (id 1 + 0) :: Int-  , id (id 1 + id _) :: Int-  , id (id (-1) + _) :: Int-  , id (id (f _) + _) :: Int-  , id (id (ord _) + _) :: Int-  , id (id (ord _) + x) :: Int-  , id (id (ord _) + 0) :: Int-  , id (id (ord _) + id _) :: Int-  , id (id (ord c) + _) :: Int-  , id (id (ord 'a') + _) :: Int-  , id (id (id _) + _) :: Int-  , id (id (id _) + x) :: Int-  , id (id (id _) + y) :: Int-  , id (id (id _) + 0) :: Int-  , id (id (id _) + 1) :: Int-  , id (id (id _) + ord _) :: Int-  , id (id (id _) + id _) :: Int-  , id (id (id _) + id x) :: Int-  , id (id (id _) + id 0) :: Int-  , id (id (id _) + id (id _)) :: Int-  , id (id (id _) + abs _) :: Int-  , id (id (id _) + negate _) :: Int-  , id (id (id _) + head _) :: Int-  , id (id (id _) + (_ + _)) :: Int-  , id (id (id x) + _) :: Int-  , id (id (id x) + x) :: Int-  , id (id (id x) + 0) :: Int-  , id (id (id x) + id _) :: Int-  , id (id (id y) + _) :: Int-  , id (id (id 0) + _) :: Int-  , id (id (id 0) + x) :: Int-  , id (id (id 0) + 0) :: Int-  , id (id (id 0) + id _) :: Int-  , id (id (id 1) + _) :: Int-  , id (id (id (ord _)) + _) :: Int-  , id (id (id (id _)) + _) :: Int-  , id (id (id (id _)) + x) :: Int-  , id (id (id (id _)) + 0) :: Int-  , id (id (id (id _)) + id _) :: Int-  , id (id (id (id x)) + _) :: Int-  , id (id (id (id 0)) + _) :: Int-  , id (id (id (id (id _))) + _) :: Int-  , id (id (id (abs _)) + _) :: Int-  , id (id (id (negate _)) + _) :: Int-  , id (id (id (head _)) + _) :: Int-  , id (id (id (_ + _)) + _) :: Int-  , id (id (abs _) + _) :: Int-  , id (id (abs _) + x) :: Int-  , id (id (abs _) + 0) :: Int-  , id (id (abs _) + id _) :: Int-  , id (id (abs x) + _) :: Int-  , id (id (abs 0) + _) :: Int-  , id (id (abs (id _)) + _) :: Int-  , id (id (negate _) + _) :: Int-  , id (id (negate _) + x) :: Int-  , id (id (negate _) + 0) :: Int-  , id (id (negate _) + id _) :: Int-  , id (id (negate x) + _) :: Int-  , id (id (negate 0) + _) :: Int-  , id (id (negate (id _)) + _) :: Int-  , id (id (head _) + _) :: Int-  , id (id (head _) + x) :: Int-  , id (id (head _) + 0) :: Int-  , id (id (head _) + id _) :: Int-  , id (id (head xs) + _) :: Int-  , id (id (head []) + _) :: Int-  , id (id (head (_:_)) + _) :: Int-  , id (id (_ * _) + _) :: Int-  , id (id (_ + _) + _) :: Int-  , id (id (_ + _) + x) :: Int-  , id (id (_ + _) + 0) :: Int-  , id (id (_ + _) + id _) :: Int-  , id (id (_ + x) + _) :: Int-  , id (id (_ + 0) + _) :: Int-  , id (id (_ + id _) + _) :: Int-  , id (id (x + _) + _) :: Int-  , id (id (0 + _) + _) :: Int-  , id (id (id _ + _) + _) :: Int-  , id (abs _ + _) :: Int-  , id (abs _ + x) :: Int-  , id (abs _ + y) :: Int-  , id (abs _ + 0) :: Int-  , id (abs _ + 1) :: Int-  , id (abs _ + ord _) :: Int-  , id (abs _ + id _) :: Int-  , id (abs _ + id x) :: Int-  , id (abs _ + id 0) :: Int-  , id (abs _ + id (id _)) :: Int-  , id (abs _ + abs _) :: Int-  , id (abs _ + negate _) :: Int-  , id (abs _ + head _) :: Int-  , id (abs _ + (_ + _)) :: Int-  , id (abs x + _) :: Int-  , id (abs x + x) :: Int-  , id (abs x + 0) :: Int-  , id (abs x + id _) :: Int-  , id (abs y + _) :: Int-  , id (abs 0 + _) :: Int-  , id (abs 0 + x) :: Int-  , id (abs 0 + 0) :: Int-  , id (abs 0 + id _) :: Int-  , id (abs 1 + _) :: Int-  , id (abs (ord _) + _) :: Int-  , id (abs (id _) + _) :: Int-  , id (abs (id _) + x) :: Int-  , id (abs (id _) + 0) :: Int-  , id (abs (id _) + id _) :: Int-  , id (abs (id x) + _) :: Int-  , id (abs (id 0) + _) :: Int-  , id (abs (id (id _)) + _) :: Int-  , id (abs (abs _) + _) :: Int-  , id (abs (negate _) + _) :: Int-  , id (abs (head _) + _) :: Int-  , id (abs (_ + _) + _) :: Int-  , id (negate _ + _) :: Int-  , id (negate _ + x) :: Int-  , id (negate _ + y) :: Int-  , id (negate _ + 0) :: Int-  , id (negate _ + 1) :: Int-  , id (negate _ + ord _) :: Int-  , id (negate _ + id _) :: Int-  , id (negate _ + id x) :: Int-  , id (negate _ + id 0) :: Int-  , id (negate _ + id (id _)) :: Int-  , id (negate _ + abs _) :: Int-  , id (negate _ + negate _) :: Int-  , id (negate _ + head _) :: Int-  , id (negate _ + (_ + _)) :: Int-  , id (negate x + _) :: Int-  , id (negate x + x) :: Int-  , id (negate x + 0) :: Int-  , id (negate x + id _) :: Int-  , id (negate y + _) :: Int-  , id (negate 0 + _) :: Int-  , id (negate 0 + x) :: Int-  , id (negate 0 + 0) :: Int-  , id (negate 0 + id _) :: Int-  , id (negate 1 + _) :: Int-  , id (negate (ord _) + _) :: Int-  , id (negate (id _) + _) :: Int-  , id (negate (id _) + x) :: Int-  , id (negate (id _) + 0) :: Int-  , id (negate (id _) + id _) :: Int-  , id (negate (id x) + _) :: Int-  , id (negate (id 0) + _) :: Int-  , id (negate (id (id _)) + _) :: Int-  , id (negate (abs _) + _) :: Int-  , id (negate (negate _) + _) :: Int-  , id (negate (head _) + _) :: Int-  , id (negate (_ + _) + _) :: Int-  , id (head _ + _) :: Int-  , id (head _ + x) :: Int-  , id (head _ + y) :: Int-  , id (head _ + 0) :: Int-  , id (head _ + 1) :: Int-  , id (head _ + ord _) :: Int-  , id (head _ + id _) :: Int-  , id (head _ + id x) :: Int-  , id (head _ + id 0) :: Int-  , id (head _ + id (id _)) :: Int-  , id (head _ + abs _) :: Int-  , id (head _ + negate _) :: Int-  , id (head _ + head _) :: Int-  , id (head _ + (_ + _)) :: Int-  , id (head xs + _) :: Int-  , id (head xs + x) :: Int-  , id (head xs + 0) :: Int-  , id (head xs + id _) :: Int-  , id (head ys + _) :: Int-  , id (head [] + _) :: Int-  , id (head [] + x) :: Int-  , id (head [] + 0) :: Int-  , id (head [] + id _) :: Int-  , id (head [0] + _) :: Int-  , id (head (tail _) + _) :: Int-  , id (head (_:_) + _) :: Int-  , id (head (_:_) + x) :: Int-  , id (head (_:_) + 0) :: Int-  , id (head (_:_) + id _) :: Int-  , id (head (_:xs) + _) :: Int-  , id (head [_] + _) :: Int-  , id (head (_:_:_) + _) :: Int-  , id (head (x:_) + _) :: Int-  , id (head (0:_) + _) :: Int-  , id (head (id _:_) + _) :: Int-  , id (head (_ ++ _) + _) :: Int-  , id (_ * _ + _) :: Int-  , id (_ * _ + x) :: Int-  , id (_ * _ + 0) :: Int-  , id (_ * _ + id _) :: Int-  , id (_ * x + _) :: Int-  , id (_ * 0 + _) :: Int-  , id (_ * id _ + _) :: Int-  , id (x * _ + _) :: Int-  , id (0 * _ + _) :: Int-  , id (id _ * _ + _) :: Int-  , id ((_ + _) + _) :: Int-  , id ((_ + _) + x) :: Int-  , id ((_ + _) + y) :: Int-  , id ((_ + _) + 0) :: Int-  , id ((_ + _) + 1) :: Int-  , id ((_ + _) + ord _) :: Int-  , id ((_ + _) + id _) :: Int-  , id ((_ + _) + id x) :: Int-  , id ((_ + _) + id 0) :: Int-  , id ((_ + _) + id (id _)) :: Int-  , id ((_ + _) + abs _) :: Int-  , id ((_ + _) + negate _) :: Int-  , id ((_ + _) + head _) :: Int-  , id ((_ + _) + (_ + _)) :: Int-  , id ((_ + x) + _) :: Int-  , id ((_ + x) + x) :: Int-  , id ((_ + x) + 0) :: Int-  , id ((_ + x) + id _) :: Int-  , id ((_ + y) + _) :: Int-  , id ((_ + 0) + _) :: Int-  , id ((_ + 0) + x) :: Int-  , id ((_ + 0) + 0) :: Int-  , id ((_ + 0) + id _) :: Int-  , id ((_ + 1) + _) :: Int-  , id ((_ + ord _) + _) :: Int-  , id ((_ + id _) + _) :: Int-  , id ((_ + id _) + x) :: Int-  , id ((_ + id _) + 0) :: Int-  , id ((_ + id _) + id _) :: Int-  , id ((_ + id x) + _) :: Int-  , id ((_ + id 0) + _) :: Int-  , id ((_ + id (id _)) + _) :: Int-  , id ((_ + abs _) + _) :: Int-  , id ((_ + negate _) + _) :: Int-  , id ((_ + head _) + _) :: Int-  , id ((_ + (_ + _)) + _) :: Int-  , id ((x + _) + _) :: Int-  , id ((x + _) + x) :: Int-  , id ((x + _) + 0) :: Int-  , id ((x + _) + id _) :: Int-  , id ((x + x) + _) :: Int-  , id ((x + 0) + _) :: Int-  , id ((x + id _) + _) :: Int-  , id ((y + _) + _) :: Int-  , id ((0 + _) + _) :: Int-  , id ((0 + _) + x) :: Int-  , id ((0 + _) + 0) :: Int-  , id ((0 + _) + id _) :: Int-  , id ((0 + x) + _) :: Int-  , id ((0 + 0) + _) :: Int-  , id ((0 + id _) + _) :: Int-  , id ((1 + _) + _) :: Int-  , id ((ord _ + _) + _) :: Int-  , id ((id _ + _) + _) :: Int-  , id ((id _ + _) + x) :: Int-  , id ((id _ + _) + 0) :: Int-  , id ((id _ + _) + id _) :: Int-  , id ((id _ + x) + _) :: Int-  , id ((id _ + 0) + _) :: Int-  , id ((id _ + id _) + _) :: Int-  , id ((id x + _) + _) :: Int-  , id ((id 0 + _) + _) :: Int-  , id ((id (id _) + _) + _) :: Int-  , id ((abs _ + _) + _) :: Int-  , id ((negate _ + _) + _) :: Int-  , id ((head _ + _) + _) :: Int-  , id (((_ + _) + _) + _) :: Int-  , abs _ :: Int-  , abs x :: Int-  , abs y :: Int-  , abs z :: Int-  , abs x' :: Int-  , abs 0 :: Int-  , abs 1 :: Int-  , abs 2 :: Int-  , abs (-1) :: Int-  , abs (f _) :: Int-  , abs (f x) :: Int-  , abs (f 0) :: Int-  , abs (f (id _)) :: Int-  , abs (g _) :: Int-  , abs (ord _) :: Int-  , abs (ord c) :: Int-  , abs (ord d) :: Int-  , abs (ord ' ') :: Int-  , abs (ord 'a') :: Int-  , abs (id _) :: Int-  , abs (id x) :: Int-  , abs (id y) :: Int-  , abs (id z) :: Int-  , abs (id 0) :: Int-  , abs (id 1) :: Int-  , abs (id (-1)) :: Int-  , abs (id (f _)) :: Int-  , abs (id (ord _)) :: Int-  , abs (id (ord c)) :: Int-  , abs (id (ord 'a')) :: Int-  , abs (id (id _)) :: Int-  , abs (id (id x)) :: Int-  , abs (id (id y)) :: Int-  , abs (id (id 0)) :: Int-  , abs (id (id 1)) :: Int-  , abs (id (id (ord _))) :: Int-  , abs (id (id (id _))) :: Int-  , abs (id (id (id x))) :: Int-  , abs (id (id (id 0))) :: Int-  , abs (id (id (id (id _)))) :: Int-  , abs (id (id (abs _))) :: Int-  , abs (id (id (negate _))) :: Int-  , abs (id (id (head _))) :: Int-  , abs (id (id (_ + _))) :: Int-  , abs (id (abs _)) :: Int-  , abs (id (abs x)) :: Int-  , abs (id (abs 0)) :: Int-  , abs (id (abs (id _))) :: Int-  , abs (id (negate _)) :: Int-  , abs (id (negate x)) :: Int-  , abs (id (negate 0)) :: Int-  , abs (id (negate (id _))) :: Int-  , abs (id (head _)) :: Int-  , abs (id (head xs)) :: Int-  , abs (id (head [])) :: Int-  , abs (id (head (_:_))) :: Int-  , abs (id (_ * _)) :: Int-  , abs (id (_ + _)) :: Int-  , abs (id (_ + x)) :: Int-  , abs (id (_ + 0)) :: Int-  , abs (id (_ + id _)) :: Int-  , abs (id (x + _)) :: Int-  , abs (id (0 + _)) :: Int-  , abs (id (id _ + _)) :: Int-  , abs (abs _) :: Int-  , abs (abs x) :: Int-  , abs (abs y) :: Int-  , abs (abs 0) :: Int-  , abs (abs 1) :: Int-  , abs (abs (ord _)) :: Int-  , abs (abs (id _)) :: Int-  , abs (abs (id x)) :: Int-  , abs (abs (id 0)) :: Int-  , abs (abs (id (id _))) :: Int-  , abs (abs (abs _)) :: Int-  , abs (abs (negate _)) :: Int-  , abs (abs (head _)) :: Int-  , abs (abs (_ + _)) :: Int-  , abs (negate _) :: Int-  , abs (negate x) :: Int-  , abs (negate y) :: Int-  , abs (negate 0) :: Int-  , abs (negate 1) :: Int-  , abs (negate (ord _)) :: Int-  , abs (negate (id _)) :: Int-  , abs (negate (id x)) :: Int-  , abs (negate (id 0)) :: Int-  , abs (negate (id (id _))) :: Int-  , abs (negate (abs _)) :: Int-  , abs (negate (negate _)) :: Int-  , abs (negate (head _)) :: Int-  , abs (negate (_ + _)) :: Int-  , abs (head _) :: Int-  , abs (head xs) :: Int-  , abs (head ys) :: Int-  , abs (head []) :: Int-  , abs (head [0]) :: Int-  , abs (head (tail _)) :: Int-  , abs (head (_:_)) :: Int-  , abs (head (_:xs)) :: Int-  , abs (head [_]) :: Int-  , abs (head (_:_:_)) :: Int-  , abs (head (x:_)) :: Int-  , abs (head (0:_)) :: Int-  , abs (head (id _:_)) :: Int-  , abs (head (_ ++ _)) :: Int-  , abs (_ * _) :: Int-  , abs (_ * x) :: Int-  , abs (_ * 0) :: Int-  , abs (_ * id _) :: Int-  , abs (x * _) :: Int-  , abs (0 * _) :: Int-  , abs (id _ * _) :: Int-  , abs (_ + _) :: Int-  , abs (_ + x) :: Int-  , abs (_ + y) :: Int-  , abs (_ + 0) :: Int-  , abs (_ + 1) :: Int-  , abs (_ + ord _) :: Int-  , abs (_ + id _) :: Int-  , abs (_ + id x) :: Int-  , abs (_ + id 0) :: Int-  , abs (_ + id (id _)) :: Int-  , abs (_ + abs _) :: Int-  , abs (_ + negate _) :: Int-  , abs (_ + head _) :: Int-  , abs (_ + (_ + _)) :: Int-  , abs (x + _) :: Int-  , abs (x + x) :: Int-  , abs (x + 0) :: Int-  , abs (x + id _) :: Int-  , abs (y + _) :: Int-  , abs (0 + _) :: Int-  , abs (0 + x) :: Int-  , abs (0 + 0) :: Int-  , abs (0 + id _) :: Int-  , abs (1 + _) :: Int-  , abs (ord _ + _) :: Int-  , abs (id _ + _) :: Int-  , abs (id _ + x) :: Int-  , abs (id _ + 0) :: Int-  , abs (id _ + id _) :: Int-  , abs (id x + _) :: Int-  , abs (id 0 + _) :: Int-  , abs (id (id _) + _) :: Int-  , abs (abs _ + _) :: Int-  , abs (negate _ + _) :: Int-  , abs (head _ + _) :: Int-  , abs ((_ + _) + _) :: Int-  , negate _ :: Int-  , negate x :: Int-  , negate y :: Int-  , negate z :: Int-  , negate x' :: Int-  , negate 0 :: Int-  , negate 1 :: Int-  , negate 2 :: Int-  , negate (-1) :: Int-  , negate (f _) :: Int-  , negate (f x) :: Int-  , negate (f 0) :: Int-  , negate (f (id _)) :: Int-  , negate (g _) :: Int-  , negate (ord _) :: Int-  , negate (ord c) :: Int-  , negate (ord d) :: Int-  , negate (ord ' ') :: Int-  , negate (ord 'a') :: Int-  , negate (id _) :: Int-  , negate (id x) :: Int-  , negate (id y) :: Int-  , negate (id z) :: Int-  , negate (id 0) :: Int-  , negate (id 1) :: Int-  , negate (id (-1)) :: Int-  , negate (id (f _)) :: Int-  , negate (id (ord _)) :: Int-  , negate (id (ord c)) :: Int-  , negate (id (ord 'a')) :: Int-  , negate (id (id _)) :: Int-  , negate (id (id x)) :: Int-  , negate (id (id y)) :: Int-  , negate (id (id 0)) :: Int-  , negate (id (id 1)) :: Int-  , negate (id (id (ord _))) :: Int-  , negate (id (id (id _))) :: Int-  , negate (id (id (id x))) :: Int-  , negate (id (id (id 0))) :: Int-  , negate (id (id (id (id _)))) :: Int-  , negate (id (id (abs _))) :: Int-  , negate (id (id (negate _))) :: Int-  , negate (id (id (head _))) :: Int-  , negate (id (id (_ + _))) :: Int-  , negate (id (abs _)) :: Int-  , negate (id (abs x)) :: Int-  , negate (id (abs 0)) :: Int-  , negate (id (abs (id _))) :: Int-  , negate (id (negate _)) :: Int-  , negate (id (negate x)) :: Int-  , negate (id (negate 0)) :: Int-  , negate (id (negate (id _))) :: Int-  , negate (id (head _)) :: Int-  , negate (id (head xs)) :: Int-  , negate (id (head [])) :: Int-  , negate (id (head (_:_))) :: Int-  , negate (id (_ * _)) :: Int-  , negate (id (_ + _)) :: Int-  , negate (id (_ + x)) :: Int-  , negate (id (_ + 0)) :: Int-  , negate (id (_ + id _)) :: Int-  , negate (id (x + _)) :: Int-  , negate (id (0 + _)) :: Int-  , negate (id (id _ + _)) :: Int-  , negate (abs _) :: Int-  , negate (abs x) :: Int-  , negate (abs y) :: Int-  , negate (abs 0) :: Int-  , negate (abs 1) :: Int-  , negate (abs (ord _)) :: Int-  , negate (abs (id _)) :: Int-  , negate (abs (id x)) :: Int-  , negate (abs (id 0)) :: Int-  , negate (abs (id (id _))) :: Int-  , negate (abs (abs _)) :: Int-  , negate (abs (negate _)) :: Int-  , negate (abs (head _)) :: Int-  , negate (abs (_ + _)) :: Int-  , negate (negate _) :: Int-  , negate (negate x) :: Int-  , negate (negate y) :: Int-  , negate (negate 0) :: Int-  , negate (negate 1) :: Int-  , negate (negate (ord _)) :: Int-  , negate (negate (id _)) :: Int-  , negate (negate (id x)) :: Int-  , negate (negate (id 0)) :: Int-  , negate (negate (id (id _))) :: Int-  , negate (negate (abs _)) :: Int-  , negate (negate (negate _)) :: Int-  , negate (negate (head _)) :: Int-  , negate (negate (_ + _)) :: Int-  , negate (head _) :: Int-  , negate (head xs) :: Int-  , negate (head ys) :: Int-  , negate (head []) :: Int-  , negate (head [0]) :: Int-  , negate (head (tail _)) :: Int-  , negate (head (_:_)) :: Int-  , negate (head (_:xs)) :: Int-  , negate (head [_]) :: Int-  , negate (head (_:_:_)) :: Int-  , negate (head (x:_)) :: Int-  , negate (head (0:_)) :: Int-  , negate (head (id _:_)) :: Int-  , negate (head (_ ++ _)) :: Int-  , negate (_ * _) :: Int-  , negate (_ * x) :: Int-  , negate (_ * 0) :: Int-  , negate (_ * id _) :: Int-  , negate (x * _) :: Int-  , negate (0 * _) :: Int-  , negate (id _ * _) :: Int-  , negate (_ + _) :: Int-  , negate (_ + x) :: Int-  , negate (_ + y) :: Int-  , negate (_ + 0) :: Int-  , negate (_ + 1) :: Int-  , negate (_ + ord _) :: Int-  , negate (_ + id _) :: Int-  , negate (_ + id x) :: Int-  , negate (_ + id 0) :: Int-  , negate (_ + id (id _)) :: Int-  , negate (_ + abs _) :: Int-  , negate (_ + negate _) :: Int-  , negate (_ + head _) :: Int-  , negate (_ + (_ + _)) :: Int-  , negate (x + _) :: Int-  , negate (x + x) :: Int-  , negate (x + 0) :: Int-  , negate (x + id _) :: Int-  , negate (y + _) :: Int-  , negate (0 + _) :: Int-  , negate (0 + x) :: Int-  , negate (0 + 0) :: Int-  , negate (0 + id _) :: Int-  , negate (1 + _) :: Int-  , negate (ord _ + _) :: Int-  , negate (id _ + _) :: Int-  , negate (id _ + x) :: Int-  , negate (id _ + 0) :: Int-  , negate (id _ + id _) :: Int-  , negate (id x + _) :: Int-  , negate (id 0 + _) :: Int-  , negate (id (id _) + _) :: Int-  , negate (abs _ + _) :: Int-  , negate (negate _ + _) :: Int-  , negate (head _ + _) :: Int-  , negate ((_ + _) + _) :: Int-  , head _ :: Int-  , head xs :: Int-  , head ys :: Int-  , head zs :: Int-  , head xs' :: Int-  , head [] :: Int-  , head [0] :: Int-  , head [1] :: Int-  , head [-1] :: Int-  , head [0,0] :: Int-  , head [0,1] :: Int-  , head [1,0] :: Int-  , head [0,0,0] :: Int-  , head (sort _) :: Int-  , head (sort xs) :: Int-  , head (sort []) :: Int-  , head (sort (_:_)) :: Int-  , head (tail _) :: Int-  , head (tail xs) :: Int-  , head (tail ys) :: Int-  , head (tail []) :: Int-  , head (tail [0]) :: Int-  , head (tail (tail _)) :: Int-  , head (tail (_:_)) :: Int-  , head (tail (_:xs)) :: Int-  , head (tail [_]) :: Int-  , head (tail (_:_:_)) :: Int-  , head (tail (x:_)) :: Int-  , head (tail (0:_)) :: Int-  , head (tail (id _:_)) :: Int-  , head (tail (_ ++ _)) :: Int-  , head (_:_) :: Int-  , head (_:xs) :: Int-  , head (_:ys) :: Int-  , head (_:zs) :: Int-  , head [_] :: Int-  , head [_,0] :: Int-  , head [_,1] :: Int-  , head [_,0,0] :: Int-  , head (_:sort _) :: Int-  , head (_:tail _) :: Int-  , head (_:tail xs) :: Int-  , head (_:tail []) :: Int-  , head (_:tail (_:_)) :: Int-  , head (_:_:_) :: Int-  , head (_:_:xs) :: Int-  , head (_:_:ys) :: Int-  , head [_,_] :: Int-  , head [_,_,0] :: Int-  , head (_:_:tail _) :: Int-  , head (_:_:_:_) :: Int-  , head (_:_:_:xs) :: Int-  , head [_,_,_] :: Int-  , head (_:_:_:_:_) :: Int-  , head (_:_:x:_) :: Int-  , head (_:_:0:_) :: Int-  , head (_:_:id _:_) :: Int-  , head (_:_:(_ ++ _)) :: Int-  , head (_:x:_) :: Int-  , head (_:x:xs) :: Int-  , head [_,x] :: Int-  , head (_:x:_:_) :: Int-  , head (_:y:_) :: Int-  , head (_:0:_) :: Int-  , head (_:0:xs) :: Int-  , head [_,0] :: Int-  , head (_:0:_:_) :: Int-  , head (_:1:_) :: Int-  , head (_:ord _:_) :: Int-  , head (_:id _:_) :: Int-  , head (_:id _:xs) :: Int-  , head [_,id _] :: Int-  , head (_:id _:_:_) :: Int-  , head (_:id x:_) :: Int-  , head (_:id 0:_) :: Int-  , head (_:id (id _):_) :: Int-  , head (_:abs _:_) :: Int-  , head (_:negate _:_) :: Int-  , head (_:head _:_) :: Int-  , head (_:_ + _:_) :: Int-  , head (_:insert _ _) :: Int-  , head (_:(_ ++ _)) :: Int-  , head (_:(_ ++ xs)) :: Int-  , head (_:(_ ++ [])) :: Int-  , head (_:(_ ++ (_:_))) :: Int-  , head (_:(xs ++ _)) :: Int-  , head (_:([] ++ _)) :: Int-  , head (_:((_:_) ++ _)) :: Int-  , head (x:_) :: Int-  , head (x:xs) :: Int-  , head (x:ys) :: Int-  , head [x] :: Int-  , head [x,0] :: Int-  , head (x:tail _) :: Int-  , head (x:_:_) :: Int-  , head (x:_:xs) :: Int-  , head [x,_] :: Int-  , head (x:_:_:_) :: Int-  , head (x:x:_) :: Int-  , head (x:0:_) :: Int-  , head (x:id _:_) :: Int-  , head (x:(_ ++ _)) :: Int-  , head (y:_) :: Int-  , head (y:xs) :: Int-  , head [y] :: Int-  , head (y:_:_) :: Int-  , head (z:_) :: Int-  , head (0:_) :: Int-  , head (0:xs) :: Int-  , head (0:ys) :: Int-  , head [0] :: Int-  , head [0,0] :: Int-  , head (0:tail _) :: Int-  , head (0:_:_) :: Int-  , head (0:_:xs) :: Int-  , head [0,_] :: Int-  , head (0:_:_:_) :: Int-  , head (0:x:_) :: Int-  , head (0:0:_) :: Int-  , head (0:id _:_) :: Int-  , head (0:(_ ++ _)) :: Int-  , head (1:_) :: Int-  , head (1:xs) :: Int-  , head [1] :: Int-  , head (1:_:_) :: Int-  , head ((-1):_) :: Int-  , head (f _:_) :: Int-  , head (ord _:_) :: Int-  , head (ord _:xs) :: Int-  , head [ord _] :: Int-  , head (ord _:_:_) :: Int-  , head (ord c:_) :: Int-  , head (ord 'a':_) :: Int-  , head (id _:_) :: Int-  , head (id _:xs) :: Int-  , head (id _:ys) :: Int-  , head [id _] :: Int-  , head [id _,0] :: Int-  , head (id _:tail _) :: Int-  , head (id _:_:_) :: Int-  , head (id _:_:xs) :: Int-  , head [id _,_] :: Int-  , head (id _:_:_:_) :: Int-  , head (id _:x:_) :: Int-  , head (id _:0:_) :: Int-  , head (id _:id _:_) :: Int-  , head (id _:(_ ++ _)) :: Int-  , head (id x:_) :: Int-  , head (id x:xs) :: Int-  , head [id x] :: Int-  , head (id x:_:_) :: Int-  , head (id y:_) :: Int-  , head (id 0:_) :: Int-  , head (id 0:xs) :: Int-  , head [id 0] :: Int-  , head (id 0:_:_) :: Int-  , head (id 1:_) :: Int-  , head (id (ord _):_) :: Int-  , head (id (id _):_) :: Int-  , head (id (id _):xs) :: Int-  , head [id (id _)] :: Int-  , head (id (id _):_:_) :: Int-  , head (id (id x):_) :: Int-  , head (id (id 0):_) :: Int-  , head (id (id (id _)):_) :: Int-  , head (id (abs _):_) :: Int-  , head (id (negate _):_) :: Int-  , head (id (head _):_) :: Int-  , head (id (_ + _):_) :: Int-  , head (abs _:_) :: Int-  , head (abs _:xs) :: Int-  , head [abs _] :: Int-  , head (abs _:_:_) :: Int-  , head (abs x:_) :: Int-  , head (abs 0:_) :: Int-  , head (abs (id _):_) :: Int-  , head (negate _:_) :: Int-  , head (negate _:xs) :: Int-  , head [negate _] :: Int-  , head (negate _:_:_) :: Int-  , head (negate x:_) :: Int-  , head (negate 0:_) :: Int-  , head (negate (id _):_) :: Int-  , head (head _:_) :: Int-  , head (head _:xs) :: Int-  , head [head _] :: Int-  , head (head _:_:_) :: Int-  , head (head xs:_) :: Int-  , head (head []:_) :: Int-  , head (head (_:_):_) :: Int-  , head (_ * _:_) :: Int-  , head (_ + _:_) :: Int-  , head (_ + _:xs) :: Int-  , head [_ + _] :: Int-  , head (_ + _:_:_) :: Int-  , head (_ + x:_) :: Int-  , head (_ + 0:_) :: Int-  , head (_ + id _:_) :: Int-  , head (x + _:_) :: Int-  , head (0 + _:_) :: Int-  , head (id _ + _:_) :: Int-  , head (insert _ _) :: Int-  , head (insert _ xs) :: Int-  , head (insert _ []) :: Int-  , head (insert _ (_:_)) :: Int-  , head (insert x _) :: Int-  , head (insert 0 _) :: Int-  , head (insert (id _) _) :: Int-  , head (_ ++ _) :: Int-  , head (_ ++ xs) :: Int-  , head (_ ++ ys) :: Int-  , head (_ ++ []) :: Int-  , head (_ ++ [0]) :: Int-  , head (_ ++ tail _) :: Int-  , head (_ ++ (_:_)) :: Int-  , head (_ ++ (_:xs)) :: Int-  , head (_ ++ [_]) :: Int-  , head (_ ++ (_:_:_)) :: Int-  , head (_ ++ (x:_)) :: Int-  , head (_ ++ (0:_)) :: Int-  , head (_ ++ (id _:_)) :: Int-  , head (_ ++ (_ ++ _)) :: Int-  , head (xs ++ _) :: Int-  , head (xs ++ xs) :: Int-  , head (xs ++ []) :: Int-  , head (xs ++ (_:_)) :: Int-  , head (ys ++ _) :: Int-  , head ([] ++ _) :: Int-  , head ([] ++ xs) :: Int-  , head ([] ++ []) :: Int-  , head ([] ++ (_:_)) :: Int-  , head ([0] ++ _) :: Int-  , head (tail _ ++ _) :: Int-  , head ((_:_) ++ _) :: Int-  , head ((_:_) ++ xs) :: Int-  , head ((_:_) ++ []) :: Int-  , head ((_:_) ++ (_:_)) :: Int-  , head ((_:xs) ++ _) :: Int-  , head ([_] ++ _) :: Int-  , head ((_:_:_) ++ _) :: Int-  , head ((x:_) ++ _) :: Int-  , head ((0:_) ++ _) :: Int-  , head ((id _:_) ++ _) :: Int-  , head ((_ ++ _) ++ _) :: Int-  , sort _ :: [Int]-  , sort xs :: [Int]-  , sort ys :: [Int]-  , sort [] :: [Int]-  , sort [0] :: [Int]-  , sort (tail _) :: [Int]-  , sort (_:_) :: [Int]-  , sort (_:xs) :: [Int]-  , sort [_] :: [Int]-  , sort (_:_:_) :: [Int]-  , sort (x:_) :: [Int]-  , sort (0:_) :: [Int]-  , sort (id _:_) :: [Int]-  , sort (_ ++ _) :: [Int]-  , tail _ :: [Int]-  , tail xs :: [Int]-  , tail ys :: [Int]-  , tail zs :: [Int]-  , tail [] :: [Int]-  , tail [0] :: [Int]-  , tail [1] :: [Int]-  , tail [0,0] :: [Int]-  , tail (sort _) :: [Int]-  , tail (tail _) :: [Int]-  , tail (tail xs) :: [Int]-  , tail (tail []) :: [Int]-  , tail (tail (_:_)) :: [Int]-  , tail (_:_) :: [Int]-  , tail (_:xs) :: [Int]-  , tail (_:ys) :: [Int]-  , tail [_] :: [Int]-  , tail [_,0] :: [Int]-  , tail (_:tail _) :: [Int]-  , tail (_:_:_) :: [Int]-  , tail (_:_:xs) :: [Int]-  , tail [_,_] :: [Int]-  , tail (_:_:_:_) :: [Int]-  , tail (_:x:_) :: [Int]-  , tail (_:0:_) :: [Int]-  , tail (_:id _:_) :: [Int]-  , tail (_:(_ ++ _)) :: [Int]-  , tail (x:_) :: [Int]-  , tail (x:xs) :: [Int]-  , tail [x] :: [Int]-  , tail (x:_:_) :: [Int]-  , tail (y:_) :: [Int]-  , tail (0:_) :: [Int]-  , tail (0:xs) :: [Int]-  , tail [0] :: [Int]-  , tail (0:_:_) :: [Int]-  , tail (1:_) :: [Int]-  , tail (ord _:_) :: [Int]-  , tail (id _:_) :: [Int]-  , tail (id _:xs) :: [Int]-  , tail [id _] :: [Int]-  , tail (id _:_:_) :: [Int]-  , tail (id x:_) :: [Int]-  , tail (id 0:_) :: [Int]-  , tail (id (id _):_) :: [Int]-  , tail (abs _:_) :: [Int]-  , tail (negate _:_) :: [Int]-  , tail (head _:_) :: [Int]-  , tail (_ + _:_) :: [Int]-  , tail (insert _ _) :: [Int]-  , tail (_ ++ _) :: [Int]-  , tail (_ ++ xs) :: [Int]-  , tail (_ ++ []) :: [Int]-  , tail (_ ++ (_:_)) :: [Int]-  , tail (xs ++ _) :: [Int]-  , tail ([] ++ _) :: [Int]-  , tail ((_:_) ++ _) :: [Int]-  , (_ &&) :: Bool -> Bool-  , (p &&) :: Bool -> Bool-  , (False &&) :: Bool -> Bool-  , (True &&) :: Bool -> Bool-  , (not _ &&) :: Bool -> Bool-  , (_ ||) :: Bool -> Bool-  , (p ||) :: Bool -> Bool-  , (q ||) :: Bool -> Bool-  , (False ||) :: Bool -> Bool-  , (True ||) :: Bool -> Bool-  , (not _ ||) :: Bool -> Bool-  , (not p ||) :: Bool -> Bool-  , (not False ||) :: Bool -> Bool-  , (not True ||) :: Bool -> Bool-  , (not (not _) ||) :: Bool -> Bool-  , ((_ || _) ||) :: Bool -> Bool-  , (_ ==>) :: Bool -> Bool-  , (_ *) :: Int -> Int-  , (x *) :: Int -> Int-  , (y *) :: Int -> Int-  , (0 *) :: Int -> Int-  , (1 *) :: Int -> Int-  , (ord _ *) :: Int -> Int-  , (id _ *) :: Int -> Int-  , (id x *) :: Int -> Int-  , (id 0 *) :: Int -> Int-  , (id (id _) *) :: Int -> Int-  , (abs _ *) :: Int -> Int-  , (negate _ *) :: Int -> Int-  , (head _ *) :: Int -> Int-  , ((_ + _) *) :: Int -> Int-  , (_ +) :: Int -> Int-  , (x +) :: Int -> Int-  , (y +) :: Int -> Int-  , (z +) :: Int -> Int-  , (0 +) :: Int -> Int-  , (1 +) :: Int -> Int-  , ((-1) +) :: Int -> Int-  , (f _ +) :: Int -> Int-  , (ord _ +) :: Int -> Int-  , (ord c +) :: Int -> Int-  , (ord 'a' +) :: Int -> Int-  , (id _ +) :: Int -> Int-  , (id x +) :: Int -> Int-  , (id y +) :: Int -> Int-  , (id 0 +) :: Int -> Int-  , (id 1 +) :: Int -> Int-  , (id (ord _) +) :: Int -> Int-  , (id (id _) +) :: Int -> Int-  , (id (id x) +) :: Int -> Int-  , (id (id 0) +) :: Int -> Int-  , (id (id (id _)) +) :: Int -> Int-  , (id (abs _) +) :: Int -> Int-  , (id (negate _) +) :: Int -> Int-  , (id (head _) +) :: Int -> Int-  , (id (_ + _) +) :: Int -> Int-  , (abs _ +) :: Int -> Int-  , (abs x +) :: Int -> Int-  , (abs 0 +) :: Int -> Int-  , (abs (id _) +) :: Int -> Int-  , (negate _ +) :: Int -> Int-  , (negate x +) :: Int -> Int-  , (negate 0 +) :: Int -> Int-  , (negate (id _) +) :: Int -> Int-  , (head _ +) :: Int -> Int-  , (head xs +) :: Int -> Int-  , (head [] +) :: Int -> Int-  , (head (_:_) +) :: Int -> Int-  , (_ * _ +) :: Int -> Int-  , ((_ + _) +) :: Int -> Int-  , ((_ + x) +) :: Int -> Int-  , ((_ + 0) +) :: Int -> Int-  , ((_ + id _) +) :: Int -> Int-  , ((x + _) +) :: Int -> Int-  , ((0 + _) +) :: Int -> Int-  , ((id _ + _) +) :: Int -> Int-  , _ < _ :: Bool-  , _ && _ :: Bool-  , _ && p :: Bool-  , _ && q :: Bool-  , _ && False :: Bool-  , _ && True :: Bool-  , _ && not _ :: Bool-  , _ && not p :: Bool-  , _ && not False :: Bool-  , _ && not True :: Bool-  , _ && not (not _) :: Bool-  , _ && (_ || _) :: Bool-  , p && _ :: Bool-  , p && p :: Bool-  , p && False :: Bool-  , p && True :: Bool-  , p && not _ :: Bool-  , q && _ :: Bool-  , False && _ :: Bool-  , False && p :: Bool-  , False && False :: Bool-  , False && True :: Bool-  , False && not _ :: Bool-  , True && _ :: Bool-  , True && p :: Bool-  , True && False :: Bool-  , True && True :: Bool-  , True && not _ :: Bool-  , not _ && _ :: Bool-  , not _ && p :: Bool-  , not _ && False :: Bool-  , not _ && True :: Bool-  , not _ && not _ :: Bool-  , not p && _ :: Bool-  , not False && _ :: Bool-  , not True && _ :: Bool-  , not (not _) && _ :: Bool-  , (_ || _) && _ :: Bool-  , _ <= _ :: Bool-  , _ <= p :: Bool-  , _ <= False :: Bool-  , _ <= True :: Bool-  , _ <= not _ :: Bool-  , p <= _ :: Bool-  , False <= _ :: Bool-  , True <= _ :: Bool-  , not _ <= _ :: Bool-  , _ == _ :: Bool-  , _ == p :: Bool-  , _ == q :: Bool-  , _ == False :: Bool-  , _ == True :: Bool-  , _ == not _ :: Bool-  , _ == not p :: Bool-  , _ == not False :: Bool-  , _ == not True :: Bool-  , _ == not (not _) :: Bool-  , _ == (_ || _) :: Bool-  , p == _ :: Bool-  , p == p :: Bool-  , p == False :: Bool-  , p == True :: Bool-  , p == not _ :: Bool-  , q == _ :: Bool-  , False == _ :: Bool-  , False == p :: Bool-  , False == False :: Bool-  , False == True :: Bool-  , False == not _ :: Bool-  , True == _ :: Bool-  , True == p :: Bool-  , True == False :: Bool-  , True == True :: Bool-  , True == not _ :: Bool-  , not _ == _ :: Bool-  , not _ == p :: Bool-  , not _ == False :: Bool-  , not _ == True :: Bool-  , not _ == not _ :: Bool-  , not p == _ :: Bool-  , not False == _ :: Bool-  , not True == _ :: Bool-  , not (not _) == _ :: Bool-  , (_ || _) == _ :: Bool-  , _ || _ :: Bool-  , _ || p :: Bool-  , _ || q :: Bool-  , _ || r :: Bool-  , _ || False :: Bool-  , _ || True :: Bool-  , _ || not _ :: Bool-  , _ || not p :: Bool-  , _ || not q :: Bool-  , _ || not False :: Bool-  , _ || not True :: Bool-  , _ || not (not _) :: Bool-  , _ || not (not p) :: Bool-  , _ || not (not False) :: Bool-  , _ || not (not True) :: Bool-  , _ || not (not (not _)) :: Bool-  , _ || not (_ || _) :: Bool-  , _ || odd _ :: Bool-  , _ || even _ :: Bool-  , _ || _ && _ :: Bool-  , _ || _ == _ :: Bool-  , _ || (_ || _) :: Bool-  , _ || (_ || p) :: Bool-  , _ || (_ || False) :: Bool-  , _ || (_ || True) :: Bool-  , _ || (_ || not _) :: Bool-  , _ || (p || _) :: Bool-  , _ || (False || _) :: Bool-  , _ || (True || _) :: Bool-  , _ || (not _ || _) :: Bool-  , _ || _ == _ :: Bool-  , _ || elem _ _ :: Bool-  , p || _ :: Bool-  , p || p :: Bool-  , p || q :: Bool-  , p || False :: Bool-  , p || True :: Bool-  , p || not _ :: Bool-  , p || not p :: Bool-  , p || not False :: Bool-  , p || not True :: Bool-  , p || not (not _) :: Bool-  , p || (_ || _) :: Bool-  , q || _ :: Bool-  , q || p :: Bool-  , q || False :: Bool-  , q || True :: Bool-  , q || not _ :: Bool-  , r || _ :: Bool-  , False || _ :: Bool-  , False || p :: Bool-  , False || q :: Bool-  , False || False :: Bool-  , False || True :: Bool-  , False || not _ :: Bool-  , False || not p :: Bool-  , False || not False :: Bool-  , False || not True :: Bool-  , False || not (not _) :: Bool-  , False || (_ || _) :: Bool-  , True || _ :: Bool-  , True || p :: Bool-  , True || q :: Bool-  , True || False :: Bool-  , True || True :: Bool-  , True || not _ :: Bool-  , True || not p :: Bool-  , True || not False :: Bool-  , True || not True :: Bool-  , True || not (not _) :: Bool-  , True || (_ || _) :: Bool-  , not _ || _ :: Bool-  , not _ || p :: Bool-  , not _ || q :: Bool-  , not _ || False :: Bool-  , not _ || True :: Bool-  , not _ || not _ :: Bool-  , not _ || not p :: Bool-  , not _ || not False :: Bool-  , not _ || not True :: Bool-  , not _ || not (not _) :: Bool-  , not _ || (_ || _) :: Bool-  , not p || _ :: Bool-  , not p || p :: Bool-  , not p || False :: Bool-  , not p || True :: Bool-  , not p || not _ :: Bool-  , not q || _ :: Bool-  , not False || _ :: Bool-  , not False || p :: Bool-  , not False || False :: Bool-  , not False || True :: Bool-  , not False || not _ :: Bool-  , not True || _ :: Bool-  , not True || p :: Bool-  , not True || False :: Bool-  , not True || True :: Bool-  , not True || not _ :: Bool-  , not (not _) || _ :: Bool-  , not (not _) || p :: Bool-  , not (not _) || False :: Bool-  , not (not _) || True :: Bool-  , not (not _) || not _ :: Bool-  , not (not p) || _ :: Bool-  , not (not False) || _ :: Bool-  , not (not True) || _ :: Bool-  , not (not (not _)) || _ :: Bool-  , not (_ || _) || _ :: Bool-  , odd _ || _ :: Bool-  , even _ || _ :: Bool-  , _ && _ || _ :: Bool-  , _ == _ || _ :: Bool-  , (_ || _) || _ :: Bool-  , (_ || _) || p :: Bool-  , (_ || _) || False :: Bool-  , (_ || _) || True :: Bool-  , (_ || _) || not _ :: Bool-  , (_ || p) || _ :: Bool-  , (_ || False) || _ :: Bool-  , (_ || True) || _ :: Bool-  , (_ || not _) || _ :: Bool-  , (p || _) || _ :: Bool-  , (False || _) || _ :: Bool-  , (True || _) || _ :: Bool-  , (not _ || _) || _ :: Bool-  , _ == _ || _ :: Bool-  , elem _ _ || _ :: Bool-  , _ ==> _ :: Bool-  , _ ==> p :: Bool-  , _ ==> False :: Bool-  , _ ==> True :: Bool-  , _ ==> not _ :: Bool-  , p ==> _ :: Bool-  , False ==> _ :: Bool-  , True ==> _ :: Bool-  , not _ ==> _ :: Bool-  , _ < _ :: Bool-  , _ <= _ :: Bool-  , _ <= x :: Bool-  , _ <= 0 :: Bool-  , _ <= id _ :: Bool-  , x <= _ :: Bool-  , 0 <= _ :: Bool-  , id _ <= _ :: Bool-  , _ == _ :: Bool-  , _ == x :: Bool-  , _ == y :: Bool-  , _ == 0 :: Bool-  , _ == 1 :: Bool-  , _ == ord _ :: Bool-  , _ == id _ :: Bool-  , _ == id x :: Bool-  , _ == id 0 :: Bool-  , _ == id (id _) :: Bool-  , _ == abs _ :: Bool-  , _ == negate _ :: Bool-  , _ == head _ :: Bool-  , _ == _ + _ :: Bool-  , x == _ :: Bool-  , x == x :: Bool-  , x == 0 :: Bool-  , x == id _ :: Bool-  , y == _ :: Bool-  , 0 == _ :: Bool-  , 0 == x :: Bool-  , 0 == 0 :: Bool-  , 0 == id _ :: Bool-  , 1 == _ :: Bool-  , ord _ == _ :: Bool-  , id _ == _ :: Bool-  , id _ == x :: Bool-  , id _ == 0 :: Bool-  , id _ == id _ :: Bool-  , id x == _ :: Bool-  , id 0 == _ :: Bool-  , id (id _) == _ :: Bool-  , abs _ == _ :: Bool-  , negate _ == _ :: Bool-  , head _ == _ :: Bool-  , _ + _ == _ :: Bool-  , _ * _ :: Int-  , _ * x :: Int-  , _ * y :: Int-  , _ * z :: Int-  , _ * 0 :: Int-  , _ * 1 :: Int-  , _ * (-1) :: Int-  , _ * f _ :: Int-  , _ * ord _ :: Int-  , _ * ord c :: Int-  , _ * ord 'a' :: Int-  , _ * id _ :: Int-  , _ * id x :: Int-  , _ * id y :: Int-  , _ * id 0 :: Int-  , _ * id 1 :: Int-  , _ * id (ord _) :: Int-  , _ * id (id _) :: Int-  , _ * id (id x) :: Int-  , _ * id (id 0) :: Int-  , _ * id (id (id _)) :: Int-  , _ * id (abs _) :: Int-  , _ * id (negate _) :: Int-  , _ * id (head _) :: Int-  , _ * id (_ + _) :: Int-  , _ * abs _ :: Int-  , _ * abs x :: Int-  , _ * abs 0 :: Int-  , _ * abs (id _) :: Int-  , _ * negate _ :: Int-  , _ * negate x :: Int-  , _ * negate 0 :: Int-  , _ * negate (id _) :: Int-  , _ * head _ :: Int-  , _ * head xs :: Int-  , _ * head [] :: Int-  , _ * head (_:_) :: Int-  , _ * (_ * _) :: Int-  , _ * (_ + _) :: Int-  , _ * (_ + x) :: Int-  , _ * (_ + 0) :: Int-  , _ * (_ + id _) :: Int-  , _ * (x + _) :: Int-  , _ * (0 + _) :: Int-  , _ * (id _ + _) :: Int-  , x * _ :: Int-  , x * x :: Int-  , x * y :: Int-  , x * 0 :: Int-  , x * 1 :: Int-  , x * ord _ :: Int-  , x * id _ :: Int-  , x * id x :: Int-  , x * id 0 :: Int-  , x * id (id _) :: Int-  , x * abs _ :: Int-  , x * negate _ :: Int-  , x * head _ :: Int-  , x * (_ + _) :: Int-  , y * _ :: Int-  , y * x :: Int-  , y * 0 :: Int-  , y * id _ :: Int-  , z * _ :: Int-  , 0 * _ :: Int-  , 0 * x :: Int-  , 0 * y :: Int-  , 0 * 0 :: Int-  , 0 * 1 :: Int-  , 0 * ord _ :: Int-  , 0 * id _ :: Int-  , 0 * id x :: Int-  , 0 * id 0 :: Int-  , 0 * id (id _) :: Int-  , 0 * abs _ :: Int-  , 0 * negate _ :: Int-  , 0 * head _ :: Int-  , 0 * (_ + _) :: Int-  , 1 * _ :: Int-  , 1 * x :: Int-  , 1 * 0 :: Int-  , 1 * id _ :: Int-  , (-1) * _ :: Int-  , f _ * _ :: Int-  , ord _ * _ :: Int-  , ord _ * x :: Int-  , ord _ * 0 :: Int-  , ord _ * id _ :: Int-  , ord c * _ :: Int-  , ord 'a' * _ :: Int-  , id _ * _ :: Int-  , id _ * x :: Int-  , id _ * y :: Int-  , id _ * 0 :: Int-  , id _ * 1 :: Int-  , id _ * ord _ :: Int-  , id _ * id _ :: Int-  , id _ * id x :: Int-  , id _ * id 0 :: Int-  , id _ * id (id _) :: Int-  , id _ * abs _ :: Int-  , id _ * negate _ :: Int-  , id _ * head _ :: Int-  , id _ * (_ + _) :: Int-  , id x * _ :: Int-  , id x * x :: Int-  , id x * 0 :: Int-  , id x * id _ :: Int-  , id y * _ :: Int-  , id 0 * _ :: Int-  , id 0 * x :: Int-  , id 0 * 0 :: Int-  , id 0 * id _ :: Int-  , id 1 * _ :: Int-  , id (ord _) * _ :: Int-  , id (id _) * _ :: Int-  , id (id _) * x :: Int-  , id (id _) * 0 :: Int-  , id (id _) * id _ :: Int-  , id (id x) * _ :: Int-  , id (id 0) * _ :: Int-  , id (id (id _)) * _ :: Int-  , id (abs _) * _ :: Int-  , id (negate _) * _ :: Int-  , id (head _) * _ :: Int-  , id (_ + _) * _ :: Int-  , abs _ * _ :: Int-  , abs _ * x :: Int-  , abs _ * 0 :: Int-  , abs _ * id _ :: Int-  , abs x * _ :: Int-  , abs 0 * _ :: Int-  , abs (id _) * _ :: Int-  , negate _ * _ :: Int-  , negate _ * x :: Int-  , negate _ * 0 :: Int-  , negate _ * id _ :: Int-  , negate x * _ :: Int-  , negate 0 * _ :: Int-  , negate (id _) * _ :: Int-  , head _ * _ :: Int-  , head _ * x :: Int-  , head _ * 0 :: Int-  , head _ * id _ :: Int-  , head xs * _ :: Int-  , head [] * _ :: Int-  , head (_:_) * _ :: Int-  , (_ * _) * _ :: Int-  , (_ + _) * _ :: Int-  , (_ + _) * x :: Int-  , (_ + _) * 0 :: Int-  , (_ + _) * id _ :: Int-  , (_ + x) * _ :: Int-  , (_ + 0) * _ :: Int-  , (_ + id _) * _ :: Int-  , (x + _) * _ :: Int-  , (0 + _) * _ :: Int-  , (id _ + _) * _ :: Int-  , _ + _ :: Int-  , _ + x :: Int-  , _ + y :: Int-  , _ + z :: Int-  , _ + x' :: Int-  , _ + 0 :: Int-  , _ + 1 :: Int-  , _ + 2 :: Int-  , _ + (-1) :: Int-  , _ + f _ :: Int-  , _ + f x :: Int-  , _ + f 0 :: Int-  , _ + f (id _) :: Int-  , _ + g _ :: Int-  , _ + ord _ :: Int-  , _ + ord c :: Int-  , _ + ord d :: Int-  , _ + ord ' ' :: Int-  , _ + ord 'a' :: Int-  , _ + id _ :: Int-  , _ + id x :: Int-  , _ + id y :: Int-  , _ + id z :: Int-  , _ + id 0 :: Int-  , _ + id 1 :: Int-  , _ + id (-1) :: Int-  , _ + id (f _) :: Int-  , _ + id (ord _) :: Int-  , _ + id (ord c) :: Int-  , _ + id (ord 'a') :: Int-  , _ + id (id _) :: Int-  , _ + id (id x) :: Int-  , _ + id (id y) :: Int-  , _ + id (id 0) :: Int-  , _ + id (id 1) :: Int-  , _ + id (id (ord _)) :: Int-  , _ + id (id (id _)) :: Int-  , _ + id (id (id x)) :: Int-  , _ + id (id (id 0)) :: Int-  , _ + id (id (id (id _))) :: Int-  , _ + id (id (abs _)) :: Int-  , _ + id (id (negate _)) :: Int-  , _ + id (id (head _)) :: Int-  , _ + id (id (_ + _)) :: Int-  , _ + id (abs _) :: Int-  , _ + id (abs x) :: Int-  , _ + id (abs 0) :: Int-  , _ + id (abs (id _)) :: Int-  , _ + id (negate _) :: Int-  , _ + id (negate x) :: Int-  , _ + id (negate 0) :: Int-  , _ + id (negate (id _)) :: Int-  , _ + id (head _) :: Int-  , _ + id (head xs) :: Int-  , _ + id (head []) :: Int-  , _ + id (head (_:_)) :: Int-  , _ + id (_ * _) :: Int-  , _ + id (_ + _) :: Int-  , _ + id (_ + x) :: Int-  , _ + id (_ + 0) :: Int-  , _ + id (_ + id _) :: Int-  , _ + id (x + _) :: Int-  , _ + id (0 + _) :: Int-  , _ + id (id _ + _) :: Int-  , _ + abs _ :: Int-  , _ + abs x :: Int-  , _ + abs y :: Int-  , _ + abs 0 :: Int-  , _ + abs 1 :: Int-  , _ + abs (ord _) :: Int-  , _ + abs (id _) :: Int-  , _ + abs (id x) :: Int-  , _ + abs (id 0) :: Int-  , _ + abs (id (id _)) :: Int-  , _ + abs (abs _) :: Int-  , _ + abs (negate _) :: Int-  , _ + abs (head _) :: Int-  , _ + abs (_ + _) :: Int-  , _ + negate _ :: Int-  , _ + negate x :: Int-  , _ + negate y :: Int-  , _ + negate 0 :: Int-  , _ + negate 1 :: Int-  , _ + negate (ord _) :: Int-  , _ + negate (id _) :: Int-  , _ + negate (id x) :: Int-  , _ + negate (id 0) :: Int-  , _ + negate (id (id _)) :: Int-  , _ + negate (abs _) :: Int-  , _ + negate (negate _) :: Int-  , _ + negate (head _) :: Int-  , _ + negate (_ + _) :: Int-  , _ + head _ :: Int-  , _ + head xs :: Int-  , _ + head ys :: Int-  , _ + head [] :: Int-  , _ + head [0] :: Int-  , _ + head (tail _) :: Int-  , _ + head (_:_) :: Int-  , _ + head (_:xs) :: Int-  , _ + head [_] :: Int-  , _ + head (_:_:_) :: Int-  , _ + head (x:_) :: Int-  , _ + head (0:_) :: Int-  , _ + head (id _:_) :: Int-  , _ + head (_ ++ _) :: Int-  , _ + _ * _ :: Int-  , _ + _ * x :: Int-  , _ + _ * 0 :: Int-  , _ + _ * id _ :: Int-  , _ + x * _ :: Int-  , _ + 0 * _ :: Int-  , _ + id _ * _ :: Int-  , _ + (_ + _) :: Int-  , _ + (_ + x) :: Int-  , _ + (_ + y) :: Int-  , _ + (_ + 0) :: Int-  , _ + (_ + 1) :: Int-  , _ + (_ + ord _) :: Int-  , _ + (_ + id _) :: Int-  , _ + (_ + id x) :: Int-  , _ + (_ + id 0) :: Int-  , _ + (_ + id (id _)) :: Int-  , _ + (_ + abs _) :: Int-  , _ + (_ + negate _) :: Int-  , _ + (_ + head _) :: Int-  , _ + (_ + (_ + _)) :: Int-  , _ + (x + _) :: Int-  , _ + (x + x) :: Int-  , _ + (x + 0) :: Int-  , _ + (x + id _) :: Int-  , _ + (y + _) :: Int-  , _ + (0 + _) :: Int-  , _ + (0 + x) :: Int-  , _ + (0 + 0) :: Int-  , _ + (0 + id _) :: Int-  , _ + (1 + _) :: Int-  , _ + (ord _ + _) :: Int-  , _ + (id _ + _) :: Int-  , _ + (id _ + x) :: Int-  , _ + (id _ + 0) :: Int-  , _ + (id _ + id _) :: Int-  , _ + (id x + _) :: Int-  , _ + (id 0 + _) :: Int-  , _ + (id (id _) + _) :: Int-  , _ + (abs _ + _) :: Int-  , _ + (negate _ + _) :: Int-  , _ + (head _ + _) :: Int-  , _ + ((_ + _) + _) :: Int-  , x + _ :: Int-  , x + x :: Int-  , x + y :: Int-  , x + z :: Int-  , x + 0 :: Int-  , x + 1 :: Int-  , x + (-1) :: Int-  , x + f _ :: Int-  , x + ord _ :: Int-  , x + ord c :: Int-  , x + ord 'a' :: Int-  , x + id _ :: Int-  , x + id x :: Int-  , x + id y :: Int-  , x + id 0 :: Int-  , x + id 1 :: Int-  , x + id (ord _) :: Int-  , x + id (id _) :: Int-  , x + id (id x) :: Int-  , x + id (id 0) :: Int-  , x + id (id (id _)) :: Int-  , x + id (abs _) :: Int-  , x + id (negate _) :: Int-  , x + id (head _) :: Int-  , x + id (_ + _) :: Int-  , x + abs _ :: Int-  , x + abs x :: Int-  , x + abs 0 :: Int-  , x + abs (id _) :: Int-  , x + negate _ :: Int-  , x + negate x :: Int-  , x + negate 0 :: Int-  , x + negate (id _) :: Int-  , x + head _ :: Int-  , x + head xs :: Int-  , x + head [] :: Int-  , x + head (_:_) :: Int-  , x + _ * _ :: Int-  , x + (_ + _) :: Int-  , x + (_ + x) :: Int-  , x + (_ + 0) :: Int-  , x + (_ + id _) :: Int-  , x + (x + _) :: Int-  , x + (0 + _) :: Int-  , x + (id _ + _) :: Int-  , y + _ :: Int-  , y + x :: Int-  , y + y :: Int-  , y + 0 :: Int-  , y + 1 :: Int-  , y + ord _ :: Int-  , y + id _ :: Int-  , y + id x :: Int-  , y + id 0 :: Int-  , y + id (id _) :: Int-  , y + abs _ :: Int-  , y + negate _ :: Int-  , y + head _ :: Int-  , y + (_ + _) :: Int-  , z + _ :: Int-  , z + x :: Int-  , z + 0 :: Int-  , z + id _ :: Int-  , x' + _ :: Int-  , 0 + _ :: Int-  , 0 + x :: Int-  , 0 + y :: Int-  , 0 + z :: Int-  , 0 + 0 :: Int-  , 0 + 1 :: Int-  , 0 + (-1) :: Int-  , 0 + f _ :: Int-  , 0 + ord _ :: Int-  , 0 + ord c :: Int-  , 0 + ord 'a' :: Int-  , 0 + id _ :: Int-  , 0 + id x :: Int-  , 0 + id y :: Int-  , 0 + id 0 :: Int-  , 0 + id 1 :: Int-  , 0 + id (ord _) :: Int-  , 0 + id (id _) :: Int-  , 0 + id (id x) :: Int-  , 0 + id (id 0) :: Int-  , 0 + id (id (id _)) :: Int-  , 0 + id (abs _) :: Int-  , 0 + id (negate _) :: Int-  , 0 + id (head _) :: Int-  , 0 + id (_ + _) :: Int-  , 0 + abs _ :: Int-  , 0 + abs x :: Int-  , 0 + abs 0 :: Int-  , 0 + abs (id _) :: Int-  , 0 + negate _ :: Int-  , 0 + negate x :: Int-  , 0 + negate 0 :: Int-  , 0 + negate (id _) :: Int-  , 0 + head _ :: Int-  , 0 + head xs :: Int-  , 0 + head [] :: Int-  , 0 + head (_:_) :: Int-  , 0 + _ * _ :: Int-  , 0 + (_ + _) :: Int-  , 0 + (_ + x) :: Int-  , 0 + (_ + 0) :: Int-  , 0 + (_ + id _) :: Int-  , 0 + (x + _) :: Int-  , 0 + (0 + _) :: Int-  , 0 + (id _ + _) :: Int-  , 1 + _ :: Int-  , 1 + x :: Int-  , 1 + y :: Int-  , 1 + 0 :: Int-  , 1 + 1 :: Int-  , 1 + ord _ :: Int-  , 1 + id _ :: Int-  , 1 + id x :: Int-  , 1 + id 0 :: Int-  , 1 + id (id _) :: Int-  , 1 + abs _ :: Int-  , 1 + negate _ :: Int-  , 1 + head _ :: Int-  , 1 + (_ + _) :: Int-  , 2 + _ :: Int-  , (-1) + _ :: Int-  , (-1) + x :: Int-  , (-1) + 0 :: Int-  , (-1) + id _ :: Int-  , f _ + _ :: Int-  , f _ + x :: Int-  , f _ + 0 :: Int-  , f _ + id _ :: Int-  , f x + _ :: Int-  , f 0 + _ :: Int-  , f (id _) + _ :: Int-  , g _ + _ :: Int-  , ord _ + _ :: Int-  , ord _ + x :: Int-  , ord _ + y :: Int-  , ord _ + 0 :: Int-  , ord _ + 1 :: Int-  , ord _ + ord _ :: Int-  , ord _ + id _ :: Int-  , ord _ + id x :: Int-  , ord _ + id 0 :: Int-  , ord _ + id (id _) :: Int-  , ord _ + abs _ :: Int-  , ord _ + negate _ :: Int-  , ord _ + head _ :: Int-  , ord _ + (_ + _) :: Int-  , ord c + _ :: Int-  , ord c + x :: Int-  , ord c + 0 :: Int-  , ord c + id _ :: Int-  , ord d + _ :: Int-  , ord ' ' + _ :: Int-  , ord 'a' + _ :: Int-  , ord 'a' + x :: Int-  , ord 'a' + 0 :: Int-  , ord 'a' + id _ :: Int-  , id _ + _ :: Int-  , id _ + x :: Int-  , id _ + y :: Int-  , id _ + z :: Int-  , id _ + 0 :: Int-  , id _ + 1 :: Int-  , id _ + (-1) :: Int-  , id _ + f _ :: Int-  , id _ + ord _ :: Int-  , id _ + ord c :: Int-  , id _ + ord 'a' :: Int-  , id _ + id _ :: Int-  , id _ + id x :: Int-  , id _ + id y :: Int-  , id _ + id 0 :: Int-  , id _ + id 1 :: Int-  , id _ + id (ord _) :: Int-  , id _ + id (id _) :: Int-  , id _ + id (id x) :: Int-  , id _ + id (id 0) :: Int-  , id _ + id (id (id _)) :: Int-  , id _ + id (abs _) :: Int-  , id _ + id (negate _) :: Int-  , id _ + id (head _) :: Int-  , id _ + id (_ + _) :: Int-  , id _ + abs _ :: Int-  , id _ + abs x :: Int-  , id _ + abs 0 :: Int-  , id _ + abs (id _) :: Int-  , id _ + negate _ :: Int-  , id _ + negate x :: Int-  , id _ + negate 0 :: Int-  , id _ + negate (id _) :: Int-  , id _ + head _ :: Int-  , id _ + head xs :: Int-  , id _ + head [] :: Int-  , id _ + head (_:_) :: Int-  , id _ + _ * _ :: Int-  , id _ + (_ + _) :: Int-  , id _ + (_ + x) :: Int-  , id _ + (_ + 0) :: Int-  , id _ + (_ + id _) :: Int-  , id _ + (x + _) :: Int-  , id _ + (0 + _) :: Int-  , id _ + (id _ + _) :: Int-  , id x + _ :: Int-  , id x + x :: Int-  , id x + y :: Int-  , id x + 0 :: Int-  , id x + 1 :: Int-  , id x + ord _ :: Int-  , id x + id _ :: Int-  , id x + id x :: Int-  , id x + id 0 :: Int-  , id x + id (id _) :: Int-  , id x + abs _ :: Int-  , id x + negate _ :: Int-  , id x + head _ :: Int-  , id x + (_ + _) :: Int-  , id y + _ :: Int-  , id y + x :: Int-  , id y + 0 :: Int-  , id y + id _ :: Int-  , id z + _ :: Int-  , id 0 + _ :: Int-  , id 0 + x :: Int-  , id 0 + y :: Int-  , id 0 + 0 :: Int-  , id 0 + 1 :: Int-  , id 0 + ord _ :: Int-  , id 0 + id _ :: Int-  , id 0 + id x :: Int-  , id 0 + id 0 :: Int-  , id 0 + id (id _) :: Int-  , id 0 + abs _ :: Int-  , id 0 + negate _ :: Int-  , id 0 + head _ :: Int-  , id 0 + (_ + _) :: Int-  , id 1 + _ :: Int-  , id 1 + x :: Int-  , id 1 + 0 :: Int-  , id 1 + id _ :: Int-  , id (-1) + _ :: Int-  , id (f _) + _ :: Int-  , id (ord _) + _ :: Int-  , id (ord _) + x :: Int-  , id (ord _) + 0 :: Int-  , id (ord _) + id _ :: Int-  , id (ord c) + _ :: Int-  , id (ord 'a') + _ :: Int-  , id (id _) + _ :: Int-  , id (id _) + x :: Int-  , id (id _) + y :: Int-  , id (id _) + 0 :: Int-  , id (id _) + 1 :: Int-  , id (id _) + ord _ :: Int-  , id (id _) + id _ :: Int-  , id (id _) + id x :: Int-  , id (id _) + id 0 :: Int-  , id (id _) + id (id _) :: Int-  , id (id _) + abs _ :: Int-  , id (id _) + negate _ :: Int-  , id (id _) + head _ :: Int-  , id (id _) + (_ + _) :: Int-  , id (id x) + _ :: Int-  , id (id x) + x :: Int-  , id (id x) + 0 :: Int-  , id (id x) + id _ :: Int-  , id (id y) + _ :: Int-  , id (id 0) + _ :: Int-  , id (id 0) + x :: Int-  , id (id 0) + 0 :: Int-  , id (id 0) + id _ :: Int-  , id (id 1) + _ :: Int-  , id (id (ord _)) + _ :: Int-  , id (id (id _)) + _ :: Int-  , id (id (id _)) + x :: Int-  , id (id (id _)) + 0 :: Int-  , id (id (id _)) + id _ :: Int-  , id (id (id x)) + _ :: Int-  , id (id (id 0)) + _ :: Int-  , id (id (id (id _))) + _ :: Int-  , id (id (abs _)) + _ :: Int-  , id (id (negate _)) + _ :: Int-  , id (id (head _)) + _ :: Int-  , id (id (_ + _)) + _ :: Int-  , id (abs _) + _ :: Int-  , id (abs _) + x :: Int-  , id (abs _) + 0 :: Int-  , id (abs _) + id _ :: Int-  , id (abs x) + _ :: Int-  , id (abs 0) + _ :: Int-  , id (abs (id _)) + _ :: Int-  , id (negate _) + _ :: Int-  , id (negate _) + x :: Int-  , id (negate _) + 0 :: Int-  , id (negate _) + id _ :: Int-  , id (negate x) + _ :: Int-  , id (negate 0) + _ :: Int-  , id (negate (id _)) + _ :: Int-  , id (head _) + _ :: Int-  , id (head _) + x :: Int-  , id (head _) + 0 :: Int-  , id (head _) + id _ :: Int-  , id (head xs) + _ :: Int-  , id (head []) + _ :: Int-  , id (head (_:_)) + _ :: Int-  , id (_ * _) + _ :: Int-  , id (_ + _) + _ :: Int-  , id (_ + _) + x :: Int-  , id (_ + _) + 0 :: Int-  , id (_ + _) + id _ :: Int-  , id (_ + x) + _ :: Int-  , id (_ + 0) + _ :: Int-  , id (_ + id _) + _ :: Int-  , id (x + _) + _ :: Int-  , id (0 + _) + _ :: Int-  , id (id _ + _) + _ :: Int-  , abs _ + _ :: Int-  , abs _ + x :: Int-  , abs _ + y :: Int-  , abs _ + 0 :: Int-  , abs _ + 1 :: Int-  , abs _ + ord _ :: Int-  , abs _ + id _ :: Int-  , abs _ + id x :: Int-  , abs _ + id 0 :: Int-  , abs _ + id (id _) :: Int-  , abs _ + abs _ :: Int-  , abs _ + negate _ :: Int-  , abs _ + head _ :: Int-  , abs _ + (_ + _) :: Int-  , abs x + _ :: Int-  , abs x + x :: Int-  , abs x + 0 :: Int-  , abs x + id _ :: Int-  , abs y + _ :: Int-  , abs 0 + _ :: Int-  , abs 0 + x :: Int-  , abs 0 + 0 :: Int-  , abs 0 + id _ :: Int-  , abs 1 + _ :: Int-  , abs (ord _) + _ :: Int-  , abs (id _) + _ :: Int-  , abs (id _) + x :: Int-  , abs (id _) + 0 :: Int-  , abs (id _) + id _ :: Int-  , abs (id x) + _ :: Int-  , abs (id 0) + _ :: Int-  , abs (id (id _)) + _ :: Int-  , abs (abs _) + _ :: Int-  , abs (negate _) + _ :: Int-  , abs (head _) + _ :: Int-  , abs (_ + _) + _ :: Int-  , negate _ + _ :: Int-  , negate _ + x :: Int-  , negate _ + y :: Int-  , negate _ + 0 :: Int-  , negate _ + 1 :: Int-  , negate _ + ord _ :: Int-  , negate _ + id _ :: Int-  , negate _ + id x :: Int-  , negate _ + id 0 :: Int-  , negate _ + id (id _) :: Int-  , negate _ + abs _ :: Int-  , negate _ + negate _ :: Int-  , negate _ + head _ :: Int-  , negate _ + (_ + _) :: Int-  , negate x + _ :: Int-  , negate x + x :: Int-  , negate x + 0 :: Int-  , negate x + id _ :: Int-  , negate y + _ :: Int-  , negate 0 + _ :: Int-  , negate 0 + x :: Int-  , negate 0 + 0 :: Int-  , negate 0 + id _ :: Int-  , negate 1 + _ :: Int-  , negate (ord _) + _ :: Int-  , negate (id _) + _ :: Int-  , negate (id _) + x :: Int-  , negate (id _) + 0 :: Int-  , negate (id _) + id _ :: Int-  , negate (id x) + _ :: Int-  , negate (id 0) + _ :: Int-  , negate (id (id _)) + _ :: Int-  , negate (abs _) + _ :: Int-  , negate (negate _) + _ :: Int-  , negate (head _) + _ :: Int-  , negate (_ + _) + _ :: Int-  , head _ + _ :: Int-  , head _ + x :: Int-  , head _ + y :: Int-  , head _ + 0 :: Int-  , head _ + 1 :: Int-  , head _ + ord _ :: Int-  , head _ + id _ :: Int-  , head _ + id x :: Int-  , head _ + id 0 :: Int-  , head _ + id (id _) :: Int-  , head _ + abs _ :: Int-  , head _ + negate _ :: Int-  , head _ + head _ :: Int-  , head _ + (_ + _) :: Int-  , head xs + _ :: Int-  , head xs + x :: Int-  , head xs + 0 :: Int-  , head xs + id _ :: Int-  , head ys + _ :: Int-  , head [] + _ :: Int-  , head [] + x :: Int-  , head [] + 0 :: Int-  , head [] + id _ :: Int-  , head [0] + _ :: Int-  , head (tail _) + _ :: Int-  , head (_:_) + _ :: Int-  , head (_:_) + x :: Int-  , head (_:_) + 0 :: Int-  , head (_:_) + id _ :: Int-  , head (_:xs) + _ :: Int-  , head [_] + _ :: Int-  , head (_:_:_) + _ :: Int-  , head (x:_) + _ :: Int-  , head (0:_) + _ :: Int-  , head (id _:_) + _ :: Int-  , head (_ ++ _) + _ :: Int-  , _ * _ + _ :: Int-  , _ * _ + x :: Int-  , _ * _ + 0 :: Int-  , _ * _ + id _ :: Int-  , _ * x + _ :: Int-  , _ * 0 + _ :: Int-  , _ * id _ + _ :: Int-  , x * _ + _ :: Int-  , 0 * _ + _ :: Int-  , id _ * _ + _ :: Int-  , (_ + _) + _ :: Int-  , (_ + _) + x :: Int-  , (_ + _) + y :: Int-  , (_ + _) + 0 :: Int-  , (_ + _) + 1 :: Int-  , (_ + _) + ord _ :: Int-  , (_ + _) + id _ :: Int-  , (_ + _) + id x :: Int-  , (_ + _) + id 0 :: Int-  , (_ + _) + id (id _) :: Int-  , (_ + _) + abs _ :: Int-  , (_ + _) + negate _ :: Int-  , (_ + _) + head _ :: Int-  , (_ + _) + (_ + _) :: Int-  , (_ + x) + _ :: Int-  , (_ + x) + x :: Int-  , (_ + x) + 0 :: Int-  , (_ + x) + id _ :: Int-  , (_ + y) + _ :: Int-  , (_ + 0) + _ :: Int-  , (_ + 0) + x :: Int-  , (_ + 0) + 0 :: Int-  , (_ + 0) + id _ :: Int-  , (_ + 1) + _ :: Int-  , (_ + ord _) + _ :: Int-  , (_ + id _) + _ :: Int-  , (_ + id _) + x :: Int-  , (_ + id _) + 0 :: Int-  , (_ + id _) + id _ :: Int-  , (_ + id x) + _ :: Int-  , (_ + id 0) + _ :: Int-  , (_ + id (id _)) + _ :: Int-  , (_ + abs _) + _ :: Int-  , (_ + negate _) + _ :: Int-  , (_ + head _) + _ :: Int-  , (_ + (_ + _)) + _ :: Int-  , (x + _) + _ :: Int-  , (x + _) + x :: Int-  , (x + _) + 0 :: Int-  , (x + _) + id _ :: Int-  , (x + x) + _ :: Int-  , (x + 0) + _ :: Int-  , (x + id _) + _ :: Int-  , (y + _) + _ :: Int-  , (0 + _) + _ :: Int-  , (0 + _) + x :: Int-  , (0 + _) + 0 :: Int-  , (0 + _) + id _ :: Int-  , (0 + x) + _ :: Int-  , (0 + 0) + _ :: Int-  , (0 + id _) + _ :: Int-  , (1 + _) + _ :: Int-  , (ord _ + _) + _ :: Int-  , (id _ + _) + _ :: Int-  , (id _ + _) + x :: Int-  , (id _ + _) + 0 :: Int-  , (id _ + _) + id _ :: Int-  , (id _ + x) + _ :: Int-  , (id _ + 0) + _ :: Int-  , (id _ + id _) + _ :: Int-  , (id x + _) + _ :: Int-  , (id 0 + _) + _ :: Int-  , (id (id _) + _) + _ :: Int-  , (abs _ + _) + _ :: Int-  , (negate _ + _) + _ :: Int-  , (head _ + _) + _ :: Int-  , ((_ + _) + _) + _ :: Int-  , elem _ _ :: Bool-  , elem _ xs :: Bool-  , elem _ ys :: Bool-  , elem _ [] :: Bool-  , elem _ [0] :: Bool-  , elem _ (tail _) :: Bool-  , elem _ (_:_) :: Bool-  , elem _ (_:xs) :: Bool-  , elem _ [_] :: Bool-  , elem _ (_:_:_) :: Bool-  , elem _ (x:_) :: Bool-  , elem _ (0:_) :: Bool-  , elem _ (id _:_) :: Bool-  , elem _ (_ ++ _) :: Bool-  , elem x _ :: Bool-  , elem x xs :: Bool-  , elem x [] :: Bool-  , elem x (_:_) :: Bool-  , elem y _ :: Bool-  , elem 0 _ :: Bool-  , elem 0 xs :: Bool-  , elem 0 [] :: Bool-  , elem 0 (_:_) :: Bool-  , elem 1 _ :: Bool-  , elem (ord _) _ :: Bool-  , elem (id _) _ :: Bool-  , elem (id _) xs :: Bool-  , elem (id _) [] :: Bool-  , elem (id _) (_:_) :: Bool-  , elem (id x) _ :: Bool-  , elem (id 0) _ :: Bool-  , elem (id (id _)) _ :: Bool-  , elem (abs _) _ :: Bool-  , elem (negate _) _ :: Bool-  , elem (head _) _ :: Bool-  , elem (_ + _) _ :: Bool-  , _:_ :: [Int]-  , _:xs :: [Int]-  , _:ys :: [Int]-  , _:zs :: [Int]-  , _:xs' :: [Int]-  , [_] :: [Int]-  , [_,0] :: [Int]-  , [_,1] :: [Int]-  , [_,-1] :: [Int]-  , [_,0,0] :: [Int]-  , [_,0,1] :: [Int]-  , [_,1,0] :: [Int]-  , [_,0,0,0] :: [Int]-  , _:sort _ :: [Int]-  , _:sort xs :: [Int]-  , _:sort [] :: [Int]-  , _:sort (_:_) :: [Int]-  , _:tail _ :: [Int]-  , _:tail xs :: [Int]-  , _:tail ys :: [Int]-  , _:tail [] :: [Int]-  , _:tail [0] :: [Int]-  , _:tail (tail _) :: [Int]-  , _:tail (_:_) :: [Int]-  , _:tail (_:xs) :: [Int]-  , _:tail [_] :: [Int]-  , _:tail (_:_:_) :: [Int]-  , _:tail (x:_) :: [Int]-  , _:tail (0:_) :: [Int]-  , _:tail (id _:_) :: [Int]-  , _:tail (_ ++ _) :: [Int]-  , _:_:_ :: [Int]-  , _:_:xs :: [Int]-  , _:_:ys :: [Int]-  , _:_:zs :: [Int]-  , [_,_] :: [Int]-  , [_,_,0] :: [Int]-  , [_,_,1] :: [Int]-  , [_,_,0,0] :: [Int]-  , _:_:sort _ :: [Int]-  , _:_:tail _ :: [Int]-  , _:_:tail xs :: [Int]-  , _:_:tail [] :: [Int]-  , _:_:tail (_:_) :: [Int]-  , _:_:_:_ :: [Int]-  , _:_:_:xs :: [Int]-  , _:_:_:ys :: [Int]-  , [_,_,_] :: [Int]-  , [_,_,_,0] :: [Int]-  , _:_:_:tail _ :: [Int]-  , _:_:_:_:_ :: [Int]-  , _:_:_:_:xs :: [Int]-  , [_,_,_,_] :: [Int]-  , _:_:_:_:_:_ :: [Int]-  , _:_:_:x:_ :: [Int]-  , _:_:_:0:_ :: [Int]-  , _:_:_:id _:_ :: [Int]-  , _:_:_:(_ ++ _) :: [Int]-  , _:_:x:_ :: [Int]-  , _:_:x:xs :: [Int]-  , [_,_,x] :: [Int]-  , _:_:x:_:_ :: [Int]-  , _:_:y:_ :: [Int]-  , _:_:0:_ :: [Int]-  , _:_:0:xs :: [Int]-  , [_,_,0] :: [Int]-  , _:_:0:_:_ :: [Int]-  , _:_:1:_ :: [Int]-  , _:_:ord _:_ :: [Int]-  , _:_:id _:_ :: [Int]-  , _:_:id _:xs :: [Int]-  , [_,_,id _] :: [Int]-  , _:_:id _:_:_ :: [Int]-  , _:_:id x:_ :: [Int]-  , _:_:id 0:_ :: [Int]-  , _:_:id (id _):_ :: [Int]-  , _:_:abs _:_ :: [Int]-  , _:_:negate _:_ :: [Int]-  , _:_:head _:_ :: [Int]-  , _:_:_ + _:_ :: [Int]-  , _:_:insert _ _ :: [Int]-  , _:_:(_ ++ _) :: [Int]-  , _:_:(_ ++ xs) :: [Int]-  , _:_:(_ ++ []) :: [Int]-  , _:_:(_ ++ (_:_)) :: [Int]-  , _:_:(xs ++ _) :: [Int]-  , [_,_,] ++ _ :: [Int]-  , _:_:((_:_) ++ _) :: [Int]-  , _:x:_ :: [Int]-  , _:x:xs :: [Int]-  , _:x:ys :: [Int]-  , [_,x] :: [Int]-  , [_,x,0] :: [Int]-  , _:x:tail _ :: [Int]-  , _:x:_:_ :: [Int]-  , _:x:_:xs :: [Int]-  , [_,x,_] :: [Int]-  , _:x:_:_:_ :: [Int]-  , _:x:x:_ :: [Int]-  , _:x:0:_ :: [Int]-  , _:x:id _:_ :: [Int]-  , _:x:(_ ++ _) :: [Int]-  , _:y:_ :: [Int]-  , _:y:xs :: [Int]-  , [_,y] :: [Int]-  , _:y:_:_ :: [Int]-  , _:z:_ :: [Int]-  , _:0:_ :: [Int]-  , _:0:xs :: [Int]-  , _:0:ys :: [Int]-  , [_,0] :: [Int]-  , [_,0,0] :: [Int]-  , _:0:tail _ :: [Int]-  , _:0:_:_ :: [Int]-  , _:0:_:xs :: [Int]-  , [_,0,_] :: [Int]-  , _:0:_:_:_ :: [Int]-  , _:0:x:_ :: [Int]-  , _:0:0:_ :: [Int]-  , _:0:id _:_ :: [Int]-  , _:0:(_ ++ _) :: [Int]-  , _:1:_ :: [Int]-  , _:1:xs :: [Int]-  , [_,1] :: [Int]-  , _:1:_:_ :: [Int]-  , _:(-1):_ :: [Int]-  , _:f _:_ :: [Int]-  , _:ord _:_ :: [Int]-  , _:ord _:xs :: [Int]-  , [_,ord _] :: [Int]-  , _:ord _:_:_ :: [Int]-  , _:ord c:_ :: [Int]-  , _:ord 'a':_ :: [Int]-  , _:id _:_ :: [Int]-  , _:id _:xs :: [Int]-  , _:id _:ys :: [Int]-  , [_,id _] :: [Int]-  , [_,id _,0] :: [Int]-  , _:id _:tail _ :: [Int]-  , _:id _:_:_ :: [Int]-  , _:id _:_:xs :: [Int]-  , [_,id _,_] :: [Int]-  , _:id _:_:_:_ :: [Int]-  , _:id _:x:_ :: [Int]-  , _:id _:0:_ :: [Int]-  , _:id _:id _:_ :: [Int]-  , _:id _:(_ ++ _) :: [Int]-  , _:id x:_ :: [Int]-  , _:id x:xs :: [Int]-  , [_,id x] :: [Int]-  , _:id x:_:_ :: [Int]-  , _:id y:_ :: [Int]-  , _:id 0:_ :: [Int]-  , _:id 0:xs :: [Int]-  , [_,id 0] :: [Int]-  , _:id 0:_:_ :: [Int]-  , _:id 1:_ :: [Int]-  , _:id (ord _):_ :: [Int]-  , _:id (id _):_ :: [Int]-  , _:id (id _):xs :: [Int]-  , [_,id (id _)] :: [Int]-  , _:id (id _):_:_ :: [Int]-  , _:id (id x):_ :: [Int]-  , _:id (id 0):_ :: [Int]-  , _:id (id (id _)):_ :: [Int]-  , _:id (abs _):_ :: [Int]-  , _:id (negate _):_ :: [Int]-  , _:id (head _):_ :: [Int]-  , _:id (_ + _):_ :: [Int]-  , _:abs _:_ :: [Int]-  , _:abs _:xs :: [Int]-  , [_,abs _] :: [Int]-  , _:abs _:_:_ :: [Int]-  , _:abs x:_ :: [Int]-  , _:abs 0:_ :: [Int]-  , _:abs (id _):_ :: [Int]-  , _:negate _:_ :: [Int]-  , _:negate _:xs :: [Int]-  , [_,negate _] :: [Int]-  , _:negate _:_:_ :: [Int]-  , _:negate x:_ :: [Int]-  , _:negate 0:_ :: [Int]-  , _:negate (id _):_ :: [Int]-  , _:head _:_ :: [Int]-  , _:head _:xs :: [Int]-  , [_,head _] :: [Int]-  , _:head _:_:_ :: [Int]-  , _:head xs:_ :: [Int]-  , _:head []:_ :: [Int]-  , _:head (_:_):_ :: [Int]-  , _:_ * _:_ :: [Int]-  , _:_ + _:_ :: [Int]-  , _:_ + _:xs :: [Int]-  , [_,_ + _] :: [Int]-  , _:_ + _:_:_ :: [Int]-  , _:_ + x:_ :: [Int]-  , _:_ + 0:_ :: [Int]-  , _:_ + id _:_ :: [Int]-  , _:x + _:_ :: [Int]-  , _:0 + _:_ :: [Int]-  , _:id _ + _:_ :: [Int]-  , _:insert _ _ :: [Int]-  , _:insert _ xs :: [Int]-  , _:insert _ [] :: [Int]-  , _:insert _ (_:_) :: [Int]-  , _:insert x _ :: [Int]-  , _:insert 0 _ :: [Int]-  , _:insert (id _) _ :: [Int]-  , _:(_ ++ _) :: [Int]-  , _:(_ ++ xs) :: [Int]-  , _:(_ ++ ys) :: [Int]-  , _:(_ ++ []) :: [Int]-  , _:(_ ++ [0]) :: [Int]-  , _:(_ ++ tail _) :: [Int]-  , _:(_ ++ (_:_)) :: [Int]-  , _:(_ ++ (_:xs)) :: [Int]-  , _:(_ ++ [_]) :: [Int]-  , _:(_ ++ (_:_:_)) :: [Int]-  , _:(_ ++ (x:_)) :: [Int]-  , _:(_ ++ (0:_)) :: [Int]-  , _:(_ ++ (id _:_)) :: [Int]-  , _:(_ ++ (_ ++ _)) :: [Int]-  , _:(xs ++ _) :: [Int]-  , _:(xs ++ xs) :: [Int]-  , _:(xs ++ []) :: [Int]-  , _:(xs ++ (_:_)) :: [Int]-  , _:(ys ++ _) :: [Int]-  , _:([] ++ _) :: [Int]-  , _:([] ++ xs) :: [Int]-  , _:([] ++ []) :: [Int]-  , _:([] ++ (_:_)) :: [Int]-  , _:([0] ++ _) :: [Int]-  , _:(tail _ ++ _) :: [Int]-  , _:((_:_) ++ _) :: [Int]-  , _:((_:_) ++ xs) :: [Int]-  , _:((_:_) ++ []) :: [Int]-  , _:((_:_) ++ (_:_)) :: [Int]-  , _:((_:xs) ++ _) :: [Int]-  , _:([_] ++ _) :: [Int]-  , _:((_:_:_) ++ _) :: [Int]-  , _:((x:_) ++ _) :: [Int]-  , _:((0:_) ++ _) :: [Int]-  , _:((id _:_) ++ _) :: [Int]-  , _:((_ ++ _) ++ _) :: [Int]-  , x:_ :: [Int]-  , x:xs :: [Int]-  , x:ys :: [Int]-  , x:zs :: [Int]-  , [x] :: [Int]-  , [x,0] :: [Int]-  , [x,1] :: [Int]-  , [x,0,0] :: [Int]-  , x:sort _ :: [Int]-  , x:tail _ :: [Int]-  , x:tail xs :: [Int]-  , x:tail [] :: [Int]-  , x:tail (_:_) :: [Int]-  , x:_:_ :: [Int]-  , x:_:xs :: [Int]-  , x:_:ys :: [Int]-  , [x,_] :: [Int]-  , [x,_,0] :: [Int]-  , x:_:tail _ :: [Int]-  , x:_:_:_ :: [Int]-  , x:_:_:xs :: [Int]-  , [x,_,_] :: [Int]-  , x:_:_:_:_ :: [Int]-  , x:_:x:_ :: [Int]-  , x:_:0:_ :: [Int]-  , x:_:id _:_ :: [Int]-  , x:_:(_ ++ _) :: [Int]-  , x:x:_ :: [Int]-  , x:x:xs :: [Int]-  , [x,x] :: [Int]-  , x:x:_:_ :: [Int]-  , x:y:_ :: [Int]-  , x:0:_ :: [Int]-  , x:0:xs :: [Int]-  , [x,0] :: [Int]-  , x:0:_:_ :: [Int]-  , x:1:_ :: [Int]-  , x:ord _:_ :: [Int]-  , x:id _:_ :: [Int]-  , x:id _:xs :: [Int]-  , [x,id _] :: [Int]-  , x:id _:_:_ :: [Int]-  , x:id x:_ :: [Int]-  , x:id 0:_ :: [Int]-  , x:id (id _):_ :: [Int]-  , x:abs _:_ :: [Int]-  , x:negate _:_ :: [Int]-  , x:head _:_ :: [Int]-  , x:_ + _:_ :: [Int]-  , x:insert _ _ :: [Int]-  , x:(_ ++ _) :: [Int]-  , x:(_ ++ xs) :: [Int]-  , x:(_ ++ []) :: [Int]-  , x:(_ ++ (_:_)) :: [Int]-  , x:(xs ++ _) :: [Int]-  , x:([] ++ _) :: [Int]-  , x:((_:_) ++ _) :: [Int]-  , y:_ :: [Int]-  , y:xs :: [Int]-  , y:ys :: [Int]-  , [y] :: [Int]-  , [y,0] :: [Int]-  , y:tail _ :: [Int]-  , y:_:_ :: [Int]-  , y:_:xs :: [Int]-  , [y,_] :: [Int]-  , y:_:_:_ :: [Int]-  , y:x:_ :: [Int]-  , y:0:_ :: [Int]-  , y:id _:_ :: [Int]-  , y:(_ ++ _) :: [Int]-  , z:_ :: [Int]-  , z:xs :: [Int]-  , [z] :: [Int]-  , z:_:_ :: [Int]-  , x':_ :: [Int]-  , 0:_ :: [Int]-  , 0:xs :: [Int]-  , 0:ys :: [Int]-  , 0:zs :: [Int]-  , [0] :: [Int]-  , [0,0] :: [Int]-  , [0,1] :: [Int]-  , [0,0,0] :: [Int]-  , 0:sort _ :: [Int]-  , 0:tail _ :: [Int]-  , 0:tail xs :: [Int]-  , 0:tail [] :: [Int]-  , 0:tail (_:_) :: [Int]-  , 0:_:_ :: [Int]-  , 0:_:xs :: [Int]-  , 0:_:ys :: [Int]-  , [0,_] :: [Int]-  , [0,_,0] :: [Int]-  , 0:_:tail _ :: [Int]-  , 0:_:_:_ :: [Int]-  , 0:_:_:xs :: [Int]-  , [0,_,_] :: [Int]-  , 0:_:_:_:_ :: [Int]-  , 0:_:x:_ :: [Int]-  , 0:_:0:_ :: [Int]-  , 0:_:id _:_ :: [Int]-  , 0:_:(_ ++ _) :: [Int]-  , 0:x:_ :: [Int]-  , 0:x:xs :: [Int]-  , [0,x] :: [Int]-  , 0:x:_:_ :: [Int]-  , 0:y:_ :: [Int]-  , 0:0:_ :: [Int]-  , 0:0:xs :: [Int]-  , [0,0] :: [Int]-  , 0:0:_:_ :: [Int]-  , 0:1:_ :: [Int]-  , 0:ord _:_ :: [Int]-  , 0:id _:_ :: [Int]-  , 0:id _:xs :: [Int]-  , [0,id _] :: [Int]-  , 0:id _:_:_ :: [Int]-  , 0:id x:_ :: [Int]-  , 0:id 0:_ :: [Int]-  , 0:id (id _):_ :: [Int]-  , 0:abs _:_ :: [Int]-  , 0:negate _:_ :: [Int]-  , 0:head _:_ :: [Int]-  , 0:_ + _:_ :: [Int]-  , 0:insert _ _ :: [Int]-  , 0:(_ ++ _) :: [Int]-  , 0:(_ ++ xs) :: [Int]-  , 0:(_ ++ []) :: [Int]-  , 0:(_ ++ (_:_)) :: [Int]-  , 0:(xs ++ _) :: [Int]-  , 0:([] ++ _) :: [Int]-  , 0:((_:_) ++ _) :: [Int]-  , 1:_ :: [Int]-  , 1:xs :: [Int]-  , 1:ys :: [Int]-  , [1] :: [Int]-  , [1,0] :: [Int]-  , 1:tail _ :: [Int]-  , 1:_:_ :: [Int]-  , 1:_:xs :: [Int]-  , [1,_] :: [Int]-  , 1:_:_:_ :: [Int]-  , 1:x:_ :: [Int]-  , 1:0:_ :: [Int]-  , 1:id _:_ :: [Int]-  , 1:(_ ++ _) :: [Int]-  , 2:_ :: [Int]-  , (-1):_ :: [Int]-  , (-1):xs :: [Int]-  , [-1] :: [Int]-  , (-1):_:_ :: [Int]-  , f _:_ :: [Int]-  , f _:xs :: [Int]-  , [f _] :: [Int]-  , f _:_:_ :: [Int]-  , f x:_ :: [Int]-  , f 0:_ :: [Int]-  , f (id _):_ :: [Int]-  , g _:_ :: [Int]-  , ord _:_ :: [Int]-  , ord _:xs :: [Int]-  , ord _:ys :: [Int]-  , [ord _] :: [Int]-  , [ord _,0] :: [Int]-  , ord _:tail _ :: [Int]-  , ord _:_:_ :: [Int]-  , ord _:_:xs :: [Int]-  , [ord _,_] :: [Int]-  , ord _:_:_:_ :: [Int]-  , ord _:x:_ :: [Int]-  , ord _:0:_ :: [Int]-  , ord _:id _:_ :: [Int]-  , ord _:(_ ++ _) :: [Int]-  , ord c:_ :: [Int]-  , ord c:xs :: [Int]-  , [ord c] :: [Int]-  , ord c:_:_ :: [Int]-  , ord d:_ :: [Int]-  , ord ' ':_ :: [Int]-  , ord 'a':_ :: [Int]-  , ord 'a':xs :: [Int]-  , [ord 'a'] :: [Int]-  , ord 'a':_:_ :: [Int]-  , id _:_ :: [Int]-  , id _:xs :: [Int]-  , id _:ys :: [Int]-  , id _:zs :: [Int]-  , [id _] :: [Int]-  , [id _,0] :: [Int]-  , [id _,1] :: [Int]-  , [id _,0,0] :: [Int]-  , id _:sort _ :: [Int]-  , id _:tail _ :: [Int]-  , id _:tail xs :: [Int]-  , id _:tail [] :: [Int]-  , id _:tail (_:_) :: [Int]-  , id _:_:_ :: [Int]-  , id _:_:xs :: [Int]-  , id _:_:ys :: [Int]-  , [id _,_] :: [Int]-  , [id _,_,0] :: [Int]-  , id _:_:tail _ :: [Int]-  , id _:_:_:_ :: [Int]-  , id _:_:_:xs :: [Int]-  , [id _,_,_] :: [Int]-  , id _:_:_:_:_ :: [Int]-  , id _:_:x:_ :: [Int]-  , id _:_:0:_ :: [Int]-  , id _:_:id _:_ :: [Int]-  , id _:_:(_ ++ _) :: [Int]-  , id _:x:_ :: [Int]-  , id _:x:xs :: [Int]-  , [id _,x] :: [Int]-  , id _:x:_:_ :: [Int]-  , id _:y:_ :: [Int]-  , id _:0:_ :: [Int]-  , id _:0:xs :: [Int]-  , [id _,0] :: [Int]-  , id _:0:_:_ :: [Int]-  , id _:1:_ :: [Int]-  , id _:ord _:_ :: [Int]-  , id _:id _:_ :: [Int]-  , id _:id _:xs :: [Int]-  , [id _,id _] :: [Int]-  , id _:id _:_:_ :: [Int]-  , id _:id x:_ :: [Int]-  , id _:id 0:_ :: [Int]-  , id _:id (id _):_ :: [Int]-  , id _:abs _:_ :: [Int]-  , id _:negate _:_ :: [Int]-  , id _:head _:_ :: [Int]-  , id _:_ + _:_ :: [Int]-  , id _:insert _ _ :: [Int]-  , id _:(_ ++ _) :: [Int]-  , id _:(_ ++ xs) :: [Int]-  , id _:(_ ++ []) :: [Int]-  , id _:(_ ++ (_:_)) :: [Int]-  , id _:(xs ++ _) :: [Int]-  , id _:([] ++ _) :: [Int]-  , id _:((_:_) ++ _) :: [Int]-  , id x:_ :: [Int]-  , id x:xs :: [Int]-  , id x:ys :: [Int]-  , [id x] :: [Int]-  , [id x,0] :: [Int]-  , id x:tail _ :: [Int]-  , id x:_:_ :: [Int]-  , id x:_:xs :: [Int]-  , [id x,_] :: [Int]-  , id x:_:_:_ :: [Int]-  , id x:x:_ :: [Int]-  , id x:0:_ :: [Int]-  , id x:id _:_ :: [Int]-  , id x:(_ ++ _) :: [Int]-  , id y:_ :: [Int]-  , id y:xs :: [Int]-  , [id y] :: [Int]-  , id y:_:_ :: [Int]-  , id z:_ :: [Int]-  , id 0:_ :: [Int]-  , id 0:xs :: [Int]-  , id 0:ys :: [Int]-  , [id 0] :: [Int]-  , [id 0,0] :: [Int]-  , id 0:tail _ :: [Int]-  , id 0:_:_ :: [Int]-  , id 0:_:xs :: [Int]-  , [id 0,_] :: [Int]-  , id 0:_:_:_ :: [Int]-  , id 0:x:_ :: [Int]-  , id 0:0:_ :: [Int]-  , id 0:id _:_ :: [Int]-  , id 0:(_ ++ _) :: [Int]-  , id 1:_ :: [Int]-  , id 1:xs :: [Int]-  , [id 1] :: [Int]-  , id 1:_:_ :: [Int]-  , id (-1):_ :: [Int]-  , id (f _):_ :: [Int]-  , id (ord _):_ :: [Int]-  , id (ord _):xs :: [Int]-  , [id (ord _)] :: [Int]-  , id (ord _):_:_ :: [Int]-  , id (ord c):_ :: [Int]-  , id (ord 'a'):_ :: [Int]-  , id (id _):_ :: [Int]-  , id (id _):xs :: [Int]-  , id (id _):ys :: [Int]-  , [id (id _)] :: [Int]-  , [id (id _),0] :: [Int]-  , id (id _):tail _ :: [Int]-  , id (id _):_:_ :: [Int]-  , id (id _):_:xs :: [Int]-  , [id (id _),_] :: [Int]-  , id (id _):_:_:_ :: [Int]-  , id (id _):x:_ :: [Int]-  , id (id _):0:_ :: [Int]-  , id (id _):id _:_ :: [Int]-  , id (id _):(_ ++ _) :: [Int]-  , id (id x):_ :: [Int]-  , id (id x):xs :: [Int]-  , [id (id x)] :: [Int]-  , id (id x):_:_ :: [Int]-  , id (id y):_ :: [Int]-  , id (id 0):_ :: [Int]-  , id (id 0):xs :: [Int]-  , [id (id 0)] :: [Int]-  , id (id 0):_:_ :: [Int]-  , id (id 1):_ :: [Int]-  , id (id (ord _)):_ :: [Int]-  , id (id (id _)):_ :: [Int]-  , id (id (id _)):xs :: [Int]-  , [id (id (id _))] :: [Int]-  , id (id (id _)):_:_ :: [Int]-  , id (id (id x)):_ :: [Int]-  , id (id (id 0)):_ :: [Int]-  , id (id (id (id _))):_ :: [Int]-  , id (id (abs _)):_ :: [Int]-  , id (id (negate _)):_ :: [Int]-  , id (id (head _)):_ :: [Int]-  , id (id (_ + _)):_ :: [Int]-  , id (abs _):_ :: [Int]-  , id (abs _):xs :: [Int]-  , [id (abs _)] :: [Int]-  , id (abs _):_:_ :: [Int]-  , id (abs x):_ :: [Int]-  , id (abs 0):_ :: [Int]-  , id (abs (id _)):_ :: [Int]-  , id (negate _):_ :: [Int]-  , id (negate _):xs :: [Int]-  , [id (negate _)] :: [Int]-  , id (negate _):_:_ :: [Int]-  , id (negate x):_ :: [Int]-  , id (negate 0):_ :: [Int]-  , id (negate (id _)):_ :: [Int]-  , id (head _):_ :: [Int]-  , id (head _):xs :: [Int]-  , [id (head _)] :: [Int]-  , id (head _):_:_ :: [Int]-  , id (head xs):_ :: [Int]-  , id (head []):_ :: [Int]-  , id (head (_:_)):_ :: [Int]-  , id (_ * _):_ :: [Int]-  , id (_ + _):_ :: [Int]-  , id (_ + _):xs :: [Int]-  , [id (_ + _)] :: [Int]-  , id (_ + _):_:_ :: [Int]-  , id (_ + x):_ :: [Int]-  , id (_ + 0):_ :: [Int]-  , id (_ + id _):_ :: [Int]-  , id (x + _):_ :: [Int]-  , id (0 + _):_ :: [Int]-  , id (id _ + _):_ :: [Int]-  , abs _:_ :: [Int]-  , abs _:xs :: [Int]-  , abs _:ys :: [Int]-  , [abs _] :: [Int]-  , [abs _,0] :: [Int]-  , abs _:tail _ :: [Int]-  , abs _:_:_ :: [Int]-  , abs _:_:xs :: [Int]-  , [abs _,_] :: [Int]-  , abs _:_:_:_ :: [Int]-  , abs _:x:_ :: [Int]-  , abs _:0:_ :: [Int]-  , abs _:id _:_ :: [Int]-  , abs _:(_ ++ _) :: [Int]-  , abs x:_ :: [Int]-  , abs x:xs :: [Int]-  , [abs x] :: [Int]-  , abs x:_:_ :: [Int]-  , abs y:_ :: [Int]-  , abs 0:_ :: [Int]-  , abs 0:xs :: [Int]-  , [abs 0] :: [Int]-  , abs 0:_:_ :: [Int]-  , abs 1:_ :: [Int]-  , abs (ord _):_ :: [Int]-  , abs (id _):_ :: [Int]-  , abs (id _):xs :: [Int]-  , [abs (id _)] :: [Int]-  , abs (id _):_:_ :: [Int]-  , abs (id x):_ :: [Int]-  , abs (id 0):_ :: [Int]-  , abs (id (id _)):_ :: [Int]-  , abs (abs _):_ :: [Int]-  , abs (negate _):_ :: [Int]-  , abs (head _):_ :: [Int]-  , abs (_ + _):_ :: [Int]-  , negate _:_ :: [Int]-  , negate _:xs :: [Int]-  , negate _:ys :: [Int]-  , [negate _] :: [Int]-  , [negate _,0] :: [Int]-  , negate _:tail _ :: [Int]-  , negate _:_:_ :: [Int]-  , negate _:_:xs :: [Int]-  , [negate _,_] :: [Int]-  , negate _:_:_:_ :: [Int]-  , negate _:x:_ :: [Int]-  , negate _:0:_ :: [Int]-  , negate _:id _:_ :: [Int]-  , negate _:(_ ++ _) :: [Int]-  , negate x:_ :: [Int]-  , negate x:xs :: [Int]-  , [negate x] :: [Int]-  , negate x:_:_ :: [Int]-  , negate y:_ :: [Int]-  , negate 0:_ :: [Int]-  , negate 0:xs :: [Int]-  , [negate 0] :: [Int]-  , negate 0:_:_ :: [Int]-  , negate 1:_ :: [Int]-  , negate (ord _):_ :: [Int]-  , negate (id _):_ :: [Int]-  , negate (id _):xs :: [Int]-  , [negate (id _)] :: [Int]-  , negate (id _):_:_ :: [Int]-  , negate (id x):_ :: [Int]-  , negate (id 0):_ :: [Int]-  , negate (id (id _)):_ :: [Int]-  , negate (abs _):_ :: [Int]-  , negate (negate _):_ :: [Int]-  , negate (head _):_ :: [Int]-  , negate (_ + _):_ :: [Int]-  , head _:_ :: [Int]-  , head _:xs :: [Int]-  , head _:ys :: [Int]-  , [head _] :: [Int]-  , [head _,0] :: [Int]-  , head _:tail _ :: [Int]-  , head _:_:_ :: [Int]-  , head _:_:xs :: [Int]-  , [head _,_] :: [Int]-  , head _:_:_:_ :: [Int]-  , head _:x:_ :: [Int]-  , head _:0:_ :: [Int]-  , head _:id _:_ :: [Int]-  , head _:(_ ++ _) :: [Int]-  , head xs:_ :: [Int]-  , head xs:xs :: [Int]-  , [head xs] :: [Int]-  , head xs:_:_ :: [Int]-  , head ys:_ :: [Int]-  , head []:_ :: [Int]-  , head []:xs :: [Int]-  , [head []] :: [Int]-  , head []:_:_ :: [Int]-  , head [0]:_ :: [Int]-  , head (tail _):_ :: [Int]-  , head (_:_):_ :: [Int]-  , head (_:_):xs :: [Int]-  , [head (_:_)] :: [Int]-  , head (_:_):_:_ :: [Int]-  , head (_:xs):_ :: [Int]-  , head [_]:_ :: [Int]-  , head (_:_:_):_ :: [Int]-  , head (x:_):_ :: [Int]-  , head (0:_):_ :: [Int]-  , head (id _:_):_ :: [Int]-  , head (_ ++ _):_ :: [Int]-  , _ * _:_ :: [Int]-  , _ * _:xs :: [Int]-  , [_ * _] :: [Int]-  , _ * _:_:_ :: [Int]-  , _ * x:_ :: [Int]-  , _ * 0:_ :: [Int]-  , _ * id _:_ :: [Int]-  , x * _:_ :: [Int]-  , 0 * _:_ :: [Int]-  , id _ * _:_ :: [Int]-  , _ + _:_ :: [Int]-  , _ + _:xs :: [Int]-  , _ + _:ys :: [Int]-  , [_ + _] :: [Int]-  , [_ + _,0] :: [Int]-  , _ + _:tail _ :: [Int]-  , _ + _:_:_ :: [Int]-  , _ + _:_:xs :: [Int]-  , [_ + _,_] :: [Int]-  , _ + _:_:_:_ :: [Int]-  , _ + _:x:_ :: [Int]-  , _ + _:0:_ :: [Int]-  , _ + _:id _:_ :: [Int]-  , _ + _:(_ ++ _) :: [Int]-  , _ + x:_ :: [Int]-  , _ + x:xs :: [Int]-  , [_ + x] :: [Int]-  , _ + x:_:_ :: [Int]-  , _ + y:_ :: [Int]-  , _ + 0:_ :: [Int]-  , _ + 0:xs :: [Int]-  , [_ + 0] :: [Int]-  , _ + 0:_:_ :: [Int]-  , _ + 1:_ :: [Int]-  , _ + ord _:_ :: [Int]-  , _ + id _:_ :: [Int]-  , _ + id _:xs :: [Int]-  , [_ + id _] :: [Int]-  , _ + id _:_:_ :: [Int]-  , _ + id x:_ :: [Int]-  , _ + id 0:_ :: [Int]-  , _ + id (id _):_ :: [Int]-  , _ + abs _:_ :: [Int]-  , _ + negate _:_ :: [Int]-  , _ + head _:_ :: [Int]-  , _ + (_ + _):_ :: [Int]-  , x + _:_ :: [Int]-  , x + _:xs :: [Int]-  , [x + _] :: [Int]-  , x + _:_:_ :: [Int]-  , x + x:_ :: [Int]-  , x + 0:_ :: [Int]-  , x + id _:_ :: [Int]-  , y + _:_ :: [Int]-  , 0 + _:_ :: [Int]-  , 0 + _:xs :: [Int]-  , [0 + _] :: [Int]-  , 0 + _:_:_ :: [Int]-  , 0 + x:_ :: [Int]-  , 0 + 0:_ :: [Int]-  , 0 + id _:_ :: [Int]-  , 1 + _:_ :: [Int]-  , ord _ + _:_ :: [Int]-  , id _ + _:_ :: [Int]-  , id _ + _:xs :: [Int]-  , [id _ + _] :: [Int]-  , id _ + _:_:_ :: [Int]-  , id _ + x:_ :: [Int]-  , id _ + 0:_ :: [Int]-  , id _ + id _:_ :: [Int]-  , id x + _:_ :: [Int]-  , id 0 + _:_ :: [Int]-  , id (id _) + _:_ :: [Int]-  , abs _ + _:_ :: [Int]-  , negate _ + _:_ :: [Int]-  , head _ + _:_ :: [Int]-  , (_ + _) + _:_ :: [Int]-  , insert _ _ :: [Int]-  , insert _ xs :: [Int]-  , insert _ ys :: [Int]-  , insert _ [] :: [Int]-  , insert _ [0] :: [Int]-  , insert _ (tail _) :: [Int]-  , insert _ (_:_) :: [Int]-  , insert _ (_:xs) :: [Int]-  , insert _ [_] :: [Int]-  , insert _ (_:_:_) :: [Int]-  , insert _ (x:_) :: [Int]-  , insert _ (0:_) :: [Int]-  , insert _ (id _:_) :: [Int]-  , insert _ (_ ++ _) :: [Int]-  , insert x _ :: [Int]-  , insert x xs :: [Int]-  , insert x [] :: [Int]-  , insert x (_:_) :: [Int]-  , insert y _ :: [Int]-  , insert 0 _ :: [Int]-  , insert 0 xs :: [Int]-  , insert 0 [] :: [Int]-  , insert 0 (_:_) :: [Int]-  , insert 1 _ :: [Int]-  , insert (ord _) _ :: [Int]-  , insert (id _) _ :: [Int]-  , insert (id _) xs :: [Int]-  , insert (id _) [] :: [Int]-  , insert (id _) (_:_) :: [Int]-  , insert (id x) _ :: [Int]-  , insert (id 0) _ :: [Int]-  , insert (id (id _)) _ :: [Int]-  , insert (abs _) _ :: [Int]-  , insert (negate _) _ :: [Int]-  , insert (head _) _ :: [Int]-  , insert (_ + _) _ :: [Int]-  , _ ++ _ :: [Int]-  , _ ++ xs :: [Int]-  , _ ++ ys :: [Int]-  , _ ++ zs :: [Int]-  , _ ++ [] :: [Int]-  , _ ++ [0] :: [Int]-  , _ ++ [1] :: [Int]-  , _ ++ [0,0] :: [Int]-  , _ ++ sort _ :: [Int]-  , _ ++ tail _ :: [Int]-  , _ ++ tail xs :: [Int]-  , _ ++ tail [] :: [Int]-  , _ ++ tail (_:_) :: [Int]-  , _ ++ (_:_) :: [Int]-  , _ ++ (_:xs) :: [Int]-  , _ ++ (_:ys) :: [Int]-  , _ ++ [_] :: [Int]-  , _ ++ [_,0] :: [Int]-  , _ ++ (_:tail _) :: [Int]-  , _ ++ (_:_:_) :: [Int]-  , _ ++ (_:_:xs) :: [Int]-  , _ ++ [_,_] :: [Int]-  , _ ++ (_:_:_:_) :: [Int]-  , _ ++ (_:x:_) :: [Int]-  , _ ++ (_:0:_) :: [Int]-  , _ ++ (_:id _:_) :: [Int]-  , _ ++ (_:(_ ++ _)) :: [Int]-  , _ ++ (x:_) :: [Int]-  , _ ++ (x:xs) :: [Int]-  , _ ++ [x] :: [Int]-  , _ ++ (x:_:_) :: [Int]-  , _ ++ (y:_) :: [Int]-  , _ ++ (0:_) :: [Int]-  , _ ++ (0:xs) :: [Int]-  , _ ++ [0] :: [Int]-  , _ ++ (0:_:_) :: [Int]-  , _ ++ (1:_) :: [Int]-  , _ ++ (ord _:_) :: [Int]-  , _ ++ (id _:_) :: [Int]-  , _ ++ (id _:xs) :: [Int]-  , _ ++ [id _] :: [Int]-  , _ ++ (id _:_:_) :: [Int]-  , _ ++ (id x:_) :: [Int]-  , _ ++ (id 0:_) :: [Int]-  , _ ++ (id (id _):_) :: [Int]-  , _ ++ (abs _:_) :: [Int]-  , _ ++ (negate _:_) :: [Int]-  , _ ++ (head _:_) :: [Int]-  , _ ++ (_ + _:_) :: [Int]-  , _ ++ insert _ _ :: [Int]-  , _ ++ (_ ++ _) :: [Int]-  , _ ++ (_ ++ xs) :: [Int]-  , _ ++ (_ ++ []) :: [Int]-  , _ ++ (_ ++ (_:_)) :: [Int]-  , _ ++ (xs ++ _) :: [Int]-  , _ ++ ([] ++ _) :: [Int]-  , _ ++ ((_:_) ++ _) :: [Int]-  , xs ++ _ :: [Int]-  , xs ++ xs :: [Int]-  , xs ++ ys :: [Int]-  , xs ++ [] :: [Int]-  , xs ++ [0] :: [Int]-  , xs ++ tail _ :: [Int]-  , xs ++ (_:_) :: [Int]-  , xs ++ (_:xs) :: [Int]-  , xs ++ [_] :: [Int]-  , xs ++ (_:_:_) :: [Int]-  , xs ++ (x:_) :: [Int]-  , xs ++ (0:_) :: [Int]-  , xs ++ (id _:_) :: [Int]-  , xs ++ (_ ++ _) :: [Int]-  , ys ++ _ :: [Int]-  , ys ++ xs :: [Int]-  , ys ++ [] :: [Int]-  , ys ++ (_:_) :: [Int]-  , zs ++ _ :: [Int]-  , [] ++ _ :: [Int]-  , [] ++ xs :: [Int]-  , [] ++ ys :: [Int]-  , [] ++ [] :: [Int]-  , [] ++ [0] :: [Int]-  , [] ++ tail _ :: [Int]-  , [] ++ (_:_) :: [Int]-  , [] ++ (_:xs) :: [Int]-  , [] ++ [_] :: [Int]-  , [] ++ (_:_:_) :: [Int]-  , [] ++ (x:_) :: [Int]-  , [] ++ (0:_) :: [Int]-  , [] ++ (id _:_) :: [Int]-  , [] ++ (_ ++ _) :: [Int]-  , [0] ++ _ :: [Int]-  , [0] ++ xs :: [Int]-  , [0] ++ [] :: [Int]-  , [0] ++ (_:_) :: [Int]-  , [1] ++ _ :: [Int]-  , [0,0] ++ _ :: [Int]-  , sort _ ++ _ :: [Int]-  , tail _ ++ _ :: [Int]-  , tail _ ++ xs :: [Int]-  , tail _ ++ [] :: [Int]-  , tail _ ++ (_:_) :: [Int]-  , tail xs ++ _ :: [Int]-  , tail [] ++ _ :: [Int]-  , tail (_:_) ++ _ :: [Int]-  , (_:_) ++ _ :: [Int]-  , (_:_) ++ xs :: [Int]-  , (_:_) ++ ys :: [Int]-  , (_:_) ++ [] :: [Int]-  , (_:_) ++ [0] :: [Int]-  , (_:_) ++ tail _ :: [Int]-  , (_:_) ++ (_:_) :: [Int]-  , (_:_) ++ (_:xs) :: [Int]-  , (_:_) ++ [_] :: [Int]-  , (_:_) ++ (_:_:_) :: [Int]-  , (_:_) ++ (x:_) :: [Int]-  , (_:_) ++ (0:_) :: [Int]-  , (_:_) ++ (id _:_) :: [Int]-  , (_:_) ++ (_ ++ _) :: [Int]-  , (_:xs) ++ _ :: [Int]-  , (_:xs) ++ xs :: [Int]-  , (_:xs) ++ [] :: [Int]-  , (_:xs) ++ (_:_) :: [Int]-  , (_:ys) ++ _ :: [Int]-  , [_] ++ _ :: [Int]-  , [_] ++ xs :: [Int]-  , [_] ++ [] :: [Int]-  , [_] ++ (_:_) :: [Int]-  , [_,0] ++ _ :: [Int]-  , (_:tail _) ++ _ :: [Int]-  , (_:_:_) ++ _ :: [Int]-  , (_:_:_) ++ xs :: [Int]-  , (_:_:_) ++ [] :: [Int]-  , (_:_:_) ++ (_:_) :: [Int]-  , (_:_:xs) ++ _ :: [Int]-  , [_,_] ++ _ :: [Int]-  , (_:_:_:_) ++ _ :: [Int]-  , (_:x:_) ++ _ :: [Int]-  , (_:0:_) ++ _ :: [Int]-  , (_:id _:_) ++ _ :: [Int]-  , (_:(_ ++ _)) ++ _ :: [Int]-  , (x:_) ++ _ :: [Int]-  , (x:_) ++ xs :: [Int]-  , (x:_) ++ [] :: [Int]-  , (x:_) ++ (_:_) :: [Int]-  , (x:xs) ++ _ :: [Int]-  , [x] ++ _ :: [Int]-  , (x:_:_) ++ _ :: [Int]-  , (y:_) ++ _ :: [Int]-  , (0:_) ++ _ :: [Int]-  , (0:_) ++ xs :: [Int]-  , (0:_) ++ [] :: [Int]-  , (0:_) ++ (_:_) :: [Int]-  , (0:xs) ++ _ :: [Int]-  , [0] ++ _ :: [Int]-  , (0:_:_) ++ _ :: [Int]-  , (1:_) ++ _ :: [Int]-  , (ord _:_) ++ _ :: [Int]-  , (id _:_) ++ _ :: [Int]-  , (id _:_) ++ xs :: [Int]-  , (id _:_) ++ [] :: [Int]-  , (id _:_) ++ (_:_) :: [Int]-  , (id _:xs) ++ _ :: [Int]-  , [id _] ++ _ :: [Int]-  , (id _:_:_) ++ _ :: [Int]-  , (id x:_) ++ _ :: [Int]-  , (id 0:_) ++ _ :: [Int]-  , (id (id _):_) ++ _ :: [Int]-  , (abs _:_) ++ _ :: [Int]-  , (negate _:_) ++ _ :: [Int]-  , (head _:_) ++ _ :: [Int]-  , (_ + _:_) ++ _ :: [Int]-  , insert _ _ ++ _ :: [Int]-  , (_ ++ _) ++ _ :: [Int]-  , (_ ++ _) ++ xs :: [Int]-  , (_ ++ _) ++ [] :: [Int]-  , (_ ++ _) ++ (_:_) :: [Int]-  , (_ ++ xs) ++ _ :: [Int]-  , (_ ++ []) ++ _ :: [Int]-  , (_ ++ (_:_)) ++ _ :: [Int]-  , (xs ++ _) ++ _ :: [Int]-  , ([] ++ _) ++ _ :: [Int]-  , ((_:_) ++ _) ++ _ :: [Int]-  ]--sortBy compareQuickly $ take 5040 $ list  ::  [ Expr ]  =-  [ False :: Bool-  , True :: Bool-  , _ :: Bool-  , p :: Bool-  , p' :: Bool-  , q :: Bool-  , q' :: Bool-  , r :: Bool-  , ' ' :: Char-  , 'A' :: Char-  , 'a' :: Char-  , 'b' :: Char-  , 'c' :: Char-  , _ :: Char-  , c :: Char-  , c' :: Char-  , d :: Char-  , d' :: Char-  , e :: Char-  , -1 :: Int-  , -2 :: Int-  , -3 :: Int-  , 0 :: Int-  , 1 :: Int-  , 2 :: Int-  , 3 :: Int-  , _ :: Int-  , x :: Int-  , x' :: Int-  , x'' :: Int-  , y :: Int-  , y' :: Int-  , z :: Int-  , z' :: Int-  , [-1,0] :: [Int]-  , [-1] :: [Int]-  , [0,-1] :: [Int]-  , [0,0,0,0] :: [Int]-  , [0,0,0] :: [Int]-  , [0,0,1] :: [Int]-  , [0,0] :: [Int]-  , [0,1,0] :: [Int]-  , [0,1] :: [Int]-  , [0] :: [Int]-  , [1,0,0] :: [Int]-  , [1,0] :: [Int]-  , [1,1] :: [Int]-  , [1] :: [Int]-  , [2] :: [Int]-  , [] :: [Int]-  , _ :: [Int]-  , xs :: [Int]-  , xs' :: [Int]-  , ys :: [Int]-  , ys' :: [Int]-  , zs :: [Int]-  , not :: Bool -> Bool-  , f :: Int -> Int-  , g :: Int -> Int-  , h :: Int -> Int-  , abs :: Int -> Int-  , id :: Int -> Int-  , negate :: Int -> Int-  , (&&) :: Bool -> Bool -> Bool-  , (==>) :: Bool -> Bool -> Bool-  , (||) :: Bool -> Bool -> Bool-  , (*) :: Int -> Int -> Int-  , (+) :: Int -> Int -> Int-  , not False :: Bool-  , not True :: Bool-  , not _ :: Bool-  , not p :: Bool-  , not p' :: Bool-  , not q :: Bool-  , not r :: Bool-  , not (not False) :: Bool-  , not (not True) :: Bool-  , not (not _) :: Bool-  , not (not p) :: Bool-  , not (not q) :: Bool-  , not (not r) :: Bool-  , not (not (not False)) :: Bool-  , not (not (not True)) :: Bool-  , not (not (not _)) :: Bool-  , not (not (not p)) :: Bool-  , not (not (not q)) :: Bool-  , not (not (not (not False))) :: Bool-  , not (not (not (not True))) :: Bool-  , not (not (not (not _))) :: Bool-  , not (not (not (not p))) :: Bool-  , not (not (not (not (not _)))) :: Bool-  , not (not (not (_ || _))) :: Bool-  , not (not (even _)) :: Bool-  , not (not (odd _)) :: Bool-  , not (not (_ && _)) :: Bool-  , not (not (_ == _)) :: Bool-  , not (not (False || _)) :: Bool-  , not (not (True || _)) :: Bool-  , not (not (_ || False)) :: Bool-  , not (not (_ || True)) :: Bool-  , not (not (_ || _)) :: Bool-  , not (not (_ || p)) :: Bool-  , not (not (_ || not _)) :: Bool-  , not (not (p || _)) :: Bool-  , not (not (not _ || _)) :: Bool-  , not (not (_ == _)) :: Bool-  , not (not (elem _ _)) :: Bool-  , not (even 0) :: Bool-  , not (even _) :: Bool-  , not (even x) :: Bool-  , not (even (id _)) :: Bool-  , not (odd 0) :: Bool-  , not (odd _) :: Bool-  , not (odd x) :: Bool-  , not (odd (id _)) :: Bool-  , not (False && _) :: Bool-  , not (True && _) :: Bool-  , not (_ && False) :: Bool-  , not (_ && True) :: Bool-  , not (_ && _) :: Bool-  , not (_ && p) :: Bool-  , not (_ && not _) :: Bool-  , not (p && _) :: Bool-  , not (not _ && _) :: Bool-  , not (_ <= _) :: Bool-  , not (False == _) :: Bool-  , not (True == _) :: Bool-  , not (_ == False) :: Bool-  , not (_ == True) :: Bool-  , not (_ == _) :: Bool-  , not (_ == p) :: Bool-  , not (_ == not _) :: Bool-  , not (p == _) :: Bool-  , not (not _ == _) :: Bool-  , not (_ ==> _) :: Bool-  , not (False || False) :: Bool-  , not (False || True) :: Bool-  , not (False || _) :: Bool-  , not (False || p) :: Bool-  , not (False || not _) :: Bool-  , not (True || False) :: Bool-  , not (True || True) :: Bool-  , not (True || _) :: Bool-  , not (True || p) :: Bool-  , not (True || not _) :: Bool-  , not (_ || False) :: Bool-  , not (_ || True) :: Bool-  , not (_ || _) :: Bool-  , not (_ || p) :: Bool-  , not (_ || q) :: Bool-  , not (_ || not False) :: Bool-  , not (_ || not True) :: Bool-  , not (_ || not _) :: Bool-  , not (_ || not p) :: Bool-  , not (_ || not (not _)) :: Bool-  , not (_ || (_ || _)) :: Bool-  , not (p || False) :: Bool-  , not (p || True) :: Bool-  , not (p || _) :: Bool-  , not (p || p) :: Bool-  , not (p || not _) :: Bool-  , not (q || _) :: Bool-  , not (not False || _) :: Bool-  , not (not True || _) :: Bool-  , not (not _ || False) :: Bool-  , not (not _ || True) :: Bool-  , not (not _ || _) :: Bool-  , not (not _ || p) :: Bool-  , not (not _ || not _) :: Bool-  , not (not p || _) :: Bool-  , not (not (not _) || _) :: Bool-  , not ((_ || _) || _) :: Bool-  , not (_ <= _) :: Bool-  , not (0 == _) :: Bool-  , not (_ == 0) :: Bool-  , not (_ == _) :: Bool-  , not (_ == x) :: Bool-  , not (_ == id _) :: Bool-  , not (x == _) :: Bool-  , not (id _ == _) :: Bool-  , not (elem 0 _) :: Bool-  , not (elem _ []) :: Bool-  , not (elem _ _) :: Bool-  , not (elem _ xs) :: Bool-  , not (elem _ (_:_)) :: Bool-  , not (elem x _) :: Bool-  , not (elem (id _) _) :: Bool-  , ord ' ' :: Int-  , ord 'A' :: Int-  , ord 'a' :: Int-  , ord 'b' :: Int-  , ord _ :: Int-  , ord c :: Int-  , ord c' :: Int-  , ord d :: Int-  , ord e :: Int-  , even 0 :: Bool-  , even 1 :: Bool-  , even _ :: Bool-  , even x :: Bool-  , even y :: Bool-  , even (ord _) :: Bool-  , even (abs _) :: Bool-  , even (id 0) :: Bool-  , even (id _) :: Bool-  , even (id x) :: Bool-  , even (id (id _)) :: Bool-  , even (negate _) :: Bool-  , even (head _) :: Bool-  , even (_ + _) :: Bool-  , odd 0 :: Bool-  , odd 1 :: Bool-  , odd _ :: Bool-  , odd x :: Bool-  , odd y :: Bool-  , odd (ord _) :: Bool-  , odd (abs _) :: Bool-  , odd (id 0) :: Bool-  , odd (id _) :: Bool-  , odd (id x) :: Bool-  , odd (id (id _)) :: Bool-  , odd (negate _) :: Bool-  , odd (head _) :: Bool-  , odd (_ + _) :: Bool-  , f (-1) :: Int-  , f 0 :: Int-  , f 1 :: Int-  , f _ :: Int-  , f x :: Int-  , f y :: Int-  , f z :: Int-  , f (ord 'a') :: Int-  , f (ord _) :: Int-  , f (ord c) :: Int-  , f (f _) :: Int-  , f (abs 0) :: Int-  , f (abs _) :: Int-  , f (abs x) :: Int-  , f (abs (id _)) :: Int-  , f (id 0) :: Int-  , f (id 1) :: Int-  , f (id _) :: Int-  , f (id x) :: Int-  , f (id y) :: Int-  , f (id (ord _)) :: Int-  , f (id (abs _)) :: Int-  , f (id (id 0)) :: Int-  , f (id (id _)) :: Int-  , f (id (id x)) :: Int-  , f (id (id (id _))) :: Int-  , f (id (negate _)) :: Int-  , f (id (head _)) :: Int-  , f (id (_ + _)) :: Int-  , f (negate 0) :: Int-  , f (negate _) :: Int-  , f (negate x) :: Int-  , f (negate (id _)) :: Int-  , f (head []) :: Int-  , f (head _) :: Int-  , f (head xs) :: Int-  , f (head (_:_)) :: Int-  , f (_ * _) :: Int-  , f (0 + _) :: Int-  , f (_ + 0) :: Int-  , f (_ + _) :: Int-  , f (_ + x) :: Int-  , f (_ + id _) :: Int-  , f (x + _) :: Int-  , f (id _ + _) :: Int-  , f' _ :: Int-  , g 0 :: Int-  , g 1 :: Int-  , g _ :: Int-  , g x :: Int-  , g y :: Int-  , g (ord _) :: Int-  , g (abs _) :: Int-  , g (id 0) :: Int-  , g (id _) :: Int-  , g (id x) :: Int-  , g (id (id _)) :: Int-  , g (negate _) :: Int-  , g (head _) :: Int-  , g (_ + _) :: Int-  , h 0 :: Int-  , h _ :: Int-  , h x :: Int-  , h (id _) :: Int-  , abs (-1) :: Int-  , abs 0 :: Int-  , abs 1 :: Int-  , abs 2 :: Int-  , abs _ :: Int-  , abs x :: Int-  , abs x' :: Int-  , abs y :: Int-  , abs z :: Int-  , abs (ord ' ') :: Int-  , abs (ord 'a') :: Int-  , abs (ord _) :: Int-  , abs (ord c) :: Int-  , abs (ord d) :: Int-  , abs (f 0) :: Int-  , abs (f _) :: Int-  , abs (f x) :: Int-  , abs (f (id _)) :: Int-  , abs (g _) :: Int-  , abs (abs 0) :: Int-  , abs (abs 1) :: Int-  , abs (abs _) :: Int-  , abs (abs x) :: Int-  , abs (abs y) :: Int-  , abs (abs (ord _)) :: Int-  , abs (abs (abs _)) :: Int-  , abs (abs (id 0)) :: Int-  , abs (abs (id _)) :: Int-  , abs (abs (id x)) :: Int-  , abs (abs (id (id _))) :: Int-  , abs (abs (negate _)) :: Int-  , abs (abs (head _)) :: Int-  , abs (abs (_ + _)) :: Int-  , abs (id (-1)) :: Int-  , abs (id 0) :: Int-  , abs (id 1) :: Int-  , abs (id _) :: Int-  , abs (id x) :: Int-  , abs (id y) :: Int-  , abs (id z) :: Int-  , abs (id (ord 'a')) :: Int-  , abs (id (ord _)) :: Int-  , abs (id (ord c)) :: Int-  , abs (id (f _)) :: Int-  , abs (id (abs 0)) :: Int-  , abs (id (abs _)) :: Int-  , abs (id (abs x)) :: Int-  , abs (id (abs (id _))) :: Int-  , abs (id (id 0)) :: Int-  , abs (id (id 1)) :: Int-  , abs (id (id _)) :: Int-  , abs (id (id x)) :: Int-  , abs (id (id y)) :: Int-  , abs (id (id (ord _))) :: Int-  , abs (id (id (abs _))) :: Int-  , abs (id (id (id 0))) :: Int-  , abs (id (id (id _))) :: Int-  , abs (id (id (id x))) :: Int-  , abs (id (id (id (id _)))) :: Int-  , abs (id (id (negate _))) :: Int-  , abs (id (id (head _))) :: Int-  , abs (id (id (_ + _))) :: Int-  , abs (id (negate 0)) :: Int-  , abs (id (negate _)) :: Int-  , abs (id (negate x)) :: Int-  , abs (id (negate (id _))) :: Int-  , abs (id (head [])) :: Int-  , abs (id (head _)) :: Int-  , abs (id (head xs)) :: Int-  , abs (id (head (_:_))) :: Int-  , abs (id (_ * _)) :: Int-  , abs (id (0 + _)) :: Int-  , abs (id (_ + 0)) :: Int-  , abs (id (_ + _)) :: Int-  , abs (id (_ + x)) :: Int-  , abs (id (_ + id _)) :: Int-  , abs (id (x + _)) :: Int-  , abs (id (id _ + _)) :: Int-  , abs (negate 0) :: Int-  , abs (negate 1) :: Int-  , abs (negate _) :: Int-  , abs (negate x) :: Int-  , abs (negate y) :: Int-  , abs (negate (ord _)) :: Int-  , abs (negate (abs _)) :: Int-  , abs (negate (id 0)) :: Int-  , abs (negate (id _)) :: Int-  , abs (negate (id x)) :: Int-  , abs (negate (id (id _))) :: Int-  , abs (negate (negate _)) :: Int-  , abs (negate (head _)) :: Int-  , abs (negate (_ + _)) :: Int-  , abs (head [0]) :: Int-  , abs (head []) :: Int-  , abs (head _) :: Int-  , abs (head xs) :: Int-  , abs (head ys) :: Int-  , abs (head (tail _)) :: Int-  , abs (head (0:_)) :: Int-  , abs (head [_]) :: Int-  , abs (head (_:_)) :: Int-  , abs (head (_:xs)) :: Int-  , abs (head (_:_:_)) :: Int-  , abs (head (x:_)) :: Int-  , abs (head (id _:_)) :: Int-  , abs (head (_ ++ _)) :: Int-  , abs (0 * _) :: Int-  , abs (_ * 0) :: Int-  , abs (_ * _) :: Int-  , abs (_ * x) :: Int-  , abs (_ * id _) :: Int-  , abs (x * _) :: Int-  , abs (id _ * _) :: Int-  , abs (0 + 0) :: Int-  , abs (0 + _) :: Int-  , abs (0 + x) :: Int-  , abs (0 + id _) :: Int-  , abs (1 + _) :: Int-  , abs (_ + 0) :: Int-  , abs (_ + 1) :: Int-  , abs (_ + _) :: Int-  , abs (_ + x) :: Int-  , abs (_ + y) :: Int-  , abs (_ + ord _) :: Int-  , abs (_ + abs _) :: Int-  , abs (_ + id 0) :: Int-  , abs (_ + id _) :: Int-  , abs (_ + id x) :: Int-  , abs (_ + id (id _)) :: Int-  , abs (_ + negate _) :: Int-  , abs (_ + head _) :: Int-  , abs (_ + (_ + _)) :: Int-  , abs (x + 0) :: Int-  , abs (x + _) :: Int-  , abs (x + x) :: Int-  , abs (x + id _) :: Int-  , abs (y + _) :: Int-  , abs (ord _ + _) :: Int-  , abs (abs _ + _) :: Int-  , abs (id 0 + _) :: Int-  , abs (id _ + 0) :: Int-  , abs (id _ + _) :: Int-  , abs (id _ + x) :: Int-  , abs (id _ + id _) :: Int-  , abs (id x + _) :: Int-  , abs (id (id _) + _) :: Int-  , abs (negate _ + _) :: Int-  , abs (head _ + _) :: Int-  , abs ((_ + _) + _) :: Int-  , id (-1) :: Int-  , id (-2) :: Int-  , id 0 :: Int-  , id 1 :: Int-  , id 2 :: Int-  , id 3 :: Int-  , id _ :: Int-  , id x :: Int-  , id x' :: Int-  , id y :: Int-  , id y' :: Int-  , id z :: Int-  , id z' :: Int-  , id (ord ' ') :: Int-  , id (ord 'a') :: Int-  , id (ord 'b') :: Int-  , id (ord _) :: Int-  , id (ord c) :: Int-  , id (ord d) :: Int-  , id (ord e) :: Int-  , id (f (-1)) :: Int-  , id (f 0) :: Int-  , id (f 1) :: Int-  , id (f _) :: Int-  , id (f x) :: Int-  , id (f y) :: Int-  , id (f z) :: Int-  , id (f (ord 'a')) :: Int-  , id (f (ord _)) :: Int-  , id (f (ord c)) :: Int-  , id (f (f _)) :: Int-  , id (f (abs 0)) :: Int-  , id (f (abs _)) :: Int-  , id (f (abs x)) :: Int-  , id (f (abs (id _))) :: Int-  , id (f (id 0)) :: Int-  , id (f (id 1)) :: Int-  , id (f (id _)) :: Int-  , id (f (id x)) :: Int-  , id (f (id y)) :: Int-  , id (f (id (ord _))) :: Int-  , id (f (id (abs _))) :: Int-  , id (f (id (id 0))) :: Int-  , id (f (id (id _))) :: Int-  , id (f (id (id x))) :: Int-  , id (f (id (id (id _)))) :: Int-  , id (f (id (negate _))) :: Int-  , id (f (id (head _))) :: Int-  , id (f (id (_ + _))) :: Int-  , id (f (negate 0)) :: Int-  , id (f (negate _)) :: Int-  , id (f (negate x)) :: Int-  , id (f (negate (id _))) :: Int-  , id (f (head [])) :: Int-  , id (f (head _)) :: Int-  , id (f (head xs)) :: Int-  , id (f (head (_:_))) :: Int-  , id (f (_ * _)) :: Int-  , id (f (0 + _)) :: Int-  , id (f (_ + 0)) :: Int-  , id (f (_ + _)) :: Int-  , id (f (_ + x)) :: Int-  , id (f (_ + id _)) :: Int-  , id (f (x + _)) :: Int-  , id (f (id _ + _)) :: Int-  , id (f' _) :: Int-  , id (g 0) :: Int-  , id (g 1) :: Int-  , id (g _) :: Int-  , id (g x) :: Int-  , id (g y) :: Int-  , id (g (ord _)) :: Int-  , id (g (abs _)) :: Int-  , id (g (id 0)) :: Int-  , id (g (id _)) :: Int-  , id (g (id x)) :: Int-  , id (g (id (id _))) :: Int-  , id (g (negate _)) :: Int-  , id (g (head _)) :: Int-  , id (g (_ + _)) :: Int-  , id (h 0) :: Int-  , id (h _) :: Int-  , id (h x) :: Int-  , id (h (id _)) :: Int-  , id (abs (-1)) :: Int-  , id (abs 0) :: Int-  , id (abs 1) :: Int-  , id (abs 2) :: Int-  , id (abs _) :: Int-  , id (abs x) :: Int-  , id (abs x') :: Int-  , id (abs y) :: Int-  , id (abs z) :: Int-  , id (abs (ord ' ')) :: Int-  , id (abs (ord 'a')) :: Int-  , id (abs (ord _)) :: Int-  , id (abs (ord c)) :: Int-  , id (abs (ord d)) :: Int-  , id (abs (f 0)) :: Int-  , id (abs (f _)) :: Int-  , id (abs (f x)) :: Int-  , id (abs (f (id _))) :: Int-  , id (abs (g _)) :: Int-  , id (abs (abs 0)) :: Int-  , id (abs (abs 1)) :: Int-  , id (abs (abs _)) :: Int-  , id (abs (abs x)) :: Int-  , id (abs (abs y)) :: Int-  , id (abs (abs (ord _))) :: Int-  , id (abs (abs (abs _))) :: Int-  , id (abs (abs (id 0))) :: Int-  , id (abs (abs (id _))) :: Int-  , id (abs (abs (id x))) :: Int-  , id (abs (abs (id (id _)))) :: Int-  , id (abs (abs (negate _))) :: Int-  , id (abs (abs (head _))) :: Int-  , id (abs (abs (_ + _))) :: Int-  , id (abs (id (-1))) :: Int-  , id (abs (id 0)) :: Int-  , id (abs (id 1)) :: Int-  , id (abs (id _)) :: Int-  , id (abs (id x)) :: Int-  , id (abs (id y)) :: Int-  , id (abs (id z)) :: Int-  , id (abs (id (ord 'a'))) :: Int-  , id (abs (id (ord _))) :: Int-  , id (abs (id (ord c))) :: Int-  , id (abs (id (f _))) :: Int-  , id (abs (id (abs 0))) :: Int-  , id (abs (id (abs _))) :: Int-  , id (abs (id (abs x))) :: Int-  , id (abs (id (abs (id _)))) :: Int-  , id (abs (id (id 0))) :: Int-  , id (abs (id (id 1))) :: Int-  , id (abs (id (id _))) :: Int-  , id (abs (id (id x))) :: Int-  , id (abs (id (id y))) :: Int-  , id (abs (id (id (ord _)))) :: Int-  , id (abs (id (id (abs _)))) :: Int-  , id (abs (id (id (id 0)))) :: Int-  , id (abs (id (id (id _)))) :: Int-  , id (abs (id (id (id x)))) :: Int-  , id (abs (id (id (id (id _))))) :: Int-  , id (abs (id (id (negate _)))) :: Int-  , id (abs (id (id (head _)))) :: Int-  , id (abs (id (id (_ + _)))) :: Int-  , id (abs (id (negate 0))) :: Int-  , id (abs (id (negate _))) :: Int-  , id (abs (id (negate x))) :: Int-  , id (abs (id (negate (id _)))) :: Int-  , id (abs (id (head []))) :: Int-  , id (abs (id (head _))) :: Int-  , id (abs (id (head xs))) :: Int-  , id (abs (id (head (_:_)))) :: Int-  , id (abs (id (_ * _))) :: Int-  , id (abs (id (0 + _))) :: Int-  , id (abs (id (_ + 0))) :: Int-  , id (abs (id (_ + _))) :: Int-  , id (abs (id (_ + x))) :: Int-  , id (abs (id (_ + id _))) :: Int-  , id (abs (id (x + _))) :: Int-  , id (abs (id (id _ + _))) :: Int-  , id (abs (negate 0)) :: Int-  , id (abs (negate 1)) :: Int-  , id (abs (negate _)) :: Int-  , id (abs (negate x)) :: Int-  , id (abs (negate y)) :: Int-  , id (abs (negate (ord _))) :: Int-  , id (abs (negate (abs _))) :: Int-  , id (abs (negate (id 0))) :: Int-  , id (abs (negate (id _))) :: Int-  , id (abs (negate (id x))) :: Int-  , id (abs (negate (id (id _)))) :: Int-  , id (abs (negate (negate _))) :: Int-  , id (abs (negate (head _))) :: Int-  , id (abs (negate (_ + _))) :: Int-  , id (abs (head [0])) :: Int-  , id (abs (head [])) :: Int-  , id (abs (head _)) :: Int-  , id (abs (head xs)) :: Int-  , id (abs (head ys)) :: Int-  , id (abs (head (tail _))) :: Int-  , id (abs (head (0:_))) :: Int-  , id (abs (head [_])) :: Int-  , id (abs (head (_:_))) :: Int-  , id (abs (head (_:xs))) :: Int-  , id (abs (head (_:_:_))) :: Int-  , id (abs (head (x:_))) :: Int-  , id (abs (head (id _:_))) :: Int-  , id (abs (head (_ ++ _))) :: Int-  , id (abs (0 * _)) :: Int-  , id (abs (_ * 0)) :: Int-  , id (abs (_ * _)) :: Int-  , id (abs (_ * x)) :: Int-  , id (abs (_ * id _)) :: Int-  , id (abs (x * _)) :: Int-  , id (abs (id _ * _)) :: Int-  , id (abs (0 + 0)) :: Int-  , id (abs (0 + _)) :: Int-  , id (abs (0 + x)) :: Int-  , id (abs (0 + id _)) :: Int-  , id (abs (1 + _)) :: Int-  , id (abs (_ + 0)) :: Int-  , id (abs (_ + 1)) :: Int-  , id (abs (_ + _)) :: Int-  , id (abs (_ + x)) :: Int-  , id (abs (_ + y)) :: Int-  , id (abs (_ + ord _)) :: Int-  , id (abs (_ + abs _)) :: Int-  , id (abs (_ + id 0)) :: Int-  , id (abs (_ + id _)) :: Int-  , id (abs (_ + id x)) :: Int-  , id (abs (_ + id (id _))) :: Int-  , id (abs (_ + negate _)) :: Int-  , id (abs (_ + head _)) :: Int-  , id (abs (_ + (_ + _))) :: Int-  , id (abs (x + 0)) :: Int-  , id (abs (x + _)) :: Int-  , id (abs (x + x)) :: Int-  , id (abs (x + id _)) :: Int-  , id (abs (y + _)) :: Int-  , id (abs (ord _ + _)) :: Int-  , id (abs (abs _ + _)) :: Int-  , id (abs (id 0 + _)) :: Int-  , id (abs (id _ + 0)) :: Int-  , id (abs (id _ + _)) :: Int-  , id (abs (id _ + x)) :: Int-  , id (abs (id _ + id _)) :: Int-  , id (abs (id x + _)) :: Int-  , id (abs (id (id _) + _)) :: Int-  , id (abs (negate _ + _)) :: Int-  , id (abs (head _ + _)) :: Int-  , id (abs ((_ + _) + _)) :: Int-  , id (id (-1)) :: Int-  , id (id (-2)) :: Int-  , id (id 0) :: Int-  , id (id 1) :: Int-  , id (id 2) :: Int-  , id (id _) :: Int-  , id (id x) :: Int-  , id (id x') :: Int-  , id (id y) :: Int-  , id (id y') :: Int-  , id (id z) :: Int-  , id (id (ord ' ')) :: Int-  , id (id (ord 'a')) :: Int-  , id (id (ord 'b')) :: Int-  , id (id (ord _)) :: Int-  , id (id (ord c)) :: Int-  , id (id (ord d)) :: Int-  , id (id (ord e)) :: Int-  , id (id (f 0)) :: Int-  , id (id (f 1)) :: Int-  , id (id (f _)) :: Int-  , id (id (f x)) :: Int-  , id (id (f y)) :: Int-  , id (id (f (ord _))) :: Int-  , id (id (f (abs _))) :: Int-  , id (id (f (id 0))) :: Int-  , id (id (f (id _))) :: Int-  , id (id (f (id x))) :: Int-  , id (id (f (id (id _)))) :: Int-  , id (id (f (negate _))) :: Int-  , id (id (f (head _))) :: Int-  , id (id (f (_ + _))) :: Int-  , id (id (g 0)) :: Int-  , id (id (g _)) :: Int-  , id (id (g x)) :: Int-  , id (id (g (id _))) :: Int-  , id (id (h _)) :: Int-  , id (id (abs (-1))) :: Int-  , id (id (abs 0)) :: Int-  , id (id (abs 1)) :: Int-  , id (id (abs _)) :: Int-  , id (id (abs x)) :: Int-  , id (id (abs y)) :: Int-  , id (id (abs z)) :: Int-  , id (id (abs (ord 'a'))) :: Int-  , id (id (abs (ord _))) :: Int-  , id (id (abs (ord c))) :: Int-  , id (id (abs (f _))) :: Int-  , id (id (abs (abs 0))) :: Int-  , id (id (abs (abs _))) :: Int-  , id (id (abs (abs x))) :: Int-  , id (id (abs (abs (id _)))) :: Int-  , id (id (abs (id 0))) :: Int-  , id (id (abs (id 1))) :: Int-  , id (id (abs (id _))) :: Int-  , id (id (abs (id x))) :: Int-  , id (id (abs (id y))) :: Int-  , id (id (abs (id (ord _)))) :: Int-  , id (id (abs (id (abs _)))) :: Int-  , id (id (abs (id (id 0)))) :: Int-  , id (id (abs (id (id _)))) :: Int-  , id (id (abs (id (id x)))) :: Int-  , id (id (abs (id (id (id _))))) :: Int-  , id (id (abs (id (negate _)))) :: Int-  , id (id (abs (id (head _)))) :: Int-  , id (id (abs (id (_ + _)))) :: Int-  , id (id (abs (negate 0))) :: Int-  , id (id (abs (negate _))) :: Int-  , id (id (abs (negate x))) :: Int-  , id (id (abs (negate (id _)))) :: Int-  , id (id (abs (head []))) :: Int-  , id (id (abs (head _))) :: Int-  , id (id (abs (head xs))) :: Int-  , id (id (abs (head (_:_)))) :: Int-  , id (id (abs (_ * _))) :: Int-  , id (id (abs (0 + _))) :: Int-  , id (id (abs (_ + 0))) :: Int-  , id (id (abs (_ + _))) :: Int-  , id (id (abs (_ + x))) :: Int-  , id (id (abs (_ + id _))) :: Int-  , id (id (abs (x + _))) :: Int-  , id (id (abs (id _ + _))) :: Int-  , id (id (id (-1))) :: Int-  , id (id (id 0)) :: Int-  , id (id (id 1)) :: Int-  , id (id (id 2)) :: Int-  , id (id (id _)) :: Int-  , id (id (id x)) :: Int-  , id (id (id x')) :: Int-  , id (id (id y)) :: Int-  , id (id (id z)) :: Int-  , id (id (id (ord ' '))) :: Int-  , id (id (id (ord 'a'))) :: Int-  , id (id (id (ord _))) :: Int-  , id (id (id (ord c))) :: Int-  , id (id (id (ord d))) :: Int-  , id (id (id (f 0))) :: Int-  , id (id (id (f _))) :: Int-  , id (id (id (f x))) :: Int-  , id (id (id (f (id _)))) :: Int-  , id (id (id (g _))) :: Int-  , id (id (id (abs 0))) :: Int-  , id (id (id (abs 1))) :: Int-  , id (id (id (abs _))) :: Int-  , id (id (id (abs x))) :: Int-  , id (id (id (abs y))) :: Int-  , id (id (id (abs (ord _)))) :: Int-  , id (id (id (abs (abs _)))) :: Int-  , id (id (id (abs (id 0)))) :: Int-  , id (id (id (abs (id _)))) :: Int-  , id (id (id (abs (id x)))) :: Int-  , id (id (id (abs (id (id _))))) :: Int-  , id (id (id (abs (negate _)))) :: Int-  , id (id (id (abs (head _)))) :: Int-  , id (id (id (abs (_ + _)))) :: Int-  , id (id (id (id (-1)))) :: Int-  , id (id (id (id 0))) :: Int-  , id (id (id (id 1))) :: Int-  , id (id (id (id _))) :: Int-  , id (id (id (id x))) :: Int-  , id (id (id (id y))) :: Int-  , id (id (id (id z))) :: Int-  , id (id (id (id (ord 'a')))) :: Int-  , id (id (id (id (ord _)))) :: Int-  , id (id (id (id (ord c)))) :: Int-  , id (id (id (id (f _)))) :: Int-  , id (id (id (id (abs 0)))) :: Int-  , id (id (id (id (abs _)))) :: Int-  , id (id (id (id (abs x)))) :: Int-  , id (id (id (id (abs (id _))))) :: Int-  , id (id (id (id (id 0)))) :: Int-  , id (id (id (id (id 1)))) :: Int-  , id (id (id (id (id _)))) :: Int-  , id (id (id (id (id x)))) :: Int-  , id (id (id (id (id y)))) :: Int-  , id (id (id (id (id (ord _))))) :: Int-  , id (id (id (id (id (abs _))))) :: Int-  , id (id (id (id (id (id 0))))) :: Int-  , id (id (id (id (id (id _))))) :: Int-  , id (id (id (id (id (id x))))) :: Int-  , id (id (id (id (id (id (id _)))))) :: Int-  , id (id (id (id (id (negate _))))) :: Int-  , id (id (id (id (id (head _))))) :: Int-  , id (id (id (id (id (_ + _))))) :: Int-  , id (id (id (id (negate 0)))) :: Int-  , id (id (id (id (negate _)))) :: Int-  , id (id (id (id (negate x)))) :: Int-  , id (id (id (id (negate (id _))))) :: Int-  , id (id (id (id (head [])))) :: Int-  , id (id (id (id (head _)))) :: Int-  , id (id (id (id (head xs)))) :: Int-  , id (id (id (id (head (_:_))))) :: Int-  , id (id (id (id (_ * _)))) :: Int-  , id (id (id (id (0 + _)))) :: Int-  , id (id (id (id (_ + 0)))) :: Int-  , id (id (id (id (_ + _)))) :: Int-  , id (id (id (id (_ + x)))) :: Int-  , id (id (id (id (_ + id _)))) :: Int-  , id (id (id (id (x + _)))) :: Int-  , id (id (id (id (id _ + _)))) :: Int-  , id (id (id (negate 0))) :: Int-  , id (id (id (negate 1))) :: Int-  , id (id (id (negate _))) :: Int-  , id (id (id (negate x))) :: Int-  , id (id (id (negate y))) :: Int-  , id (id (id (negate (ord _)))) :: Int-  , id (id (id (negate (abs _)))) :: Int-  , id (id (id (negate (id 0)))) :: Int-  , id (id (id (negate (id _)))) :: Int-  , id (id (id (negate (id x)))) :: Int-  , id (id (id (negate (id (id _))))) :: Int-  , id (id (id (negate (negate _)))) :: Int-  , id (id (id (negate (head _)))) :: Int-  , id (id (id (negate (_ + _)))) :: Int-  , id (id (id (head [0]))) :: Int-  , id (id (id (head []))) :: Int-  , id (id (id (head _))) :: Int-  , id (id (id (head xs))) :: Int-  , id (id (id (head ys))) :: Int-  , id (id (id (head (tail _)))) :: Int-  , id (id (id (head (0:_)))) :: Int-  , id (id (id (head [_]))) :: Int-  , id (id (id (head (_:_)))) :: Int-  , id (id (id (head (_:xs)))) :: Int-  , id (id (id (head (_:_:_)))) :: Int-  , id (id (id (head (x:_)))) :: Int-  , id (id (id (head (id _:_)))) :: Int-  , id (id (id (head (_ ++ _)))) :: Int-  , id (id (id (0 * _))) :: Int-  , id (id (id (_ * 0))) :: Int-  , id (id (id (_ * _))) :: Int-  , id (id (id (_ * x))) :: Int-  , id (id (id (_ * id _))) :: Int-  , id (id (id (x * _))) :: Int-  , id (id (id (id _ * _))) :: Int-  , id (id (id (0 + 0))) :: Int-  , id (id (id (0 + _))) :: Int-  , id (id (id (0 + x))) :: Int-  , id (id (id (0 + id _))) :: Int-  , id (id (id (1 + _))) :: Int-  , id (id (id (_ + 0))) :: Int-  , id (id (id (_ + 1))) :: Int-  , id (id (id (_ + _))) :: Int-  , id (id (id (_ + x))) :: Int-  , id (id (id (_ + y))) :: Int-  , id (id (id (_ + ord _))) :: Int-  , id (id (id (_ + abs _))) :: Int-  , id (id (id (_ + id 0))) :: Int-  , id (id (id (_ + id _))) :: Int-  , id (id (id (_ + id x))) :: Int-  , id (id (id (_ + id (id _)))) :: Int-  , id (id (id (_ + negate _))) :: Int-  , id (id (id (_ + head _))) :: Int-  , id (id (id (_ + (_ + _)))) :: Int-  , id (id (id (x + 0))) :: Int-  , id (id (id (x + _))) :: Int-  , id (id (id (x + x))) :: Int-  , id (id (id (x + id _))) :: Int-  , id (id (id (y + _))) :: Int-  , id (id (id (ord _ + _))) :: Int-  , id (id (id (abs _ + _))) :: Int-  , id (id (id (id 0 + _))) :: Int-  , id (id (id (id _ + 0))) :: Int-  , id (id (id (id _ + _))) :: Int-  , id (id (id (id _ + x))) :: Int-  , id (id (id (id _ + id _))) :: Int-  , id (id (id (id x + _))) :: Int-  , id (id (id (id (id _) + _))) :: Int-  , id (id (id (negate _ + _))) :: Int-  , id (id (id (head _ + _))) :: Int-  , id (id (id ((_ + _) + _))) :: Int-  , id (id (negate (-1))) :: Int-  , id (id (negate 0)) :: Int-  , id (id (negate 1)) :: Int-  , id (id (negate _)) :: Int-  , id (id (negate x)) :: Int-  , id (id (negate y)) :: Int-  , id (id (negate z)) :: Int-  , id (id (negate (ord 'a'))) :: Int-  , id (id (negate (ord _))) :: Int-  , id (id (negate (ord c))) :: Int-  , id (id (negate (f _))) :: Int-  , id (id (negate (abs 0))) :: Int-  , id (id (negate (abs _))) :: Int-  , id (id (negate (abs x))) :: Int-  , id (id (negate (abs (id _)))) :: Int-  , id (id (negate (id 0))) :: Int-  , id (id (negate (id 1))) :: Int-  , id (id (negate (id _))) :: Int-  , id (id (negate (id x))) :: Int-  , id (id (negate (id y))) :: Int-  , id (id (negate (id (ord _)))) :: Int-  , id (id (negate (id (abs _)))) :: Int-  , id (id (negate (id (id 0)))) :: Int-  , id (id (negate (id (id _)))) :: Int-  , id (id (negate (id (id x)))) :: Int-  , id (id (negate (id (id (id _))))) :: Int-  , id (id (negate (id (negate _)))) :: Int-  , id (id (negate (id (head _)))) :: Int-  , id (id (negate (id (_ + _)))) :: Int-  , id (id (negate (negate 0))) :: Int-  , id (id (negate (negate _))) :: Int-  , id (id (negate (negate x))) :: Int-  , id (id (negate (negate (id _)))) :: Int-  , id (id (negate (head []))) :: Int-  , id (id (negate (head _))) :: Int-  , id (id (negate (head xs))) :: Int-  , id (id (negate (head (_:_)))) :: Int-  , id (id (negate (_ * _))) :: Int-  , id (id (negate (0 + _))) :: Int-  , id (id (negate (_ + 0))) :: Int-  , id (id (negate (_ + _))) :: Int-  , id (id (negate (_ + x))) :: Int-  , id (id (negate (_ + id _))) :: Int-  , id (id (negate (x + _))) :: Int-  , id (id (negate (id _ + _))) :: Int-  , id (id (head [0,0])) :: Int-  , id (id (head [0])) :: Int-  , id (id (head [1])) :: Int-  , id (id (head [])) :: Int-  , id (id (head _)) :: Int-  , id (id (head xs)) :: Int-  , id (id (head ys)) :: Int-  , id (id (head zs)) :: Int-  , id (id (head (sort _))) :: Int-  , id (id (head (tail []))) :: Int-  , id (id (head (tail _))) :: Int-  , id (id (head (tail xs))) :: Int-  , id (id (head (tail (_:_)))) :: Int-  , id (id (head [0])) :: Int-  , id (id (head (0:_))) :: Int-  , id (id (head (0:xs))) :: Int-  , id (id (head (0:_:_))) :: Int-  , id (id (head (1:_))) :: Int-  , id (id (head [_,0])) :: Int-  , id (id (head [_])) :: Int-  , id (id (head (_:_))) :: Int-  , id (id (head (_:xs))) :: Int-  , id (id (head (_:ys))) :: Int-  , id (id (head (_:tail _))) :: Int-  , id (id (head (_:0:_))) :: Int-  , id (id (head [_,_])) :: Int-  , id (id (head (_:_:_))) :: Int-  , id (id (head (_:_:xs))) :: Int-  , id (id (head (_:_:_:_))) :: Int-  , id (id (head (_:x:_))) :: Int-  , id (id (head (_:id _:_))) :: Int-  , id (id (head (_:(_ ++ _)))) :: Int-  , id (id (head [x])) :: Int-  , id (id (head (x:_))) :: Int-  , id (id (head (x:xs))) :: Int-  , id (id (head (x:_:_))) :: Int-  , id (id (head (y:_))) :: Int-  , id (id (head (ord _:_))) :: Int-  , id (id (head (abs _:_))) :: Int-  , id (id (head (id 0:_))) :: Int-  , id (id (head [id _])) :: Int-  , id (id (head (id _:_))) :: Int-  , id (id (head (id _:xs))) :: Int-  , id (id (head (id _:_:_))) :: Int-  , id (id (head (id x:_))) :: Int-  , id (id (head (id (id _):_))) :: Int-  , id (id (head (negate _:_))) :: Int-  , id (id (head (head _:_))) :: Int-  , id (id (head (_ + _:_))) :: Int-  , id (id (head (insert _ _))) :: Int-  , id (id (head ([] ++ _))) :: Int-  , id (id (head (_ ++ []))) :: Int-  , id (id (head (_ ++ _))) :: Int-  , id (id (head (_ ++ xs))) :: Int-  , id (id (head (_ ++ (_:_)))) :: Int-  , id (id (head (xs ++ _))) :: Int-  , id (id (head ((_:_) ++ _))) :: Int-  , id (id (0 * 0)) :: Int-  , id (id (0 * _)) :: Int-  , id (id (0 * x)) :: Int-  , id (id (0 * id _)) :: Int-  , id (id (1 * _)) :: Int-  , id (id (_ * 0)) :: Int-  , id (id (_ * 1)) :: Int-  , id (id (_ * _)) :: Int-  , id (id (_ * x)) :: Int-  , id (id (_ * y)) :: Int-  , id (id (_ * ord _)) :: Int-  , id (id (_ * abs _)) :: Int-  , id (id (_ * id 0)) :: Int-  , id (id (_ * id _)) :: Int-  , id (id (_ * id x)) :: Int-  , id (id (_ * id (id _))) :: Int-  , id (id (_ * negate _)) :: Int-  , id (id (_ * head _)) :: Int-  , id (id (_ * (_ + _))) :: Int-  , id (id (x * 0)) :: Int-  , id (id (x * _)) :: Int-  , id (id (x * x)) :: Int-  , id (id (x * id _)) :: Int-  , id (id (y * _)) :: Int-  , id (id (ord _ * _)) :: Int-  , id (id (abs _ * _)) :: Int-  , id (id (id 0 * _)) :: Int-  , id (id (id _ * 0)) :: Int-  , id (id (id _ * _)) :: Int-  , id (id (id _ * x)) :: Int-  , id (id (id _ * id _)) :: Int-  , id (id (id x * _)) :: Int-  , id (id (id (id _) * _)) :: Int-  , id (id (negate _ * _)) :: Int-  , id (id (head _ * _)) :: Int-  , id (id ((_ + _) * _)) :: Int-  , id (id ((-1) + _)) :: Int-  , id (id (0 + 0)) :: Int-  , id (id (0 + 1)) :: Int-  , id (id (0 + _)) :: Int-  , id (id (0 + x)) :: Int-  , id (id (0 + y)) :: Int-  , id (id (0 + ord _)) :: Int-  , id (id (0 + abs _)) :: Int-  , id (id (0 + id 0)) :: Int-  , id (id (0 + id _)) :: Int-  , id (id (0 + id x)) :: Int-  , id (id (0 + id (id _))) :: Int-  , id (id (0 + negate _)) :: Int-  , id (id (0 + head _)) :: Int-  , id (id (0 + (_ + _))) :: Int-  , id (id (1 + 0)) :: Int-  , id (id (1 + _)) :: Int-  , id (id (1 + x)) :: Int-  , id (id (1 + id _)) :: Int-  , id (id (_ + (-1))) :: Int-  , id (id (_ + 0)) :: Int-  , id (id (_ + 1)) :: Int-  , id (id (_ + _)) :: Int-  , id (id (_ + x)) :: Int-  , id (id (_ + y)) :: Int-  , id (id (_ + z)) :: Int-  , id (id (_ + ord 'a')) :: Int-  , id (id (_ + ord _)) :: Int-  , id (id (_ + ord c)) :: Int-  , id (id (_ + f _)) :: Int-  , id (id (_ + abs 0)) :: Int-  , id (id (_ + abs _)) :: Int-  , id (id (_ + abs x)) :: Int-  , id (id (_ + abs (id _))) :: Int-  , id (id (_ + id 0)) :: Int-  , id (id (_ + id 1)) :: Int-  , id (id (_ + id _)) :: Int-  , id (id (_ + id x)) :: Int-  , id (id (_ + id y)) :: Int-  , id (id (_ + id (ord _))) :: Int-  , id (id (_ + id (abs _))) :: Int-  , id (id (_ + id (id 0))) :: Int-  , id (id (_ + id (id _))) :: Int-  , id (id (_ + id (id x))) :: Int-  , id (id (_ + id (id (id _)))) :: Int-  , id (id (_ + id (negate _))) :: Int-  , id (id (_ + id (head _))) :: Int-  , id (id (_ + id (_ + _))) :: Int-  , id (id (_ + negate 0)) :: Int-  , id (id (_ + negate _)) :: Int-  , id (id (_ + negate x)) :: Int-  , id (id (_ + negate (id _))) :: Int-  , id (id (_ + head [])) :: Int-  , id (id (_ + head _)) :: Int-  , id (id (_ + head xs)) :: Int-  , id (id (_ + head (_:_))) :: Int-  , id (id (_ + _ * _)) :: Int-  , id (id (_ + (0 + _))) :: Int-  , id (id (_ + (_ + 0))) :: Int-  , id (id (_ + (_ + _))) :: Int-  , id (id (_ + (_ + x))) :: Int-  , id (id (_ + (_ + id _))) :: Int-  , id (id (_ + (x + _))) :: Int-  , id (id (_ + (id _ + _))) :: Int-  , id (id (x + 0)) :: Int-  , id (id (x + 1)) :: Int-  , id (id (x + _)) :: Int-  , id (id (x + x)) :: Int-  , id (id (x + y)) :: Int-  , id (id (x + ord _)) :: Int-  , id (id (x + abs _)) :: Int-  , id (id (x + id 0)) :: Int-  , id (id (x + id _)) :: Int-  , id (id (x + id x)) :: Int-  , id (id (x + id (id _))) :: Int-  , id (id (x + negate _)) :: Int-  , id (id (x + head _)) :: Int-  , id (id (x + (_ + _))) :: Int-  , id (id (y + 0)) :: Int-  , id (id (y + _)) :: Int-  , id (id (y + x)) :: Int-  , id (id (y + id _)) :: Int-  , id (id (z + _)) :: Int-  , id (id (ord 'a' + _)) :: Int-  , id (id (ord _ + 0)) :: Int-  , id (id (ord _ + _)) :: Int-  , id (id (ord _ + x)) :: Int-  , id (id (ord _ + id _)) :: Int-  , id (id (ord c + _)) :: Int-  , id (id (f _ + _)) :: Int-  , id (id (abs 0 + _)) :: Int-  , id (id (abs _ + 0)) :: Int-  , id (id (abs _ + _)) :: Int-  , id (id (abs _ + x)) :: Int-  , id (id (abs _ + id _)) :: Int-  , id (id (abs x + _)) :: Int-  , id (id (abs (id _) + _)) :: Int-  , id (id (id 0 + 0)) :: Int-  , id (id (id 0 + _)) :: Int-  , id (id (id 0 + x)) :: Int-  , id (id (id 0 + id _)) :: Int-  , id (id (id 1 + _)) :: Int-  , id (id (id _ + 0)) :: Int-  , id (id (id _ + 1)) :: Int-  , id (id (id _ + _)) :: Int-  , id (id (id _ + x)) :: Int-  , id (id (id _ + y)) :: Int-  , id (id (id _ + ord _)) :: Int-  , id (id (id _ + abs _)) :: Int-  , id (id (id _ + id 0)) :: Int-  , id (id (id _ + id _)) :: Int-  , id (id (id _ + id x)) :: Int-  , id (id (id _ + id (id _))) :: Int-  , id (id (id _ + negate _)) :: Int-  , id (id (id _ + head _)) :: Int-  , id (id (id _ + (_ + _))) :: Int-  , id (id (id x + 0)) :: Int-  , id (id (id x + _)) :: Int-  , id (id (id x + x)) :: Int-  , id (id (id x + id _)) :: Int-  , id (id (id y + _)) :: Int-  , id (id (id (ord _) + _)) :: Int-  , id (id (id (abs _) + _)) :: Int-  , id (id (id (id 0) + _)) :: Int-  , id (id (id (id _) + 0)) :: Int-  , id (id (id (id _) + _)) :: Int-  , id (id (id (id _) + x)) :: Int-  , id (id (id (id _) + id _)) :: Int-  , id (id (id (id x) + _)) :: Int-  , id (id (id (id (id _)) + _)) :: Int-  , id (id (id (negate _) + _)) :: Int-  , id (id (id (head _) + _)) :: Int-  , id (id (id (_ + _) + _)) :: Int-  , id (id (negate 0 + _)) :: Int-  , id (id (negate _ + 0)) :: Int-  , id (id (negate _ + _)) :: Int-  , id (id (negate _ + x)) :: Int-  , id (id (negate _ + id _)) :: Int-  , id (id (negate x + _)) :: Int-  , id (id (negate (id _) + _)) :: Int-  , id (id (head [] + _)) :: Int-  , id (id (head _ + 0)) :: Int-  , id (id (head _ + _)) :: Int-  , id (id (head _ + x)) :: Int-  , id (id (head _ + id _)) :: Int-  , id (id (head xs + _)) :: Int-  , id (id (head (_:_) + _)) :: Int-  , id (id (_ * _ + _)) :: Int-  , id (id ((0 + _) + _)) :: Int-  , id (id ((_ + 0) + _)) :: Int-  , id (id ((_ + _) + 0)) :: Int-  , id (id ((_ + _) + _)) :: Int-  , id (id ((_ + _) + x)) :: Int-  , id (id ((_ + _) + id _)) :: Int-  , id (id ((_ + x) + _)) :: Int-  , id (id ((_ + id _) + _)) :: Int-  , id (id ((x + _) + _)) :: Int-  , id (id ((id _ + _) + _)) :: Int-  , id (negate (-1)) :: Int-  , id (negate 0) :: Int-  , id (negate 1) :: Int-  , id (negate 2) :: Int-  , id (negate _) :: Int-  , id (negate x) :: Int-  , id (negate x') :: Int-  , id (negate y) :: Int-  , id (negate z) :: Int-  , id (negate (ord ' ')) :: Int-  , id (negate (ord 'a')) :: Int-  , id (negate (ord _)) :: Int-  , id (negate (ord c)) :: Int-  , id (negate (ord d)) :: Int-  , id (negate (f 0)) :: Int-  , id (negate (f _)) :: Int-  , id (negate (f x)) :: Int-  , id (negate (f (id _))) :: Int-  , id (negate (g _)) :: Int-  , id (negate (abs 0)) :: Int-  , id (negate (abs 1)) :: Int-  , id (negate (abs _)) :: Int-  , id (negate (abs x)) :: Int-  , id (negate (abs y)) :: Int-  , id (negate (abs (ord _))) :: Int-  , id (negate (abs (abs _))) :: Int-  , id (negate (abs (id 0))) :: Int-  , id (negate (abs (id _))) :: Int-  , id (negate (abs (id x))) :: Int-  , id (negate (abs (id (id _)))) :: Int-  , id (negate (abs (negate _))) :: Int-  , id (negate (abs (head _))) :: Int-  , id (negate (abs (_ + _))) :: Int-  , id (negate (id (-1))) :: Int-  , id (negate (id 0)) :: Int-  , id (negate (id 1)) :: Int-  , id (negate (id _)) :: Int-  , id (negate (id x)) :: Int-  , id (negate (id y)) :: Int-  , id (negate (id z)) :: Int-  , id (negate (id (ord 'a'))) :: Int-  , id (negate (id (ord _))) :: Int-  , id (negate (id (ord c))) :: Int-  , id (negate (id (f _))) :: Int-  , id (negate (id (abs 0))) :: Int-  , id (negate (id (abs _))) :: Int-  , id (negate (id (abs x))) :: Int-  , id (negate (id (abs (id _)))) :: Int-  , id (negate (id (id 0))) :: Int-  , id (negate (id (id 1))) :: Int-  , id (negate (id (id _))) :: Int-  , id (negate (id (id x))) :: Int-  , id (negate (id (id y))) :: Int-  , id (negate (id (id (ord _)))) :: Int-  , id (negate (id (id (abs _)))) :: Int-  , id (negate (id (id (id 0)))) :: Int-  , id (negate (id (id (id _)))) :: Int-  , id (negate (id (id (id x)))) :: Int-  , id (negate (id (id (id (id _))))) :: Int-  , id (negate (id (id (negate _)))) :: Int-  , id (negate (id (id (head _)))) :: Int-  , id (negate (id (id (_ + _)))) :: Int-  , id (negate (id (negate 0))) :: Int-  , id (negate (id (negate _))) :: Int-  , id (negate (id (negate x))) :: Int-  , id (negate (id (negate (id _)))) :: Int-  , id (negate (id (head []))) :: Int-  , id (negate (id (head _))) :: Int-  , id (negate (id (head xs))) :: Int-  , id (negate (id (head (_:_)))) :: Int-  , id (negate (id (_ * _))) :: Int-  , id (negate (id (0 + _))) :: Int-  , id (negate (id (_ + 0))) :: Int-  , id (negate (id (_ + _))) :: Int-  , id (negate (id (_ + x))) :: Int-  , id (negate (id (_ + id _))) :: Int-  , id (negate (id (x + _))) :: Int-  , id (negate (id (id _ + _))) :: Int-  , id (negate (negate 0)) :: Int-  , id (negate (negate 1)) :: Int-  , id (negate (negate _)) :: Int-  , id (negate (negate x)) :: Int-  , id (negate (negate y)) :: Int-  , id (negate (negate (ord _))) :: Int-  , id (negate (negate (abs _))) :: Int-  , id (negate (negate (id 0))) :: Int-  , id (negate (negate (id _))) :: Int-  , id (negate (negate (id x))) :: Int-  , id (negate (negate (id (id _)))) :: Int-  , id (negate (negate (negate _))) :: Int-  , id (negate (negate (head _))) :: Int-  , id (negate (negate (_ + _))) :: Int-  , id (negate (head [0])) :: Int-  , id (negate (head [])) :: Int-  , id (negate (head _)) :: Int-  , id (negate (head xs)) :: Int-  , id (negate (head ys)) :: Int-  , id (negate (head (tail _))) :: Int-  , id (negate (head (0:_))) :: Int-  , id (negate (head [_])) :: Int-  , id (negate (head (_:_))) :: Int-  , id (negate (head (_:xs))) :: Int-  , id (negate (head (_:_:_))) :: Int-  , id (negate (head (x:_))) :: Int-  , id (negate (head (id _:_))) :: Int-  , id (negate (head (_ ++ _))) :: Int-  , id (negate (0 * _)) :: Int-  , id (negate (_ * 0)) :: Int-  , id (negate (_ * _)) :: Int-  , id (negate (_ * x)) :: Int-  , id (negate (_ * id _)) :: Int-  , id (negate (x * _)) :: Int-  , id (negate (id _ * _)) :: Int-  , id (negate (0 + 0)) :: Int-  , id (negate (0 + _)) :: Int-  , id (negate (0 + x)) :: Int-  , id (negate (0 + id _)) :: Int-  , id (negate (1 + _)) :: Int-  , id (negate (_ + 0)) :: Int-  , id (negate (_ + 1)) :: Int-  , id (negate (_ + _)) :: Int-  , id (negate (_ + x)) :: Int-  , id (negate (_ + y)) :: Int-  , id (negate (_ + ord _)) :: Int-  , id (negate (_ + abs _)) :: Int-  , id (negate (_ + id 0)) :: Int-  , id (negate (_ + id _)) :: Int-  , id (negate (_ + id x)) :: Int-  , id (negate (_ + id (id _))) :: Int-  , id (negate (_ + negate _)) :: Int-  , id (negate (_ + head _)) :: Int-  , id (negate (_ + (_ + _))) :: Int-  , id (negate (x + 0)) :: Int-  , id (negate (x + _)) :: Int-  , id (negate (x + x)) :: Int-  , id (negate (x + id _)) :: Int-  , id (negate (y + _)) :: Int-  , id (negate (ord _ + _)) :: Int-  , id (negate (abs _ + _)) :: Int-  , id (negate (id 0 + _)) :: Int-  , id (negate (id _ + 0)) :: Int-  , id (negate (id _ + _)) :: Int-  , id (negate (id _ + x)) :: Int-  , id (negate (id _ + id _)) :: Int-  , id (negate (id x + _)) :: Int-  , id (negate (id (id _) + _)) :: Int-  , id (negate (negate _ + _)) :: Int-  , id (negate (head _ + _)) :: Int-  , id (negate ((_ + _) + _)) :: Int-  , id (head [-1]) :: Int-  , id (head [0,0,0]) :: Int-  , id (head [0,0]) :: Int-  , id (head [0,1]) :: Int-  , id (head [0]) :: Int-  , id (head [1,0]) :: Int-  , id (head [1]) :: Int-  , id (head []) :: Int-  , id (head _) :: Int-  , id (head xs) :: Int-  , id (head xs') :: Int-  , id (head ys) :: Int-  , id (head zs) :: Int-  , id (head (sort _)) :: Int-  , id (head (tail [0])) :: Int-  , id (head (tail [])) :: Int-  , id (head (tail _)) :: Int-  , id (head (tail xs)) :: Int-  , id (head (tail ys)) :: Int-  , id (head (tail (tail _))) :: Int-  , id (head (tail (0:_))) :: Int-  , id (head (tail [_])) :: Int-  , id (head (tail (_:_))) :: Int-  , id (head (tail (_:xs))) :: Int-  , id (head (tail (_:_:_))) :: Int-  , id (head (tail (x:_))) :: Int-  , id (head (tail (id _:_))) :: Int-  , id (head (tail (_ ++ _))) :: Int-  , id (head ((-1):_)) :: Int-  , id (head [0,0]) :: Int-  , id (head [0]) :: Int-  , id (head (0:_)) :: Int-  , id (head (0:xs)) :: Int-  , id (head (0:ys)) :: Int-  , id (head (0:tail _)) :: Int-  , id (head (0:0:_)) :: Int-  , id (head [0,_]) :: Int-  , id (head (0:_:_)) :: Int-  , id (head (0:_:xs)) :: Int-  , id (head (0:_:_:_)) :: Int-  , id (head (0:x:_)) :: Int-  , id (head (0:id _:_)) :: Int-  , id (head (0:(_ ++ _))) :: Int-  , id (head [1]) :: Int-  , id (head (1:_)) :: Int-  , id (head (1:xs)) :: Int-  , id (head (1:_:_)) :: Int-  , id (head [_,0,0]) :: Int-  , id (head [_,0]) :: Int-  , id (head [_,1]) :: Int-  , id (head [_]) :: Int-  , id (head (_:_)) :: Int-  , id (head (_:xs)) :: Int-  , id (head (_:ys)) :: Int-  , id (head (_:zs)) :: Int-  , id (head (_:sort _)) :: Int-  , id (head (_:tail [])) :: Int-  , id (head (_:tail _)) :: Int-  , id (head (_:tail xs)) :: Int-  , id (head (_:tail (_:_))) :: Int-  , id (head [_,0]) :: Int-  , id (head (_:0:_)) :: Int-  , id (head (_:0:xs)) :: Int-  , id (head (_:0:_:_)) :: Int-  , id (head (_:1:_)) :: Int-  , id (head [_,_,0]) :: Int-  , id (head [_,_]) :: Int-  , id (head (_:_:_)) :: Int-  , id (head (_:_:xs)) :: Int-  , id (head (_:_:ys)) :: Int-  , id (head (_:_:tail _)) :: Int-  , id (head (_:_:0:_)) :: Int-  , id (head [_,_,_]) :: Int-  , id (head (_:_:_:_)) :: Int-  , id (head (_:_:_:xs)) :: Int-  , id (head (_:_:_:_:_)) :: Int-  , id (head (_:_:x:_)) :: Int-  , id (head (_:_:id _:_)) :: Int-  , id (head (_:_:(_ ++ _))) :: Int-  , id (head [_,x]) :: Int-  , id (head (_:x:_)) :: Int-  , id (head (_:x:xs)) :: Int-  , id (head (_:x:_:_)) :: Int-  , id (head (_:y:_)) :: Int-  , id (head (_:ord _:_)) :: Int-  , id (head (_:abs _:_)) :: Int-  , id (head (_:id 0:_)) :: Int-  , id (head [_,id _]) :: Int-  , id (head (_:id _:_)) :: Int-  , id (head (_:id _:xs)) :: Int-  , id (head (_:id _:_:_)) :: Int-  , id (head (_:id x:_)) :: Int-  , id (head (_:id (id _):_)) :: Int-  , id (head (_:negate _:_)) :: Int-  , id (head (_:head _:_)) :: Int-  , id (head (_:_ + _:_)) :: Int-  , id (head (_:insert _ _)) :: Int-  , id (head (_:([] ++ _))) :: Int-  , id (head (_:(_ ++ []))) :: Int-  , id (head (_:(_ ++ _))) :: Int-  , id (head (_:(_ ++ xs))) :: Int-  , id (head (_:(_ ++ (_:_)))) :: Int-  , id (head (_:(xs ++ _))) :: Int-  , id (head (_:((_:_) ++ _))) :: Int-  , id (head [x,0]) :: Int-  , id (head [x]) :: Int-  , id (head (x:_)) :: Int-  , id (head (x:xs)) :: Int-  , id (head (x:ys)) :: Int-  , id (head (x:tail _)) :: Int-  , id (head (x:0:_)) :: Int-  , id (head [x,_]) :: Int-  , id (head (x:_:_)) :: Int-  , id (head (x:_:xs)) :: Int-  , id (head (x:_:_:_)) :: Int-  , id (head (x:x:_)) :: Int-  , id (head (x:id _:_)) :: Int-  , id (head (x:(_ ++ _))) :: Int-  , id (head [y]) :: Int-  , id (head (y:_)) :: Int-  , id (head (y:xs)) :: Int-  , id (head (y:_:_)) :: Int-  , id (head (z:_)) :: Int-  , id (head (ord 'a':_)) :: Int-  , id (head [ord _]) :: Int-  , id (head (ord _:_)) :: Int-  , id (head (ord _:xs)) :: Int-  , id (head (ord _:_:_)) :: Int-  , id (head (ord c:_)) :: Int-  , id (head (f _:_)) :: Int-  , id (head (abs 0:_)) :: Int-  , id (head [abs _]) :: Int-  , id (head (abs _:_)) :: Int-  , id (head (abs _:xs)) :: Int-  , id (head (abs _:_:_)) :: Int-  , id (head (abs x:_)) :: Int-  , id (head (abs (id _):_)) :: Int-  , id (head [id 0]) :: Int-  , id (head (id 0:_)) :: Int-  , id (head (id 0:xs)) :: Int-  , id (head (id 0:_:_)) :: Int-  , id (head (id 1:_)) :: Int-  , id (head [id _,0]) :: Int-  , id (head [id _]) :: Int-  , id (head (id _:_)) :: Int-  , id (head (id _:xs)) :: Int-  , id (head (id _:ys)) :: Int-  , id (head (id _:tail _)) :: Int-  , id (head (id _:0:_)) :: Int-  , id (head [id _,_]) :: Int-  , id (head (id _:_:_)) :: Int-  , id (head (id _:_:xs)) :: Int-  , id (head (id _:_:_:_)) :: Int-  , id (head (id _:x:_)) :: Int-  , id (head (id _:id _:_)) :: Int-  , id (head (id _:(_ ++ _))) :: Int-  , id (head [id x]) :: Int-  , id (head (id x:_)) :: Int-  , id (head (id x:xs)) :: Int-  , id (head (id x:_:_)) :: Int-  , id (head (id y:_)) :: Int-  , id (head (id (ord _):_)) :: Int-  , id (head (id (abs _):_)) :: Int-  , id (head (id (id 0):_)) :: Int-  , id (head [id (id _)]) :: Int-  , id (head (id (id _):_)) :: Int-  , id (head (id (id _):xs)) :: Int-  , id (head (id (id _):_:_)) :: Int-  , id (head (id (id x):_)) :: Int-  , id (head (id (id (id _)):_)) :: Int-  , id (head (id (negate _):_)) :: Int-  , id (head (id (head _):_)) :: Int-  , id (head (id (_ + _):_)) :: Int-  , id (head (negate 0:_)) :: Int-  , id (head [negate _]) :: Int-  , id (head (negate _:_)) :: Int-  , id (head (negate _:xs)) :: Int-  , id (head (negate _:_:_)) :: Int-  , id (head (negate x:_)) :: Int-  , id (head (negate (id _):_)) :: Int-  , id (head (head []:_)) :: Int-  , id (head [head _]) :: Int-  , id (head (head _:_)) :: Int-  , id (head (head _:xs)) :: Int-  , id (head (head _:_:_)) :: Int-  , id (head (head xs:_)) :: Int-  , id (head (head (_:_):_)) :: Int-  , id (head (_ * _:_)) :: Int-  , id (head (0 + _:_)) :: Int-  , id (head (_ + 0:_)) :: Int-  , id (head [_ + _]) :: Int-  , id (head (_ + _:_)) :: Int-  , id (head (_ + _:xs)) :: Int-  , id (head (_ + _:_:_)) :: Int-  , id (head (_ + x:_)) :: Int-  , id (head (_ + id _:_)) :: Int-  , id (head (x + _:_)) :: Int-  , id (head (id _ + _:_)) :: Int-  , id (head (insert _ _)) :: Int-  , id (head ([0] ++ _)) :: Int-  , id (head ([] ++ [])) :: Int-  , id (head ([] ++ _)) :: Int-  , id (head ([] ++ xs)) :: Int-  , id (head ([] ++ (_:_))) :: Int-  , id (head (_ ++ [0])) :: Int-  , id (head (_ ++ [])) :: Int-  , id (head (_ ++ _)) :: Int-  , id (head (_ ++ xs)) :: Int-  , id (head (_ ++ ys)) :: Int-  , id (head (_ ++ tail _)) :: Int-  , id (head (_ ++ (0:_))) :: Int-  , id (head (_ ++ [_])) :: Int-  , id (head (_ ++ (_:_))) :: Int-  , id (head (_ ++ (_:xs))) :: Int-  , id (head (_ ++ (_:_:_))) :: Int-  , id (head (_ ++ (x:_))) :: Int-  , id (head (_ ++ (id _:_))) :: Int-  , id (head (_ ++ (_ ++ _))) :: Int-  , id (head (xs ++ [])) :: Int-  , id (head (xs ++ _)) :: Int-  , id (head (xs ++ xs)) :: Int-  , id (head (xs ++ (_:_))) :: Int-  , id (head (ys ++ _)) :: Int-  , id (head ((0:_) ++ _)) :: Int-  , id (head ([_] ++ _)) :: Int-  , id (head ((_:_) ++ [])) :: Int-  , id (head ((_:_) ++ _)) :: Int-  , id (head ((_:_) ++ xs)) :: Int-  , id (head ((_:_) ++ (_:_))) :: Int-  , id (head ((_:xs) ++ _)) :: Int-  , id (head ((_:_:_) ++ _)) :: Int-  , id (head ((x:_) ++ _)) :: Int-  , id (head ((id _:_) ++ _)) :: Int-  , id ((-1) * _) :: Int-  , id (0 * 0) :: Int-  , id (0 * 1) :: Int-  , id (0 * _) :: Int-  , id (0 * x) :: Int-  , id (0 * y) :: Int-  , id (0 * ord _) :: Int-  , id (0 * abs _) :: Int-  , id (0 * id 0) :: Int-  , id (0 * id _) :: Int-  , id (0 * id x) :: Int-  , id (0 * id (id _)) :: Int-  , id (0 * negate _) :: Int-  , id (0 * head _) :: Int-  , id (0 * (_ + _)) :: Int-  , id (1 * 0) :: Int-  , id (1 * _) :: Int-  , id (1 * x) :: Int-  , id (1 * id _) :: Int-  , id (_ * (-1)) :: Int-  , id (_ * 0) :: Int-  , id (_ * 1) :: Int-  , id (_ * _) :: Int-  , id (_ * x) :: Int-  , id (_ * y) :: Int-  , id (_ * z) :: Int-  , id (_ * ord 'a') :: Int-  , id (_ * ord _) :: Int-  , id (_ * ord c) :: Int-  , id (_ * f _) :: Int-  , id (_ * abs 0) :: Int-  , id (_ * abs _) :: Int-  , id (_ * abs x) :: Int-  , id (_ * abs (id _)) :: Int-  , id (_ * id 0) :: Int-  , id (_ * id 1) :: Int-  , id (_ * id _) :: Int-  , id (_ * id x) :: Int-  , id (_ * id y) :: Int-  , id (_ * id (ord _)) :: Int-  , id (_ * id (abs _)) :: Int-  , id (_ * id (id 0)) :: Int-  , id (_ * id (id _)) :: Int-  , id (_ * id (id x)) :: Int-  , id (_ * id (id (id _))) :: Int-  , id (_ * id (negate _)) :: Int-  , id (_ * id (head _)) :: Int-  , id (_ * id (_ + _)) :: Int-  , id (_ * negate 0) :: Int-  , id (_ * negate _) :: Int-  , id (_ * negate x) :: Int-  , id (_ * negate (id _)) :: Int-  , id (_ * head []) :: Int-  , id (_ * head _) :: Int-  , id (_ * head xs) :: Int-  , id (_ * head (_:_)) :: Int-  , id (_ * (_ * _)) :: Int-  , id (_ * (0 + _)) :: Int-  , id (_ * (_ + 0)) :: Int-  , id (_ * (_ + _)) :: Int-  , id (_ * (_ + x)) :: Int-  , id (_ * (_ + id _)) :: Int-  , id (_ * (x + _)) :: Int-  , id (_ * (id _ + _)) :: Int-  , id (x * 0) :: Int-  , id (x * 1) :: Int-  , id (x * _) :: Int-  , id (x * x) :: Int-  , id (x * y) :: Int-  , id (x * ord _) :: Int-  , id (x * abs _) :: Int-  , id (x * id 0) :: Int-  , id (x * id _) :: Int-  , id (x * id x) :: Int-  , id (x * id (id _)) :: Int-  , id (x * negate _) :: Int-  , id (x * head _) :: Int-  , id (x * (_ + _)) :: Int-  , id (y * 0) :: Int-  , id (y * _) :: Int-  , id (y * x) :: Int-  , id (y * id _) :: Int-  , id (z * _) :: Int-  , id (ord 'a' * _) :: Int-  , id (ord _ * 0) :: Int-  , id (ord _ * _) :: Int-  , id (ord _ * x) :: Int-  , id (ord _ * id _) :: Int-  , id (ord c * _) :: Int-  , id (f _ * _) :: Int-  , id (abs 0 * _) :: Int-  , id (abs _ * 0) :: Int-  , id (abs _ * _) :: Int-  , id (abs _ * x) :: Int-  , id (abs _ * id _) :: Int-  , id (abs x * _) :: Int-  , id (abs (id _) * _) :: Int-  , id (id 0 * 0) :: Int-  , id (id 0 * _) :: Int-  , id (id 0 * x) :: Int-  , id (id 0 * id _) :: Int-  , id (id 1 * _) :: Int-  , id (id _ * 0) :: Int-  , id (id _ * 1) :: Int-  , id (id _ * _) :: Int-  , id (id _ * x) :: Int-  , id (id _ * y) :: Int-  , id (id _ * ord _) :: Int-  , id (id _ * abs _) :: Int-  , id (id _ * id 0) :: Int-  , id (id _ * id _) :: Int-  , id (id _ * id x) :: Int-  , id (id _ * id (id _)) :: Int-  , id (id _ * negate _) :: Int-  , id (id _ * head _) :: Int-  , id (id _ * (_ + _)) :: Int-  , id (id x * 0) :: Int-  , id (id x * _) :: Int-  , id (id x * x) :: Int-  , id (id x * id _) :: Int-  , id (id y * _) :: Int-  , id (id (ord _) * _) :: Int-  , id (id (abs _) * _) :: Int-  , id (id (id 0) * _) :: Int-  , id (id (id _) * 0) :: Int-  , id (id (id _) * _) :: Int-  , id (id (id _) * x) :: Int-  , id (id (id _) * id _) :: Int-  , id (id (id x) * _) :: Int-  , id (id (id (id _)) * _) :: Int-  , id (id (negate _) * _) :: Int-  , id (id (head _) * _) :: Int-  , id (id (_ + _) * _) :: Int-  , id (negate 0 * _) :: Int-  , id (negate _ * 0) :: Int-  , id (negate _ * _) :: Int-  , id (negate _ * x) :: Int-  , id (negate _ * id _) :: Int-  , id (negate x * _) :: Int-  , id (negate (id _) * _) :: Int-  , id (head [] * _) :: Int-  , id (head _ * 0) :: Int-  , id (head _ * _) :: Int-  , id (head _ * x) :: Int-  , id (head _ * id _) :: Int-  , id (head xs * _) :: Int-  , id (head (_:_) * _) :: Int-  , id ((_ * _) * _) :: Int-  , id ((0 + _) * _) :: Int-  , id ((_ + 0) * _) :: Int-  , id ((_ + _) * 0) :: Int-  , id ((_ + _) * _) :: Int-  , id ((_ + _) * x) :: Int-  , id ((_ + _) * id _) :: Int-  , id ((_ + x) * _) :: Int-  , id ((_ + id _) * _) :: Int-  , id ((x + _) * _) :: Int-  , id ((id _ + _) * _) :: Int-  , id ((-1) + 0) :: Int-  , id ((-1) + _) :: Int-  , id ((-1) + x) :: Int-  , id ((-1) + id _) :: Int-  , id (0 + (-1)) :: Int-  , id (0 + 0) :: Int-  , id (0 + 1) :: Int-  , id (0 + _) :: Int-  , id (0 + x) :: Int-  , id (0 + y) :: Int-  , id (0 + z) :: Int-  , id (0 + ord 'a') :: Int-  , id (0 + ord _) :: Int-  , id (0 + ord c) :: Int-  , id (0 + f _) :: Int-  , id (0 + abs 0) :: Int-  , id (0 + abs _) :: Int-  , id (0 + abs x) :: Int-  , id (0 + abs (id _)) :: Int-  , id (0 + id 0) :: Int-  , id (0 + id 1) :: Int-  , id (0 + id _) :: Int-  , id (0 + id x) :: Int-  , id (0 + id y) :: Int-  , id (0 + id (ord _)) :: Int-  , id (0 + id (abs _)) :: Int-  , id (0 + id (id 0)) :: Int-  , id (0 + id (id _)) :: Int-  , id (0 + id (id x)) :: Int-  , id (0 + id (id (id _))) :: Int-  , id (0 + id (negate _)) :: Int-  , id (0 + id (head _)) :: Int-  , id (0 + id (_ + _)) :: Int-  , id (0 + negate 0) :: Int-  , id (0 + negate _) :: Int-  , id (0 + negate x) :: Int-  , id (0 + negate (id _)) :: Int-  , id (0 + head []) :: Int-  , id (0 + head _) :: Int-  , id (0 + head xs) :: Int-  , id (0 + head (_:_)) :: Int-  , id (0 + _ * _) :: Int-  , id (0 + (0 + _)) :: Int-  , id (0 + (_ + 0)) :: Int-  , id (0 + (_ + _)) :: Int-  , id (0 + (_ + x)) :: Int-  , id (0 + (_ + id _)) :: Int-  , id (0 + (x + _)) :: Int-  , id (0 + (id _ + _)) :: Int-  , id (1 + 0) :: Int-  , id (1 + 1) :: Int-  , id (1 + _) :: Int-  , id (1 + x) :: Int-  , id (1 + y) :: Int-  , id (1 + ord _) :: Int-  , id (1 + abs _) :: Int-  , id (1 + id 0) :: Int-  , id (1 + id _) :: Int-  , id (1 + id x) :: Int-  , id (1 + id (id _)) :: Int-  , id (1 + negate _) :: Int-  , id (1 + head _) :: Int-  , id (1 + (_ + _)) :: Int-  , id (2 + _) :: Int-  , id (_ + (-1)) :: Int-  , id (_ + 0) :: Int-  , id (_ + 1) :: Int-  , id (_ + 2) :: Int-  , id (_ + _) :: Int-  , id (_ + x) :: Int-  , id (_ + x') :: Int-  , id (_ + y) :: Int-  , id (_ + z) :: Int-  , id (_ + ord ' ') :: Int-  , id (_ + ord 'a') :: Int-  , id (_ + ord _) :: Int-  , id (_ + ord c) :: Int-  , id (_ + ord d) :: Int-  , id (_ + f 0) :: Int-  , id (_ + f _) :: Int-  , id (_ + f x) :: Int-  , id (_ + f (id _)) :: Int-  , id (_ + g _) :: Int-  , id (_ + abs 0) :: Int-  , id (_ + abs 1) :: Int-  , id (_ + abs _) :: Int-  , id (_ + abs x) :: Int-  , id (_ + abs y) :: Int-  , id (_ + abs (ord _)) :: Int-  , id (_ + abs (abs _)) :: Int-  , id (_ + abs (id 0)) :: Int-  , id (_ + abs (id _)) :: Int-  , id (_ + abs (id x)) :: Int-  , id (_ + abs (id (id _))) :: Int-  , id (_ + abs (negate _)) :: Int-  , id (_ + abs (head _)) :: Int-  , id (_ + abs (_ + _)) :: Int-  , id (_ + id (-1)) :: Int-  , id (_ + id 0) :: Int-  , id (_ + id 1) :: Int-  , id (_ + id _) :: Int-  , id (_ + id x) :: Int-  , id (_ + id y) :: Int-  , id (_ + id z) :: Int-  , id (_ + id (ord 'a')) :: Int-  , id (_ + id (ord _)) :: Int-  , id (_ + id (ord c)) :: Int-  , id (_ + id (f _)) :: Int-  , id (_ + id (abs 0)) :: Int-  , id (_ + id (abs _)) :: Int-  , id (_ + id (abs x)) :: Int-  , id (_ + id (abs (id _))) :: Int-  , id (_ + id (id 0)) :: Int-  , id (_ + id (id 1)) :: Int-  , id (_ + id (id _)) :: Int-  , id (_ + id (id x)) :: Int-  , id (_ + id (id y)) :: Int-  , id (_ + id (id (ord _))) :: Int-  , id (_ + id (id (abs _))) :: Int-  , id (_ + id (id (id 0))) :: Int-  , id (_ + id (id (id _))) :: Int-  , id (_ + id (id (id x))) :: Int-  , id (_ + id (id (id (id _)))) :: Int-  , id (_ + id (id (negate _))) :: Int-  , id (_ + id (id (head _))) :: Int-  , id (_ + id (id (_ + _))) :: Int-  , id (_ + id (negate 0)) :: Int-  , id (_ + id (negate _)) :: Int-  , id (_ + id (negate x)) :: Int-  , id (_ + id (negate (id _))) :: Int-  , id (_ + id (head [])) :: Int-  , id (_ + id (head _)) :: Int-  , id (_ + id (head xs)) :: Int-  , id (_ + id (head (_:_))) :: Int-  , id (_ + id (_ * _)) :: Int-  , id (_ + id (0 + _)) :: Int-  , id (_ + id (_ + 0)) :: Int-  , id (_ + id (_ + _)) :: Int-  , id (_ + id (_ + x)) :: Int-  , id (_ + id (_ + id _)) :: Int-  , id (_ + id (x + _)) :: Int-  , id (_ + id (id _ + _)) :: Int-  , id (_ + negate 0) :: Int-  , id (_ + negate 1) :: Int-  , id (_ + negate _) :: Int-  , id (_ + negate x) :: Int-  , id (_ + negate y) :: Int-  , id (_ + negate (ord _)) :: Int-  , id (_ + negate (abs _)) :: Int-  , id (_ + negate (id 0)) :: Int-  , id (_ + negate (id _)) :: Int-  , id (_ + negate (id x)) :: Int-  , id (_ + negate (id (id _))) :: Int-  , id (_ + negate (negate _)) :: Int-  , id (_ + negate (head _)) :: Int-  , id (_ + negate (_ + _)) :: Int-  , id (_ + head [0]) :: Int-  , id (_ + head []) :: Int-  , id (_ + head _) :: Int-  , id (_ + head xs) :: Int-  , id (_ + head ys) :: Int-  , id (_ + head (tail _)) :: Int-  , id (_ + head (0:_)) :: Int-  , id (_ + head [_]) :: Int-  , id (_ + head (_:_)) :: Int-  , id (_ + head (_:xs)) :: Int-  , id (_ + head (_:_:_)) :: Int-  , id (_ + head (x:_)) :: Int-  , id (_ + head (id _:_)) :: Int-  , id (_ + head (_ ++ _)) :: Int-  , id (_ + 0 * _) :: Int-  , id (_ + _ * 0) :: Int-  , id (_ + _ * _) :: Int-  , id (_ + _ * x) :: Int-  , id (_ + _ * id _) :: Int-  , id (_ + x * _) :: Int-  , id (_ + id _ * _) :: Int-  , id (_ + (0 + 0)) :: Int-  , id (_ + (0 + _)) :: Int-  , id (_ + (0 + x)) :: Int-  , id (_ + (0 + id _)) :: Int-  , id (_ + (1 + _)) :: Int-  , id (_ + (_ + 0)) :: Int-  , id (_ + (_ + 1)) :: Int-  , id (_ + (_ + _)) :: Int-  , id (_ + (_ + x)) :: Int-  , id (_ + (_ + y)) :: Int-  , id (_ + (_ + ord _)) :: Int-  , id (_ + (_ + abs _)) :: Int-  , id (_ + (_ + id 0)) :: Int-  , id (_ + (_ + id _)) :: Int-  , id (_ + (_ + id x)) :: Int-  , id (_ + (_ + id (id _))) :: Int-  , id (_ + (_ + negate _)) :: Int-  , id (_ + (_ + head _)) :: Int-  , id (_ + (_ + (_ + _))) :: Int-  , id (_ + (x + 0)) :: Int-  , id (_ + (x + _)) :: Int-  , id (_ + (x + x)) :: Int-  , id (_ + (x + id _)) :: Int-  , id (_ + (y + _)) :: Int-  , id (_ + (ord _ + _)) :: Int-  , id (_ + (abs _ + _)) :: Int-  , id (_ + (id 0 + _)) :: Int-  , id (_ + (id _ + 0)) :: Int-  , id (_ + (id _ + _)) :: Int-  , id (_ + (id _ + x)) :: Int-  , id (_ + (id _ + id _)) :: Int-  , id (_ + (id x + _)) :: Int-  , id (_ + (id (id _) + _)) :: Int-  , id (_ + (negate _ + _)) :: Int-  , id (_ + (head _ + _)) :: Int-  , id (_ + ((_ + _) + _)) :: Int-  , id (x + (-1)) :: Int-  , id (x + 0) :: Int-  , id (x + 1) :: Int-  , id (x + _) :: Int-  , id (x + x) :: Int-  , id (x + y) :: Int-  , id (x + z) :: Int-  , id (x + ord 'a') :: Int-  , id (x + ord _) :: Int-  , id (x + ord c) :: Int-  , id (x + f _) :: Int-  , id (x + abs 0) :: Int-  , id (x + abs _) :: Int-  , id (x + abs x) :: Int-  , id (x + abs (id _)) :: Int-  , id (x + id 0) :: Int-  , id (x + id 1) :: Int-  , id (x + id _) :: Int-  , id (x + id x) :: Int-  , id (x + id y) :: Int-  , id (x + id (ord _)) :: Int-  , id (x + id (abs _)) :: Int-  , id (x + id (id 0)) :: Int-  , id (x + id (id _)) :: Int-  , id (x + id (id x)) :: Int-  , id (x + id (id (id _))) :: Int-  , id (x + id (negate _)) :: Int-  , id (x + id (head _)) :: Int-  , id (x + id (_ + _)) :: Int-  , id (x + negate 0) :: Int-  , id (x + negate _) :: Int-  , id (x + negate x) :: Int-  , id (x + negate (id _)) :: Int-  , id (x + head []) :: Int-  , id (x + head _) :: Int-  , id (x + head xs) :: Int-  , id (x + head (_:_)) :: Int-  , id (x + _ * _) :: Int-  , id (x + (0 + _)) :: Int-  , id (x + (_ + 0)) :: Int-  , id (x + (_ + _)) :: Int-  , id (x + (_ + x)) :: Int-  , id (x + (_ + id _)) :: Int-  , id (x + (x + _)) :: Int-  , id (x + (id _ + _)) :: Int-  , id (x' + _) :: Int-  , id (y + 0) :: Int-  , id (y + 1) :: Int-  , id (y + _) :: Int-  , id (y + x) :: Int-  , id (y + y) :: Int-  , id (y + ord _) :: Int-  , id (y + abs _) :: Int-  , id (y + id 0) :: Int-  , id (y + id _) :: Int-  , id (y + id x) :: Int-  , id (y + id (id _)) :: Int-  , id (y + negate _) :: Int-  , id (y + head _) :: Int-  , id (y + (_ + _)) :: Int-  , id (z + 0) :: Int-  , id (z + _) :: Int-  , id (z + x) :: Int-  , id (z + id _) :: Int-  , id (ord ' ' + _) :: Int-  , id (ord 'a' + 0) :: Int-  , id (ord 'a' + _) :: Int-  , id (ord 'a' + x) :: Int-  , id (ord 'a' + id _) :: Int-  , id (ord _ + 0) :: Int-  , id (ord _ + 1) :: Int-  , id (ord _ + _) :: Int-  , id (ord _ + x) :: Int-  , id (ord _ + y) :: Int-  , id (ord _ + ord _) :: Int-  , id (ord _ + abs _) :: Int-  , id (ord _ + id 0) :: Int-  , id (ord _ + id _) :: Int-  , id (ord _ + id x) :: Int-  , id (ord _ + id (id _)) :: Int-  , id (ord _ + negate _) :: Int-  , id (ord _ + head _) :: Int-  , id (ord _ + (_ + _)) :: Int-  , id (ord c + 0) :: Int-  , id (ord c + _) :: Int-  , id (ord c + x) :: Int-  , id (ord c + id _) :: Int-  , id (ord d + _) :: Int-  , id (f 0 + _) :: Int-  , id (f _ + 0) :: Int-  , id (f _ + _) :: Int-  , id (f _ + x) :: Int-  , id (f _ + id _) :: Int-  , id (f x + _) :: Int-  , id (f (id _) + _) :: Int-  , id (g _ + _) :: Int-  , id (abs 0 + 0) :: Int-  , id (abs 0 + _) :: Int-  , id (abs 0 + x) :: Int-  , id (abs 0 + id _) :: Int-  , id (abs 1 + _) :: Int-  , id (abs _ + 0) :: Int-  , id (abs _ + 1) :: Int-  , id (abs _ + _) :: Int-  , id (abs _ + x) :: Int-  , id (abs _ + y) :: Int-  , id (abs _ + ord _) :: Int-  , id (abs _ + abs _) :: Int-  , id (abs _ + id 0) :: Int-  , id (abs _ + id _) :: Int-  , id (abs _ + id x) :: Int-  , id (abs _ + id (id _)) :: Int-  , id (abs _ + negate _) :: Int-  , id (abs _ + head _) :: Int-  , id (abs _ + (_ + _)) :: Int-  , id (abs x + 0) :: Int-  , id (abs x + _) :: Int-  , id (abs x + x) :: Int-  , id (abs x + id _) :: Int-  , id (abs y + _) :: Int-  , id (abs (ord _) + _) :: Int-  , id (abs (abs _) + _) :: Int-  , id (abs (id 0) + _) :: Int-  , id (abs (id _) + 0) :: Int-  , id (abs (id _) + _) :: Int-  , id (abs (id _) + x) :: Int-  , id (abs (id _) + id _) :: Int-  , id (abs (id x) + _) :: Int-  , id (abs (id (id _)) + _) :: Int-  , id (abs (negate _) + _) :: Int-  , id (abs (head _) + _) :: Int-  , id (abs (_ + _) + _) :: Int-  , id (id (-1) + _) :: Int-  , id (id 0 + 0) :: Int-  , id (id 0 + 1) :: Int-  , id (id 0 + _) :: Int-  , id (id 0 + x) :: Int-  , id (id 0 + y) :: Int-  , id (id 0 + ord _) :: Int-  , id (id 0 + abs _) :: Int-  , id (id 0 + id 0) :: Int-  , id (id 0 + id _) :: Int-  , id (id 0 + id x) :: Int-  , id (id 0 + id (id _)) :: Int-  , id (id 0 + negate _) :: Int-  , id (id 0 + head _) :: Int-  , id (id 0 + (_ + _)) :: Int-  , id (id 1 + 0) :: Int-  , id (id 1 + _) :: Int-  , id (id 1 + x) :: Int-  , id (id 1 + id _) :: Int-  , id (id _ + (-1)) :: Int-  , id (id _ + 0) :: Int-  , id (id _ + 1) :: Int-  , id (id _ + _) :: Int-  , id (id _ + x) :: Int-  , id (id _ + y) :: Int-  , id (id _ + z) :: Int-  , id (id _ + ord 'a') :: Int-  , id (id _ + ord _) :: Int-  , id (id _ + ord c) :: Int-  , id (id _ + f _) :: Int-  , id (id _ + abs 0) :: Int-  , id (id _ + abs _) :: Int-  , id (id _ + abs x) :: Int-  , id (id _ + abs (id _)) :: Int-  , id (id _ + id 0) :: Int-  , id (id _ + id 1) :: Int-  , id (id _ + id _) :: Int-  , id (id _ + id x) :: Int-  , id (id _ + id y) :: Int-  , id (id _ + id (ord _)) :: Int-  , id (id _ + id (abs _)) :: Int-  , id (id _ + id (id 0)) :: Int-  , id (id _ + id (id _)) :: Int-  , id (id _ + id (id x)) :: Int-  , id (id _ + id (id (id _))) :: Int-  , id (id _ + id (negate _)) :: Int-  , id (id _ + id (head _)) :: Int-  , id (id _ + id (_ + _)) :: Int-  , id (id _ + negate 0) :: Int-  , id (id _ + negate _) :: Int-  , id (id _ + negate x) :: Int-  , id (id _ + negate (id _)) :: Int-  , id (id _ + head []) :: Int-  , id (id _ + head _) :: Int-  , id (id _ + head xs) :: Int-  , id (id _ + head (_:_)) :: Int-  , id (id _ + _ * _) :: Int-  , id (id _ + (0 + _)) :: Int-  , id (id _ + (_ + 0)) :: Int-  , id (id _ + (_ + _)) :: Int-  , id (id _ + (_ + x)) :: Int-  , id (id _ + (_ + id _)) :: Int-  , id (id _ + (x + _)) :: Int-  , id (id _ + (id _ + _)) :: Int-  , id (id x + 0) :: Int-  , id (id x + 1) :: Int-  , id (id x + _) :: Int-  , id (id x + x) :: Int-  , id (id x + y) :: Int-  , id (id x + ord _) :: Int-  , id (id x + abs _) :: Int-  , id (id x + id 0) :: Int-  , id (id x + id _) :: Int-  , id (id x + id x) :: Int-  , id (id x + id (id _)) :: Int-  , id (id x + negate _) :: Int-  , id (id x + head _) :: Int-  , id (id x + (_ + _)) :: Int-  , id (id y + 0) :: Int-  , id (id y + _) :: Int-  , id (id y + x) :: Int-  , id (id y + id _) :: Int-  , id (id z + _) :: Int-  , id (id (ord 'a') + _) :: Int-  , id (id (ord _) + 0) :: Int-  , id (id (ord _) + _) :: Int-  , id (id (ord _) + x) :: Int-  , id (id (ord _) + id _) :: Int-  , id (id (ord c) + _) :: Int-  , id (id (f _) + _) :: Int-  , id (id (abs 0) + _) :: Int-  , id (id (abs _) + 0) :: Int-  , id (id (abs _) + _) :: Int-  , id (id (abs _) + x) :: Int-  , id (id (abs _) + id _) :: Int-  , id (id (abs x) + _) :: Int-  , id (id (abs (id _)) + _) :: Int-  , id (id (id 0) + 0) :: Int-  , id (id (id 0) + _) :: Int-  , id (id (id 0) + x) :: Int-  , id (id (id 0) + id _) :: Int-  , id (id (id 1) + _) :: Int-  , id (id (id _) + 0) :: Int-  , id (id (id _) + 1) :: Int-  , id (id (id _) + _) :: Int-  , id (id (id _) + x) :: Int-  , id (id (id _) + y) :: Int-  , id (id (id _) + ord _) :: Int-  , id (id (id _) + abs _) :: Int-  , id (id (id _) + id 0) :: Int-  , id (id (id _) + id _) :: Int-  , id (id (id _) + id x) :: Int-  , id (id (id _) + id (id _)) :: Int-  , id (id (id _) + negate _) :: Int-  , id (id (id _) + head _) :: Int-  , id (id (id _) + (_ + _)) :: Int-  , id (id (id x) + 0) :: Int-  , id (id (id x) + _) :: Int-  , id (id (id x) + x) :: Int-  , id (id (id x) + id _) :: Int-  , id (id (id y) + _) :: Int-  , id (id (id (ord _)) + _) :: Int-  , id (id (id (abs _)) + _) :: Int-  , id (id (id (id 0)) + _) :: Int-  , id (id (id (id _)) + 0) :: Int-  , id (id (id (id _)) + _) :: Int-  , id (id (id (id _)) + x) :: Int-  , id (id (id (id _)) + id _) :: Int-  , id (id (id (id x)) + _) :: Int-  , id (id (id (id (id _))) + _) :: Int-  , id (id (id (negate _)) + _) :: Int-  , id (id (id (head _)) + _) :: Int-  , id (id (id (_ + _)) + _) :: Int-  , id (id (negate 0) + _) :: Int-  , id (id (negate _) + 0) :: Int-  , id (id (negate _) + _) :: Int-  , id (id (negate _) + x) :: Int-  , id (id (negate _) + id _) :: Int-  , id (id (negate x) + _) :: Int-  , id (id (negate (id _)) + _) :: Int-  , id (id (head []) + _) :: Int-  , id (id (head _) + 0) :: Int-  , id (id (head _) + _) :: Int-  , id (id (head _) + x) :: Int-  , id (id (head _) + id _) :: Int-  , id (id (head xs) + _) :: Int-  , id (id (head (_:_)) + _) :: Int-  , id (id (_ * _) + _) :: Int-  , id (id (0 + _) + _) :: Int-  , id (id (_ + 0) + _) :: Int-  , id (id (_ + _) + 0) :: Int-  , id (id (_ + _) + _) :: Int-  , id (id (_ + _) + x) :: Int-  , id (id (_ + _) + id _) :: Int-  , id (id (_ + x) + _) :: Int-  , id (id (_ + id _) + _) :: Int-  , id (id (x + _) + _) :: Int-  , id (id (id _ + _) + _) :: Int-  , id (negate 0 + 0) :: Int-  , id (negate 0 + _) :: Int-  , id (negate 0 + x) :: Int-  , id (negate 0 + id _) :: Int-  , id (negate 1 + _) :: Int-  , id (negate _ + 0) :: Int-  , id (negate _ + 1) :: Int-  , id (negate _ + _) :: Int-  , id (negate _ + x) :: Int-  , id (negate _ + y) :: Int-  , id (negate _ + ord _) :: Int-  , id (negate _ + abs _) :: Int-  , id (negate _ + id 0) :: Int-  , id (negate _ + id _) :: Int-  , id (negate _ + id x) :: Int-  , id (negate _ + id (id _)) :: Int-  , id (negate _ + negate _) :: Int-  , id (negate _ + head _) :: Int-  , id (negate _ + (_ + _)) :: Int-  , id (negate x + 0) :: Int-  , id (negate x + _) :: Int-  , id (negate x + x) :: Int-  , id (negate x + id _) :: Int-  , id (negate y + _) :: Int-  , id (negate (ord _) + _) :: Int-  , id (negate (abs _) + _) :: Int-  , id (negate (id 0) + _) :: Int-  , id (negate (id _) + 0) :: Int-  , id (negate (id _) + _) :: Int-  , id (negate (id _) + x) :: Int-  , id (negate (id _) + id _) :: Int-  , id (negate (id x) + _) :: Int-  , id (negate (id (id _)) + _) :: Int-  , id (negate (negate _) + _) :: Int-  , id (negate (head _) + _) :: Int-  , id (negate (_ + _) + _) :: Int-  , id (head [0] + _) :: Int-  , id (head [] + 0) :: Int-  , id (head [] + _) :: Int-  , id (head [] + x) :: Int-  , id (head [] + id _) :: Int-  , id (head _ + 0) :: Int-  , id (head _ + 1) :: Int-  , id (head _ + _) :: Int-  , id (head _ + x) :: Int-  , id (head _ + y) :: Int-  , id (head _ + ord _) :: Int-  , id (head _ + abs _) :: Int-  , id (head _ + id 0) :: Int-  , id (head _ + id _) :: Int-  , id (head _ + id x) :: Int-  , id (head _ + id (id _)) :: Int-  , id (head _ + negate _) :: Int-  , id (head _ + head _) :: Int-  , id (head _ + (_ + _)) :: Int-  , id (head xs + 0) :: Int-  , id (head xs + _) :: Int-  , id (head xs + x) :: Int-  , id (head xs + id _) :: Int-  , id (head ys + _) :: Int-  , id (head (tail _) + _) :: Int-  , id (head (0:_) + _) :: Int-  , id (head [_] + _) :: Int-  , id (head (_:_) + 0) :: Int-  , id (head (_:_) + _) :: Int-  , id (head (_:_) + x) :: Int-  , id (head (_:_) + id _) :: Int-  , id (head (_:xs) + _) :: Int-  , id (head (_:_:_) + _) :: Int-  , id (head (x:_) + _) :: Int-  , id (head (id _:_) + _) :: Int-  , id (head (_ ++ _) + _) :: Int-  , id (0 * _ + _) :: Int-  , id (_ * 0 + _) :: Int-  , id (_ * _ + 0) :: Int-  , id (_ * _ + _) :: Int-  , id (_ * _ + x) :: Int-  , id (_ * _ + id _) :: Int-  , id (_ * x + _) :: Int-  , id (_ * id _ + _) :: Int-  , id (x * _ + _) :: Int-  , id (id _ * _ + _) :: Int-  , id ((0 + 0) + _) :: Int-  , id ((0 + _) + 0) :: Int-  , id ((0 + _) + _) :: Int-  , id ((0 + _) + x) :: Int-  , id ((0 + _) + id _) :: Int-  , id ((0 + x) + _) :: Int-  , id ((0 + id _) + _) :: Int-  , id ((1 + _) + _) :: Int-  , id ((_ + 0) + 0) :: Int-  , id ((_ + 0) + _) :: Int-  , id ((_ + 0) + x) :: Int-  , id ((_ + 0) + id _) :: Int-  , id ((_ + 1) + _) :: Int-  , id ((_ + _) + 0) :: Int-  , id ((_ + _) + 1) :: Int-  , id ((_ + _) + _) :: Int-  , id ((_ + _) + x) :: Int-  , id ((_ + _) + y) :: Int-  , id ((_ + _) + ord _) :: Int-  , id ((_ + _) + abs _) :: Int-  , id ((_ + _) + id 0) :: Int-  , id ((_ + _) + id _) :: Int-  , id ((_ + _) + id x) :: Int-  , id ((_ + _) + id (id _)) :: Int-  , id ((_ + _) + negate _) :: Int-  , id ((_ + _) + head _) :: Int-  , id ((_ + _) + (_ + _)) :: Int-  , id ((_ + x) + 0) :: Int-  , id ((_ + x) + _) :: Int-  , id ((_ + x) + x) :: Int-  , id ((_ + x) + id _) :: Int-  , id ((_ + y) + _) :: Int-  , id ((_ + ord _) + _) :: Int-  , id ((_ + abs _) + _) :: Int-  , id ((_ + id 0) + _) :: Int-  , id ((_ + id _) + 0) :: Int-  , id ((_ + id _) + _) :: Int-  , id ((_ + id _) + x) :: Int-  , id ((_ + id _) + id _) :: Int-  , id ((_ + id x) + _) :: Int-  , id ((_ + id (id _)) + _) :: Int-  , id ((_ + negate _) + _) :: Int-  , id ((_ + head _) + _) :: Int-  , id ((_ + (_ + _)) + _) :: Int-  , id ((x + 0) + _) :: Int-  , id ((x + _) + 0) :: Int-  , id ((x + _) + _) :: Int-  , id ((x + _) + x) :: Int-  , id ((x + _) + id _) :: Int-  , id ((x + x) + _) :: Int-  , id ((x + id _) + _) :: Int-  , id ((y + _) + _) :: Int-  , id ((ord _ + _) + _) :: Int-  , id ((abs _ + _) + _) :: Int-  , id ((id 0 + _) + _) :: Int-  , id ((id _ + 0) + _) :: Int-  , id ((id _ + _) + 0) :: Int-  , id ((id _ + _) + _) :: Int-  , id ((id _ + _) + x) :: Int-  , id ((id _ + _) + id _) :: Int-  , id ((id _ + x) + _) :: Int-  , id ((id _ + id _) + _) :: Int-  , id ((id x + _) + _) :: Int-  , id ((id (id _) + _) + _) :: Int-  , id ((negate _ + _) + _) :: Int-  , id ((head _ + _) + _) :: Int-  , id (((_ + _) + _) + _) :: Int-  , negate (-1) :: Int-  , negate 0 :: Int-  , negate 1 :: Int-  , negate 2 :: Int-  , negate _ :: Int-  , negate x :: Int-  , negate x' :: Int-  , negate y :: Int-  , negate z :: Int-  , negate (ord ' ') :: Int-  , negate (ord 'a') :: Int-  , negate (ord _) :: Int-  , negate (ord c) :: Int-  , negate (ord d) :: Int-  , negate (f 0) :: Int-  , negate (f _) :: Int-  , negate (f x) :: Int-  , negate (f (id _)) :: Int-  , negate (g _) :: Int-  , negate (abs 0) :: Int-  , negate (abs 1) :: Int-  , negate (abs _) :: Int-  , negate (abs x) :: Int-  , negate (abs y) :: Int-  , negate (abs (ord _)) :: Int-  , negate (abs (abs _)) :: Int-  , negate (abs (id 0)) :: Int-  , negate (abs (id _)) :: Int-  , negate (abs (id x)) :: Int-  , negate (abs (id (id _))) :: Int-  , negate (abs (negate _)) :: Int-  , negate (abs (head _)) :: Int-  , negate (abs (_ + _)) :: Int-  , negate (id (-1)) :: Int-  , negate (id 0) :: Int-  , negate (id 1) :: Int-  , negate (id _) :: Int-  , negate (id x) :: Int-  , negate (id y) :: Int-  , negate (id z) :: Int-  , negate (id (ord 'a')) :: Int-  , negate (id (ord _)) :: Int-  , negate (id (ord c)) :: Int-  , negate (id (f _)) :: Int-  , negate (id (abs 0)) :: Int-  , negate (id (abs _)) :: Int-  , negate (id (abs x)) :: Int-  , negate (id (abs (id _))) :: Int-  , negate (id (id 0)) :: Int-  , negate (id (id 1)) :: Int-  , negate (id (id _)) :: Int-  , negate (id (id x)) :: Int-  , negate (id (id y)) :: Int-  , negate (id (id (ord _))) :: Int-  , negate (id (id (abs _))) :: Int-  , negate (id (id (id 0))) :: Int-  , negate (id (id (id _))) :: Int-  , negate (id (id (id x))) :: Int-  , negate (id (id (id (id _)))) :: Int-  , negate (id (id (negate _))) :: Int-  , negate (id (id (head _))) :: Int-  , negate (id (id (_ + _))) :: Int-  , negate (id (negate 0)) :: Int-  , negate (id (negate _)) :: Int-  , negate (id (negate x)) :: Int-  , negate (id (negate (id _))) :: Int-  , negate (id (head [])) :: Int-  , negate (id (head _)) :: Int-  , negate (id (head xs)) :: Int-  , negate (id (head (_:_))) :: Int-  , negate (id (_ * _)) :: Int-  , negate (id (0 + _)) :: Int-  , negate (id (_ + 0)) :: Int-  , negate (id (_ + _)) :: Int-  , negate (id (_ + x)) :: Int-  , negate (id (_ + id _)) :: Int-  , negate (id (x + _)) :: Int-  , negate (id (id _ + _)) :: Int-  , negate (negate 0) :: Int-  , negate (negate 1) :: Int-  , negate (negate _) :: Int-  , negate (negate x) :: Int-  , negate (negate y) :: Int-  , negate (negate (ord _)) :: Int-  , negate (negate (abs _)) :: Int-  , negate (negate (id 0)) :: Int-  , negate (negate (id _)) :: Int-  , negate (negate (id x)) :: Int-  , negate (negate (id (id _))) :: Int-  , negate (negate (negate _)) :: Int-  , negate (negate (head _)) :: Int-  , negate (negate (_ + _)) :: Int-  , negate (head [0]) :: Int-  , negate (head []) :: Int-  , negate (head _) :: Int-  , negate (head xs) :: Int-  , negate (head ys) :: Int-  , negate (head (tail _)) :: Int-  , negate (head (0:_)) :: Int-  , negate (head [_]) :: Int-  , negate (head (_:_)) :: Int-  , negate (head (_:xs)) :: Int-  , negate (head (_:_:_)) :: Int-  , negate (head (x:_)) :: Int-  , negate (head (id _:_)) :: Int-  , negate (head (_ ++ _)) :: Int-  , negate (0 * _) :: Int-  , negate (_ * 0) :: Int-  , negate (_ * _) :: Int-  , negate (_ * x) :: Int-  , negate (_ * id _) :: Int-  , negate (x * _) :: Int-  , negate (id _ * _) :: Int-  , negate (0 + 0) :: Int-  , negate (0 + _) :: Int-  , negate (0 + x) :: Int-  , negate (0 + id _) :: Int-  , negate (1 + _) :: Int-  , negate (_ + 0) :: Int-  , negate (_ + 1) :: Int-  , negate (_ + _) :: Int-  , negate (_ + x) :: Int-  , negate (_ + y) :: Int-  , negate (_ + ord _) :: Int-  , negate (_ + abs _) :: Int-  , negate (_ + id 0) :: Int-  , negate (_ + id _) :: Int-  , negate (_ + id x) :: Int-  , negate (_ + id (id _)) :: Int-  , negate (_ + negate _) :: Int-  , negate (_ + head _) :: Int-  , negate (_ + (_ + _)) :: Int-  , negate (x + 0) :: Int-  , negate (x + _) :: Int-  , negate (x + x) :: Int-  , negate (x + id _) :: Int-  , negate (y + _) :: Int-  , negate (ord _ + _) :: Int-  , negate (abs _ + _) :: Int-  , negate (id 0 + _) :: Int-  , negate (id _ + 0) :: Int-  , negate (id _ + _) :: Int-  , negate (id _ + x) :: Int-  , negate (id _ + id _) :: Int-  , negate (id x + _) :: Int-  , negate (id (id _) + _) :: Int-  , negate (negate _ + _) :: Int-  , negate (head _ + _) :: Int-  , negate ((_ + _) + _) :: Int-  , head [-1] :: Int-  , head [0,0,0] :: Int-  , head [0,0] :: Int-  , head [0,1] :: Int-  , head [0] :: Int-  , head [1,0] :: Int-  , head [1] :: Int-  , head [] :: Int-  , head _ :: Int-  , head xs :: Int-  , head xs' :: Int-  , head ys :: Int-  , head zs :: Int-  , head (sort []) :: Int-  , head (sort _) :: Int-  , head (sort xs) :: Int-  , head (sort (_:_)) :: Int-  , head (tail [0]) :: Int-  , head (tail []) :: Int-  , head (tail _) :: Int-  , head (tail xs) :: Int-  , head (tail ys) :: Int-  , head (tail (tail _)) :: Int-  , head (tail (0:_)) :: Int-  , head (tail [_]) :: Int-  , head (tail (_:_)) :: Int-  , head (tail (_:xs)) :: Int-  , head (tail (_:_:_)) :: Int-  , head (tail (x:_)) :: Int-  , head (tail (id _:_)) :: Int-  , head (tail (_ ++ _)) :: Int-  , head ((-1):_) :: Int-  , head [0,0] :: Int-  , head [0] :: Int-  , head (0:_) :: Int-  , head (0:xs) :: Int-  , head (0:ys) :: Int-  , head (0:tail _) :: Int-  , head (0:0:_) :: Int-  , head [0,_] :: Int-  , head (0:_:_) :: Int-  , head (0:_:xs) :: Int-  , head (0:_:_:_) :: Int-  , head (0:x:_) :: Int-  , head (0:id _:_) :: Int-  , head (0:(_ ++ _)) :: Int-  , head [1] :: Int-  , head (1:_) :: Int-  , head (1:xs) :: Int-  , head (1:_:_) :: Int-  , head [_,0,0] :: Int-  , head [_,0] :: Int-  , head [_,1] :: Int-  , head [_] :: Int-  , head (_:_) :: Int-  , head (_:xs) :: Int-  , head (_:ys) :: Int-  , head (_:zs) :: Int-  , head (_:sort _) :: Int-  , head (_:tail []) :: Int-  , head (_:tail _) :: Int-  , head (_:tail xs) :: Int-  , head (_:tail (_:_)) :: Int-  , head [_,0] :: Int-  , head (_:0:_) :: Int-  , head (_:0:xs) :: Int-  , head (_:0:_:_) :: Int-  , head (_:1:_) :: Int-  , head [_,_,0] :: Int-  , head [_,_] :: Int-  , head (_:_:_) :: Int-  , head (_:_:xs) :: Int-  , head (_:_:ys) :: Int-  , head (_:_:tail _) :: Int-  , head (_:_:0:_) :: Int-  , head [_,_,_] :: Int-  , head (_:_:_:_) :: Int-  , head (_:_:_:xs) :: Int-  , head (_:_:_:_:_) :: Int-  , head (_:_:x:_) :: Int-  , head (_:_:id _:_) :: Int-  , head (_:_:(_ ++ _)) :: Int-  , head [_,x] :: Int-  , head (_:x:_) :: Int-  , head (_:x:xs) :: Int-  , head (_:x:_:_) :: Int-  , head (_:y:_) :: Int-  , head (_:ord _:_) :: Int-  , head (_:abs _:_) :: Int-  , head (_:id 0:_) :: Int-  , head [_,id _] :: Int-  , head (_:id _:_) :: Int-  , head (_:id _:xs) :: Int-  , head (_:id _:_:_) :: Int-  , head (_:id x:_) :: Int-  , head (_:id (id _):_) :: Int-  , head (_:negate _:_) :: Int-  , head (_:head _:_) :: Int-  , head (_:_ + _:_) :: Int-  , head (_:insert _ _) :: Int-  , head (_:([] ++ _)) :: Int-  , head (_:(_ ++ [])) :: Int-  , head (_:(_ ++ _)) :: Int-  , head (_:(_ ++ xs)) :: Int-  , head (_:(_ ++ (_:_))) :: Int-  , head (_:(xs ++ _)) :: Int-  , head (_:((_:_) ++ _)) :: Int-  , head [x,0] :: Int-  , head [x] :: Int-  , head (x:_) :: Int-  , head (x:xs) :: Int-  , head (x:ys) :: Int-  , head (x:tail _) :: Int-  , head (x:0:_) :: Int-  , head [x,_] :: Int-  , head (x:_:_) :: Int-  , head (x:_:xs) :: Int-  , head (x:_:_:_) :: Int-  , head (x:x:_) :: Int-  , head (x:id _:_) :: Int-  , head (x:(_ ++ _)) :: Int-  , head [y] :: Int-  , head (y:_) :: Int-  , head (y:xs) :: Int-  , head (y:_:_) :: Int-  , head (z:_) :: Int-  , head (ord 'a':_) :: Int-  , head [ord _] :: Int-  , head (ord _:_) :: Int-  , head (ord _:xs) :: Int-  , head (ord _:_:_) :: Int-  , head (ord c:_) :: Int-  , head (f _:_) :: Int-  , head (abs 0:_) :: Int-  , head [abs _] :: Int-  , head (abs _:_) :: Int-  , head (abs _:xs) :: Int-  , head (abs _:_:_) :: Int-  , head (abs x:_) :: Int-  , head (abs (id _):_) :: Int-  , head [id 0] :: Int-  , head (id 0:_) :: Int-  , head (id 0:xs) :: Int-  , head (id 0:_:_) :: Int-  , head (id 1:_) :: Int-  , head [id _,0] :: Int-  , head [id _] :: Int-  , head (id _:_) :: Int-  , head (id _:xs) :: Int-  , head (id _:ys) :: Int-  , head (id _:tail _) :: Int-  , head (id _:0:_) :: Int-  , head [id _,_] :: Int-  , head (id _:_:_) :: Int-  , head (id _:_:xs) :: Int-  , head (id _:_:_:_) :: Int-  , head (id _:x:_) :: Int-  , head (id _:id _:_) :: Int-  , head (id _:(_ ++ _)) :: Int-  , head [id x] :: Int-  , head (id x:_) :: Int-  , head (id x:xs) :: Int-  , head (id x:_:_) :: Int-  , head (id y:_) :: Int-  , head (id (ord _):_) :: Int-  , head (id (abs _):_) :: Int-  , head (id (id 0):_) :: Int-  , head [id (id _)] :: Int-  , head (id (id _):_) :: Int-  , head (id (id _):xs) :: Int-  , head (id (id _):_:_) :: Int-  , head (id (id x):_) :: Int-  , head (id (id (id _)):_) :: Int-  , head (id (negate _):_) :: Int-  , head (id (head _):_) :: Int-  , head (id (_ + _):_) :: Int-  , head (negate 0:_) :: Int-  , head [negate _] :: Int-  , head (negate _:_) :: Int-  , head (negate _:xs) :: Int-  , head (negate _:_:_) :: Int-  , head (negate x:_) :: Int-  , head (negate (id _):_) :: Int-  , head (head []:_) :: Int-  , head [head _] :: Int-  , head (head _:_) :: Int-  , head (head _:xs) :: Int-  , head (head _:_:_) :: Int-  , head (head xs:_) :: Int-  , head (head (_:_):_) :: Int-  , head (_ * _:_) :: Int-  , head (0 + _:_) :: Int-  , head (_ + 0:_) :: Int-  , head [_ + _] :: Int-  , head (_ + _:_) :: Int-  , head (_ + _:xs) :: Int-  , head (_ + _:_:_) :: Int-  , head (_ + x:_) :: Int-  , head (_ + id _:_) :: Int-  , head (x + _:_) :: Int-  , head (id _ + _:_) :: Int-  , head (insert 0 _) :: Int-  , head (insert _ []) :: Int-  , head (insert _ _) :: Int-  , head (insert _ xs) :: Int-  , head (insert _ (_:_)) :: Int-  , head (insert x _) :: Int-  , head (insert (id _) _) :: Int-  , head ([0] ++ _) :: Int-  , head ([] ++ []) :: Int-  , head ([] ++ _) :: Int-  , head ([] ++ xs) :: Int-  , head ([] ++ (_:_)) :: Int-  , head (_ ++ [0]) :: Int-  , head (_ ++ []) :: Int-  , head (_ ++ _) :: Int-  , head (_ ++ xs) :: Int-  , head (_ ++ ys) :: Int-  , head (_ ++ tail _) :: Int-  , head (_ ++ (0:_)) :: Int-  , head (_ ++ [_]) :: Int-  , head (_ ++ (_:_)) :: Int-  , head (_ ++ (_:xs)) :: Int-  , head (_ ++ (_:_:_)) :: Int-  , head (_ ++ (x:_)) :: Int-  , head (_ ++ (id _:_)) :: Int-  , head (_ ++ (_ ++ _)) :: Int-  , head (xs ++ []) :: Int-  , head (xs ++ _) :: Int-  , head (xs ++ xs) :: Int-  , head (xs ++ (_:_)) :: Int-  , head (ys ++ _) :: Int-  , head (tail _ ++ _) :: Int-  , head ((0:_) ++ _) :: Int-  , head ([_] ++ _) :: Int-  , head ((_:_) ++ []) :: Int-  , head ((_:_) ++ _) :: Int-  , head ((_:_) ++ xs) :: Int-  , head ((_:_) ++ (_:_)) :: Int-  , head ((_:xs) ++ _) :: Int-  , head ((_:_:_) ++ _) :: Int-  , head ((x:_) ++ _) :: Int-  , head ((id _:_) ++ _) :: Int-  , head ((_ ++ _) ++ _) :: Int-  , sort [0] :: [Int]-  , sort [] :: [Int]-  , sort _ :: [Int]-  , sort xs :: [Int]-  , sort ys :: [Int]-  , sort (tail _) :: [Int]-  , sort (0:_) :: [Int]-  , sort [_] :: [Int]-  , sort (_:_) :: [Int]-  , sort (_:xs) :: [Int]-  , sort (_:_:_) :: [Int]-  , sort (x:_) :: [Int]-  , sort (id _:_) :: [Int]-  , sort (_ ++ _) :: [Int]-  , tail [0,0] :: [Int]-  , tail [0] :: [Int]-  , tail [1] :: [Int]-  , tail [] :: [Int]-  , tail _ :: [Int]-  , tail xs :: [Int]-  , tail ys :: [Int]-  , tail zs :: [Int]-  , tail (sort _) :: [Int]-  , tail (tail []) :: [Int]-  , tail (tail _) :: [Int]-  , tail (tail xs) :: [Int]-  , tail (tail (_:_)) :: [Int]-  , tail [0] :: [Int]-  , tail (0:_) :: [Int]-  , tail (0:xs) :: [Int]-  , tail (0:_:_) :: [Int]-  , tail (1:_) :: [Int]-  , tail [_,0] :: [Int]-  , tail [_] :: [Int]-  , tail (_:_) :: [Int]-  , tail (_:xs) :: [Int]-  , tail (_:ys) :: [Int]-  , tail (_:tail _) :: [Int]-  , tail (_:0:_) :: [Int]-  , tail [_,_] :: [Int]-  , tail (_:_:_) :: [Int]-  , tail (_:_:xs) :: [Int]-  , tail (_:_:_:_) :: [Int]-  , tail (_:x:_) :: [Int]-  , tail (_:id _:_) :: [Int]-  , tail (_:(_ ++ _)) :: [Int]-  , tail [x] :: [Int]-  , tail (x:_) :: [Int]-  , tail (x:xs) :: [Int]-  , tail (x:_:_) :: [Int]-  , tail (y:_) :: [Int]-  , tail (ord _:_) :: [Int]-  , tail (abs _:_) :: [Int]-  , tail (id 0:_) :: [Int]-  , tail [id _] :: [Int]-  , tail (id _:_) :: [Int]-  , tail (id _:xs) :: [Int]-  , tail (id _:_:_) :: [Int]-  , tail (id x:_) :: [Int]-  , tail (id (id _):_) :: [Int]-  , tail (negate _:_) :: [Int]-  , tail (head _:_) :: [Int]-  , tail (_ + _:_) :: [Int]-  , tail (insert _ _) :: [Int]-  , tail ([] ++ _) :: [Int]-  , tail (_ ++ []) :: [Int]-  , tail (_ ++ _) :: [Int]-  , tail (_ ++ xs) :: [Int]-  , tail (_ ++ (_:_)) :: [Int]-  , tail (xs ++ _) :: [Int]-  , tail ((_:_) ++ _) :: [Int]-  , (False &&) :: Bool -> Bool-  , (True &&) :: Bool -> Bool-  , (_ &&) :: Bool -> Bool-  , (p &&) :: Bool -> Bool-  , (not _ &&) :: Bool -> Bool-  , (_ ==>) :: Bool -> Bool-  , (False ||) :: Bool -> Bool-  , (True ||) :: Bool -> Bool-  , (_ ||) :: Bool -> Bool-  , (p ||) :: Bool -> Bool-  , (q ||) :: Bool -> Bool-  , (not False ||) :: Bool -> Bool-  , (not True ||) :: Bool -> Bool-  , (not _ ||) :: Bool -> Bool-  , (not p ||) :: Bool -> Bool-  , (not (not _) ||) :: Bool -> Bool-  , ((_ || _) ||) :: Bool -> Bool-  , (0 *) :: Int -> Int-  , (1 *) :: Int -> Int-  , (_ *) :: Int -> Int-  , (x *) :: Int -> Int-  , (y *) :: Int -> Int-  , (ord _ *) :: Int -> Int-  , (abs _ *) :: Int -> Int-  , (id 0 *) :: Int -> Int-  , (id _ *) :: Int -> Int-  , (id x *) :: Int -> Int-  , (id (id _) *) :: Int -> Int-  , (negate _ *) :: Int -> Int-  , (head _ *) :: Int -> Int-  , ((_ + _) *) :: Int -> Int-  , ((-1) +) :: Int -> Int-  , (0 +) :: Int -> Int-  , (1 +) :: Int -> Int-  , (_ +) :: Int -> Int-  , (x +) :: Int -> Int-  , (y +) :: Int -> Int-  , (z +) :: Int -> Int-  , (ord 'a' +) :: Int -> Int-  , (ord _ +) :: Int -> Int-  , (ord c +) :: Int -> Int-  , (f _ +) :: Int -> Int-  , (abs 0 +) :: Int -> Int-  , (abs _ +) :: Int -> Int-  , (abs x +) :: Int -> Int-  , (abs (id _) +) :: Int -> Int-  , (id 0 +) :: Int -> Int-  , (id 1 +) :: Int -> Int-  , (id _ +) :: Int -> Int-  , (id x +) :: Int -> Int-  , (id y +) :: Int -> Int-  , (id (ord _) +) :: Int -> Int-  , (id (abs _) +) :: Int -> Int-  , (id (id 0) +) :: Int -> Int-  , (id (id _) +) :: Int -> Int-  , (id (id x) +) :: Int -> Int-  , (id (id (id _)) +) :: Int -> Int-  , (id (negate _) +) :: Int -> Int-  , (id (head _) +) :: Int -> Int-  , (id (_ + _) +) :: Int -> Int-  , (negate 0 +) :: Int -> Int-  , (negate _ +) :: Int -> Int-  , (negate x +) :: Int -> Int-  , (negate (id _) +) :: Int -> Int-  , (head [] +) :: Int -> Int-  , (head _ +) :: Int -> Int-  , (head xs +) :: Int -> Int-  , (head (_:_) +) :: Int -> Int-  , (_ * _ +) :: Int -> Int-  , ((0 + _) +) :: Int -> Int-  , ((_ + 0) +) :: Int -> Int-  , ((_ + _) +) :: Int -> Int-  , ((_ + x) +) :: Int -> Int-  , ((_ + id _) +) :: Int -> Int-  , ((x + _) +) :: Int -> Int-  , ((id _ + _) +) :: Int -> Int-  , False && False :: Bool-  , False && True :: Bool-  , False && _ :: Bool-  , False && p :: Bool-  , False && not _ :: Bool-  , True && False :: Bool-  , True && True :: Bool-  , True && _ :: Bool-  , True && p :: Bool-  , True && not _ :: Bool-  , _ && False :: Bool-  , _ && True :: Bool-  , _ && _ :: Bool-  , _ && p :: Bool-  , _ && q :: Bool-  , _ && not False :: Bool-  , _ && not True :: Bool-  , _ && not _ :: Bool-  , _ && not p :: Bool-  , _ && not (not _) :: Bool-  , _ && (_ || _) :: Bool-  , p && False :: Bool-  , p && True :: Bool-  , p && _ :: Bool-  , p && p :: Bool-  , p && not _ :: Bool-  , q && _ :: Bool-  , not False && _ :: Bool-  , not True && _ :: Bool-  , not _ && False :: Bool-  , not _ && True :: Bool-  , not _ && _ :: Bool-  , not _ && p :: Bool-  , not _ && not _ :: Bool-  , not p && _ :: Bool-  , not (not _) && _ :: Bool-  , (_ || _) && _ :: Bool-  , _ < _ :: Bool-  , False <= _ :: Bool-  , True <= _ :: Bool-  , _ <= False :: Bool-  , _ <= True :: Bool-  , _ <= _ :: Bool-  , _ <= p :: Bool-  , _ <= not _ :: Bool-  , p <= _ :: Bool-  , not _ <= _ :: Bool-  , False == False :: Bool-  , False == True :: Bool-  , False == _ :: Bool-  , False == p :: Bool-  , False == not _ :: Bool-  , True == False :: Bool-  , True == True :: Bool-  , True == _ :: Bool-  , True == p :: Bool-  , True == not _ :: Bool-  , _ == False :: Bool-  , _ == True :: Bool-  , _ == _ :: Bool-  , _ == p :: Bool-  , _ == q :: Bool-  , _ == not False :: Bool-  , _ == not True :: Bool-  , _ == not _ :: Bool-  , _ == not p :: Bool-  , _ == not (not _) :: Bool-  , _ == (_ || _) :: Bool-  , p == False :: Bool-  , p == True :: Bool-  , p == _ :: Bool-  , p == p :: Bool-  , p == not _ :: Bool-  , q == _ :: Bool-  , not False == _ :: Bool-  , not True == _ :: Bool-  , not _ == False :: Bool-  , not _ == True :: Bool-  , not _ == _ :: Bool-  , not _ == p :: Bool-  , not _ == not _ :: Bool-  , not p == _ :: Bool-  , not (not _) == _ :: Bool-  , (_ || _) == _ :: Bool-  , False ==> _ :: Bool-  , True ==> _ :: Bool-  , _ ==> False :: Bool-  , _ ==> True :: Bool-  , _ ==> _ :: Bool-  , _ ==> p :: Bool-  , _ ==> not _ :: Bool-  , p ==> _ :: Bool-  , not _ ==> _ :: Bool-  , False || False :: Bool-  , False || True :: Bool-  , False || _ :: Bool-  , False || p :: Bool-  , False || q :: Bool-  , False || not False :: Bool-  , False || not True :: Bool-  , False || not _ :: Bool-  , False || not p :: Bool-  , False || not (not _) :: Bool-  , False || (_ || _) :: Bool-  , True || False :: Bool-  , True || True :: Bool-  , True || _ :: Bool-  , True || p :: Bool-  , True || q :: Bool-  , True || not False :: Bool-  , True || not True :: Bool-  , True || not _ :: Bool-  , True || not p :: Bool-  , True || not (not _) :: Bool-  , True || (_ || _) :: Bool-  , _ || False :: Bool-  , _ || True :: Bool-  , _ || _ :: Bool-  , _ || p :: Bool-  , _ || q :: Bool-  , _ || r :: Bool-  , _ || not False :: Bool-  , _ || not True :: Bool-  , _ || not _ :: Bool-  , _ || not p :: Bool-  , _ || not q :: Bool-  , _ || not (not False) :: Bool-  , _ || not (not True) :: Bool-  , _ || not (not _) :: Bool-  , _ || not (not p) :: Bool-  , _ || not (not (not _)) :: Bool-  , _ || not (_ || _) :: Bool-  , _ || even _ :: Bool-  , _ || odd _ :: Bool-  , _ || _ && _ :: Bool-  , _ || _ == _ :: Bool-  , _ || (False || _) :: Bool-  , _ || (True || _) :: Bool-  , _ || (_ || False) :: Bool-  , _ || (_ || True) :: Bool-  , _ || (_ || _) :: Bool-  , _ || (_ || p) :: Bool-  , _ || (_ || not _) :: Bool-  , _ || (p || _) :: Bool-  , _ || (not _ || _) :: Bool-  , _ || _ == _ :: Bool-  , _ || elem _ _ :: Bool-  , p || False :: Bool-  , p || True :: Bool-  , p || _ :: Bool-  , p || p :: Bool-  , p || q :: Bool-  , p || not False :: Bool-  , p || not True :: Bool-  , p || not _ :: Bool-  , p || not p :: Bool-  , p || not (not _) :: Bool-  , p || (_ || _) :: Bool-  , q || False :: Bool-  , q || True :: Bool-  , q || _ :: Bool-  , q || p :: Bool-  , q || not _ :: Bool-  , r || _ :: Bool-  , not False || False :: Bool-  , not False || True :: Bool-  , not False || _ :: Bool-  , not False || p :: Bool-  , not False || not _ :: Bool-  , not True || False :: Bool-  , not True || True :: Bool-  , not True || _ :: Bool-  , not True || p :: Bool-  , not True || not _ :: Bool-  , not _ || False :: Bool-  , not _ || True :: Bool-  , not _ || _ :: Bool-  , not _ || p :: Bool-  , not _ || q :: Bool-  , not _ || not False :: Bool-  , not _ || not True :: Bool-  , not _ || not _ :: Bool-  , not _ || not p :: Bool-  , not _ || not (not _) :: Bool-  , not _ || (_ || _) :: Bool-  , not p || False :: Bool-  , not p || True :: Bool-  , not p || _ :: Bool-  , not p || p :: Bool-  , not p || not _ :: Bool-  , not q || _ :: Bool-  , not (not False) || _ :: Bool-  , not (not True) || _ :: Bool-  , not (not _) || False :: Bool-  , not (not _) || True :: Bool-  , not (not _) || _ :: Bool-  , not (not _) || p :: Bool-  , not (not _) || not _ :: Bool-  , not (not p) || _ :: Bool-  , not (not (not _)) || _ :: Bool-  , not (_ || _) || _ :: Bool-  , even _ || _ :: Bool-  , odd _ || _ :: Bool-  , _ && _ || _ :: Bool-  , _ == _ || _ :: Bool-  , (False || _) || _ :: Bool-  , (True || _) || _ :: Bool-  , (_ || False) || _ :: Bool-  , (_ || True) || _ :: Bool-  , (_ || _) || False :: Bool-  , (_ || _) || True :: Bool-  , (_ || _) || _ :: Bool-  , (_ || _) || p :: Bool-  , (_ || _) || not _ :: Bool-  , (_ || p) || _ :: Bool-  , (_ || not _) || _ :: Bool-  , (p || _) || _ :: Bool-  , (not _ || _) || _ :: Bool-  , _ == _ || _ :: Bool-  , elem _ _ || _ :: Bool-  , _ < _ :: Bool-  , 0 <= _ :: Bool-  , _ <= 0 :: Bool-  , _ <= _ :: Bool-  , _ <= x :: Bool-  , _ <= id _ :: Bool-  , x <= _ :: Bool-  , id _ <= _ :: Bool-  , 0 == 0 :: Bool-  , 0 == _ :: Bool-  , 0 == x :: Bool-  , 0 == id _ :: Bool-  , 1 == _ :: Bool-  , _ == 0 :: Bool-  , _ == 1 :: Bool-  , _ == _ :: Bool-  , _ == x :: Bool-  , _ == y :: Bool-  , _ == ord _ :: Bool-  , _ == abs _ :: Bool-  , _ == id 0 :: Bool-  , _ == id _ :: Bool-  , _ == id x :: Bool-  , _ == id (id _) :: Bool-  , _ == negate _ :: Bool-  , _ == head _ :: Bool-  , _ == _ + _ :: Bool-  , x == 0 :: Bool-  , x == _ :: Bool-  , x == x :: Bool-  , x == id _ :: Bool-  , y == _ :: Bool-  , ord _ == _ :: Bool-  , abs _ == _ :: Bool-  , id 0 == _ :: Bool-  , id _ == 0 :: Bool-  , id _ == _ :: Bool-  , id _ == x :: Bool-  , id _ == id _ :: Bool-  , id x == _ :: Bool-  , id (id _) == _ :: Bool-  , negate _ == _ :: Bool-  , head _ == _ :: Bool-  , _ + _ == _ :: Bool-  , (-1) * _ :: Int-  , 0 * 0 :: Int-  , 0 * 1 :: Int-  , 0 * _ :: Int-  , 0 * x :: Int-  , 0 * y :: Int-  , 0 * ord _ :: Int-  , 0 * abs _ :: Int-  , 0 * id 0 :: Int-  , 0 * id _ :: Int-  , 0 * id x :: Int-  , 0 * id (id _) :: Int-  , 0 * negate _ :: Int-  , 0 * head _ :: Int-  , 0 * (_ + _) :: Int-  , 1 * 0 :: Int-  , 1 * _ :: Int-  , 1 * x :: Int-  , 1 * id _ :: Int-  , _ * (-1) :: Int-  , _ * 0 :: Int-  , _ * 1 :: Int-  , _ * _ :: Int-  , _ * x :: Int-  , _ * y :: Int-  , _ * z :: Int-  , _ * ord 'a' :: Int-  , _ * ord _ :: Int-  , _ * ord c :: Int-  , _ * f _ :: Int-  , _ * abs 0 :: Int-  , _ * abs _ :: Int-  , _ * abs x :: Int-  , _ * abs (id _) :: Int-  , _ * id 0 :: Int-  , _ * id 1 :: Int-  , _ * id _ :: Int-  , _ * id x :: Int-  , _ * id y :: Int-  , _ * id (ord _) :: Int-  , _ * id (abs _) :: Int-  , _ * id (id 0) :: Int-  , _ * id (id _) :: Int-  , _ * id (id x) :: Int-  , _ * id (id (id _)) :: Int-  , _ * id (negate _) :: Int-  , _ * id (head _) :: Int-  , _ * id (_ + _) :: Int-  , _ * negate 0 :: Int-  , _ * negate _ :: Int-  , _ * negate x :: Int-  , _ * negate (id _) :: Int-  , _ * head [] :: Int-  , _ * head _ :: Int-  , _ * head xs :: Int-  , _ * head (_:_) :: Int-  , _ * (_ * _) :: Int-  , _ * (0 + _) :: Int-  , _ * (_ + 0) :: Int-  , _ * (_ + _) :: Int-  , _ * (_ + x) :: Int-  , _ * (_ + id _) :: Int-  , _ * (x + _) :: Int-  , _ * (id _ + _) :: Int-  , x * 0 :: Int-  , x * 1 :: Int-  , x * _ :: Int-  , x * x :: Int-  , x * y :: Int-  , x * ord _ :: Int-  , x * abs _ :: Int-  , x * id 0 :: Int-  , x * id _ :: Int-  , x * id x :: Int-  , x * id (id _) :: Int-  , x * negate _ :: Int-  , x * head _ :: Int-  , x * (_ + _) :: Int-  , y * 0 :: Int-  , y * _ :: Int-  , y * x :: Int-  , y * id _ :: Int-  , z * _ :: Int-  , ord 'a' * _ :: Int-  , ord _ * 0 :: Int-  , ord _ * _ :: Int-  , ord _ * x :: Int-  , ord _ * id _ :: Int-  , ord c * _ :: Int-  , f _ * _ :: Int-  , abs 0 * _ :: Int-  , abs _ * 0 :: Int-  , abs _ * _ :: Int-  , abs _ * x :: Int-  , abs _ * id _ :: Int-  , abs x * _ :: Int-  , abs (id _) * _ :: Int-  , id 0 * 0 :: Int-  , id 0 * _ :: Int-  , id 0 * x :: Int-  , id 0 * id _ :: Int-  , id 1 * _ :: Int-  , id _ * 0 :: Int-  , id _ * 1 :: Int-  , id _ * _ :: Int-  , id _ * x :: Int-  , id _ * y :: Int-  , id _ * ord _ :: Int-  , id _ * abs _ :: Int-  , id _ * id 0 :: Int-  , id _ * id _ :: Int-  , id _ * id x :: Int-  , id _ * id (id _) :: Int-  , id _ * negate _ :: Int-  , id _ * head _ :: Int-  , id _ * (_ + _) :: Int-  , id x * 0 :: Int-  , id x * _ :: Int-  , id x * x :: Int-  , id x * id _ :: Int-  , id y * _ :: Int-  , id (ord _) * _ :: Int-  , id (abs _) * _ :: Int-  , id (id 0) * _ :: Int-  , id (id _) * 0 :: Int-  , id (id _) * _ :: Int-  , id (id _) * x :: Int-  , id (id _) * id _ :: Int-  , id (id x) * _ :: Int-  , id (id (id _)) * _ :: Int-  , id (negate _) * _ :: Int-  , id (head _) * _ :: Int-  , id (_ + _) * _ :: Int-  , negate 0 * _ :: Int-  , negate _ * 0 :: Int-  , negate _ * _ :: Int-  , negate _ * x :: Int-  , negate _ * id _ :: Int-  , negate x * _ :: Int-  , negate (id _) * _ :: Int-  , head [] * _ :: Int-  , head _ * 0 :: Int-  , head _ * _ :: Int-  , head _ * x :: Int-  , head _ * id _ :: Int-  , head xs * _ :: Int-  , head (_:_) * _ :: Int-  , (_ * _) * _ :: Int-  , (0 + _) * _ :: Int-  , (_ + 0) * _ :: Int-  , (_ + _) * 0 :: Int-  , (_ + _) * _ :: Int-  , (_ + _) * x :: Int-  , (_ + _) * id _ :: Int-  , (_ + x) * _ :: Int-  , (_ + id _) * _ :: Int-  , (x + _) * _ :: Int-  , (id _ + _) * _ :: Int-  , (-1) + 0 :: Int-  , (-1) + _ :: Int-  , (-1) + x :: Int-  , (-1) + id _ :: Int-  , 0 + (-1) :: Int-  , 0 + 0 :: Int-  , 0 + 1 :: Int-  , 0 + _ :: Int-  , 0 + x :: Int-  , 0 + y :: Int-  , 0 + z :: Int-  , 0 + ord 'a' :: Int-  , 0 + ord _ :: Int-  , 0 + ord c :: Int-  , 0 + f _ :: Int-  , 0 + abs 0 :: Int-  , 0 + abs _ :: Int-  , 0 + abs x :: Int-  , 0 + abs (id _) :: Int-  , 0 + id 0 :: Int-  , 0 + id 1 :: Int-  , 0 + id _ :: Int-  , 0 + id x :: Int-  , 0 + id y :: Int-  , 0 + id (ord _) :: Int-  , 0 + id (abs _) :: Int-  , 0 + id (id 0) :: Int-  , 0 + id (id _) :: Int-  , 0 + id (id x) :: Int-  , 0 + id (id (id _)) :: Int-  , 0 + id (negate _) :: Int-  , 0 + id (head _) :: Int-  , 0 + id (_ + _) :: Int-  , 0 + negate 0 :: Int-  , 0 + negate _ :: Int-  , 0 + negate x :: Int-  , 0 + negate (id _) :: Int-  , 0 + head [] :: Int-  , 0 + head _ :: Int-  , 0 + head xs :: Int-  , 0 + head (_:_) :: Int-  , 0 + _ * _ :: Int-  , 0 + (0 + _) :: Int-  , 0 + (_ + 0) :: Int-  , 0 + (_ + _) :: Int-  , 0 + (_ + x) :: Int-  , 0 + (_ + id _) :: Int-  , 0 + (x + _) :: Int-  , 0 + (id _ + _) :: Int-  , 1 + 0 :: Int-  , 1 + 1 :: Int-  , 1 + _ :: Int-  , 1 + x :: Int-  , 1 + y :: Int-  , 1 + ord _ :: Int-  , 1 + abs _ :: Int-  , 1 + id 0 :: Int-  , 1 + id _ :: Int-  , 1 + id x :: Int-  , 1 + id (id _) :: Int-  , 1 + negate _ :: Int-  , 1 + head _ :: Int-  , 1 + (_ + _) :: Int-  , 2 + _ :: Int-  , _ + (-1) :: Int-  , _ + 0 :: Int-  , _ + 1 :: Int-  , _ + 2 :: Int-  , _ + _ :: Int-  , _ + x :: Int-  , _ + x' :: Int-  , _ + y :: Int-  , _ + z :: Int-  , _ + ord ' ' :: Int-  , _ + ord 'a' :: Int-  , _ + ord _ :: Int-  , _ + ord c :: Int-  , _ + ord d :: Int-  , _ + f 0 :: Int-  , _ + f _ :: Int-  , _ + f x :: Int-  , _ + f (id _) :: Int-  , _ + g _ :: Int-  , _ + abs 0 :: Int-  , _ + abs 1 :: Int-  , _ + abs _ :: Int-  , _ + abs x :: Int-  , _ + abs y :: Int-  , _ + abs (ord _) :: Int-  , _ + abs (abs _) :: Int-  , _ + abs (id 0) :: Int-  , _ + abs (id _) :: Int-  , _ + abs (id x) :: Int-  , _ + abs (id (id _)) :: Int-  , _ + abs (negate _) :: Int-  , _ + abs (head _) :: Int-  , _ + abs (_ + _) :: Int-  , _ + id (-1) :: Int-  , _ + id 0 :: Int-  , _ + id 1 :: Int-  , _ + id _ :: Int-  , _ + id x :: Int-  , _ + id y :: Int-  , _ + id z :: Int-  , _ + id (ord 'a') :: Int-  , _ + id (ord _) :: Int-  , _ + id (ord c) :: Int-  , _ + id (f _) :: Int-  , _ + id (abs 0) :: Int-  , _ + id (abs _) :: Int-  , _ + id (abs x) :: Int-  , _ + id (abs (id _)) :: Int-  , _ + id (id 0) :: Int-  , _ + id (id 1) :: Int-  , _ + id (id _) :: Int-  , _ + id (id x) :: Int-  , _ + id (id y) :: Int-  , _ + id (id (ord _)) :: Int-  , _ + id (id (abs _)) :: Int-  , _ + id (id (id 0)) :: Int-  , _ + id (id (id _)) :: Int-  , _ + id (id (id x)) :: Int-  , _ + id (id (id (id _))) :: Int-  , _ + id (id (negate _)) :: Int-  , _ + id (id (head _)) :: Int-  , _ + id (id (_ + _)) :: Int-  , _ + id (negate 0) :: Int-  , _ + id (negate _) :: Int-  , _ + id (negate x) :: Int-  , _ + id (negate (id _)) :: Int-  , _ + id (head []) :: Int-  , _ + id (head _) :: Int-  , _ + id (head xs) :: Int-  , _ + id (head (_:_)) :: Int-  , _ + id (_ * _) :: Int-  , _ + id (0 + _) :: Int-  , _ + id (_ + 0) :: Int-  , _ + id (_ + _) :: Int-  , _ + id (_ + x) :: Int-  , _ + id (_ + id _) :: Int-  , _ + id (x + _) :: Int-  , _ + id (id _ + _) :: Int-  , _ + negate 0 :: Int-  , _ + negate 1 :: Int-  , _ + negate _ :: Int-  , _ + negate x :: Int-  , _ + negate y :: Int-  , _ + negate (ord _) :: Int-  , _ + negate (abs _) :: Int-  , _ + negate (id 0) :: Int-  , _ + negate (id _) :: Int-  , _ + negate (id x) :: Int-  , _ + negate (id (id _)) :: Int-  , _ + negate (negate _) :: Int-  , _ + negate (head _) :: Int-  , _ + negate (_ + _) :: Int-  , _ + head [0] :: Int-  , _ + head [] :: Int-  , _ + head _ :: Int-  , _ + head xs :: Int-  , _ + head ys :: Int-  , _ + head (tail _) :: Int-  , _ + head (0:_) :: Int-  , _ + head [_] :: Int-  , _ + head (_:_) :: Int-  , _ + head (_:xs) :: Int-  , _ + head (_:_:_) :: Int-  , _ + head (x:_) :: Int-  , _ + head (id _:_) :: Int-  , _ + head (_ ++ _) :: Int-  , _ + 0 * _ :: Int-  , _ + _ * 0 :: Int-  , _ + _ * _ :: Int-  , _ + _ * x :: Int-  , _ + _ * id _ :: Int-  , _ + x * _ :: Int-  , _ + id _ * _ :: Int-  , _ + (0 + 0) :: Int-  , _ + (0 + _) :: Int-  , _ + (0 + x) :: Int-  , _ + (0 + id _) :: Int-  , _ + (1 + _) :: Int-  , _ + (_ + 0) :: Int-  , _ + (_ + 1) :: Int-  , _ + (_ + _) :: Int-  , _ + (_ + x) :: Int-  , _ + (_ + y) :: Int-  , _ + (_ + ord _) :: Int-  , _ + (_ + abs _) :: Int-  , _ + (_ + id 0) :: Int-  , _ + (_ + id _) :: Int-  , _ + (_ + id x) :: Int-  , _ + (_ + id (id _)) :: Int-  , _ + (_ + negate _) :: Int-  , _ + (_ + head _) :: Int-  , _ + (_ + (_ + _)) :: Int-  , _ + (x + 0) :: Int-  , _ + (x + _) :: Int-  , _ + (x + x) :: Int-  , _ + (x + id _) :: Int-  , _ + (y + _) :: Int-  , _ + (ord _ + _) :: Int-  , _ + (abs _ + _) :: Int-  , _ + (id 0 + _) :: Int-  , _ + (id _ + 0) :: Int-  , _ + (id _ + _) :: Int-  , _ + (id _ + x) :: Int-  , _ + (id _ + id _) :: Int-  , _ + (id x + _) :: Int-  , _ + (id (id _) + _) :: Int-  , _ + (negate _ + _) :: Int-  , _ + (head _ + _) :: Int-  , _ + ((_ + _) + _) :: Int-  , x + (-1) :: Int-  , x + 0 :: Int-  , x + 1 :: Int-  , x + _ :: Int-  , x + x :: Int-  , x + y :: Int-  , x + z :: Int-  , x + ord 'a' :: Int-  , x + ord _ :: Int-  , x + ord c :: Int-  , x + f _ :: Int-  , x + abs 0 :: Int-  , x + abs _ :: Int-  , x + abs x :: Int-  , x + abs (id _) :: Int-  , x + id 0 :: Int-  , x + id 1 :: Int-  , x + id _ :: Int-  , x + id x :: Int-  , x + id y :: Int-  , x + id (ord _) :: Int-  , x + id (abs _) :: Int-  , x + id (id 0) :: Int-  , x + id (id _) :: Int-  , x + id (id x) :: Int-  , x + id (id (id _)) :: Int-  , x + id (negate _) :: Int-  , x + id (head _) :: Int-  , x + id (_ + _) :: Int-  , x + negate 0 :: Int-  , x + negate _ :: Int-  , x + negate x :: Int-  , x + negate (id _) :: Int-  , x + head [] :: Int-  , x + head _ :: Int-  , x + head xs :: Int-  , x + head (_:_) :: Int-  , x + _ * _ :: Int-  , x + (0 + _) :: Int-  , x + (_ + 0) :: Int-  , x + (_ + _) :: Int-  , x + (_ + x) :: Int-  , x + (_ + id _) :: Int-  , x + (x + _) :: Int-  , x + (id _ + _) :: Int-  , x' + _ :: Int-  , y + 0 :: Int-  , y + 1 :: Int-  , y + _ :: Int-  , y + x :: Int-  , y + y :: Int-  , y + ord _ :: Int-  , y + abs _ :: Int-  , y + id 0 :: Int-  , y + id _ :: Int-  , y + id x :: Int-  , y + id (id _) :: Int-  , y + negate _ :: Int-  , y + head _ :: Int-  , y + (_ + _) :: Int-  , z + 0 :: Int-  , z + _ :: Int-  , z + x :: Int-  , z + id _ :: Int-  , ord ' ' + _ :: Int-  , ord 'a' + 0 :: Int-  , ord 'a' + _ :: Int-  , ord 'a' + x :: Int-  , ord 'a' + id _ :: Int-  , ord _ + 0 :: Int-  , ord _ + 1 :: Int-  , ord _ + _ :: Int-  , ord _ + x :: Int-  , ord _ + y :: Int-  , ord _ + ord _ :: Int-  , ord _ + abs _ :: Int-  , ord _ + id 0 :: Int-  , ord _ + id _ :: Int-  , ord _ + id x :: Int-  , ord _ + id (id _) :: Int-  , ord _ + negate _ :: Int-  , ord _ + head _ :: Int-  , ord _ + (_ + _) :: Int-  , ord c + 0 :: Int-  , ord c + _ :: Int-  , ord c + x :: Int-  , ord c + id _ :: Int-  , ord d + _ :: Int-  , f 0 + _ :: Int-  , f _ + 0 :: Int-  , f _ + _ :: Int-  , f _ + x :: Int-  , f _ + id _ :: Int-  , f x + _ :: Int-  , f (id _) + _ :: Int-  , g _ + _ :: Int-  , abs 0 + 0 :: Int-  , abs 0 + _ :: Int-  , abs 0 + x :: Int-  , abs 0 + id _ :: Int-  , abs 1 + _ :: Int-  , abs _ + 0 :: Int-  , abs _ + 1 :: Int-  , abs _ + _ :: Int-  , abs _ + x :: Int-  , abs _ + y :: Int-  , abs _ + ord _ :: Int-  , abs _ + abs _ :: Int-  , abs _ + id 0 :: Int-  , abs _ + id _ :: Int-  , abs _ + id x :: Int-  , abs _ + id (id _) :: Int-  , abs _ + negate _ :: Int-  , abs _ + head _ :: Int-  , abs _ + (_ + _) :: Int-  , abs x + 0 :: Int-  , abs x + _ :: Int-  , abs x + x :: Int-  , abs x + id _ :: Int-  , abs y + _ :: Int-  , abs (ord _) + _ :: Int-  , abs (abs _) + _ :: Int-  , abs (id 0) + _ :: Int-  , abs (id _) + 0 :: Int-  , abs (id _) + _ :: Int-  , abs (id _) + x :: Int-  , abs (id _) + id _ :: Int-  , abs (id x) + _ :: Int-  , abs (id (id _)) + _ :: Int-  , abs (negate _) + _ :: Int-  , abs (head _) + _ :: Int-  , abs (_ + _) + _ :: Int-  , id (-1) + _ :: Int-  , id 0 + 0 :: Int-  , id 0 + 1 :: Int-  , id 0 + _ :: Int-  , id 0 + x :: Int-  , id 0 + y :: Int-  , id 0 + ord _ :: Int-  , id 0 + abs _ :: Int-  , id 0 + id 0 :: Int-  , id 0 + id _ :: Int-  , id 0 + id x :: Int-  , id 0 + id (id _) :: Int-  , id 0 + negate _ :: Int-  , id 0 + head _ :: Int-  , id 0 + (_ + _) :: Int-  , id 1 + 0 :: Int-  , id 1 + _ :: Int-  , id 1 + x :: Int-  , id 1 + id _ :: Int-  , id _ + (-1) :: Int-  , id _ + 0 :: Int-  , id _ + 1 :: Int-  , id _ + _ :: Int-  , id _ + x :: Int-  , id _ + y :: Int-  , id _ + z :: Int-  , id _ + ord 'a' :: Int-  , id _ + ord _ :: Int-  , id _ + ord c :: Int-  , id _ + f _ :: Int-  , id _ + abs 0 :: Int-  , id _ + abs _ :: Int-  , id _ + abs x :: Int-  , id _ + abs (id _) :: Int-  , id _ + id 0 :: Int-  , id _ + id 1 :: Int-  , id _ + id _ :: Int-  , id _ + id x :: Int-  , id _ + id y :: Int-  , id _ + id (ord _) :: Int-  , id _ + id (abs _) :: Int-  , id _ + id (id 0) :: Int-  , id _ + id (id _) :: Int-  , id _ + id (id x) :: Int-  , id _ + id (id (id _)) :: Int-  , id _ + id (negate _) :: Int-  , id _ + id (head _) :: Int-  , id _ + id (_ + _) :: Int-  , id _ + negate 0 :: Int-  , id _ + negate _ :: Int-  , id _ + negate x :: Int-  , id _ + negate (id _) :: Int-  , id _ + head [] :: Int-  , id _ + head _ :: Int-  , id _ + head xs :: Int-  , id _ + head (_:_) :: Int-  , id _ + _ * _ :: Int-  , id _ + (0 + _) :: Int-  , id _ + (_ + 0) :: Int-  , id _ + (_ + _) :: Int-  , id _ + (_ + x) :: Int-  , id _ + (_ + id _) :: Int-  , id _ + (x + _) :: Int-  , id _ + (id _ + _) :: Int-  , id x + 0 :: Int-  , id x + 1 :: Int-  , id x + _ :: Int-  , id x + x :: Int-  , id x + y :: Int-  , id x + ord _ :: Int-  , id x + abs _ :: Int-  , id x + id 0 :: Int-  , id x + id _ :: Int-  , id x + id x :: Int-  , id x + id (id _) :: Int-  , id x + negate _ :: Int-  , id x + head _ :: Int-  , id x + (_ + _) :: Int-  , id y + 0 :: Int-  , id y + _ :: Int-  , id y + x :: Int-  , id y + id _ :: Int-  , id z + _ :: Int-  , id (ord 'a') + _ :: Int-  , id (ord _) + 0 :: Int-  , id (ord _) + _ :: Int-  , id (ord _) + x :: Int-  , id (ord _) + id _ :: Int-  , id (ord c) + _ :: Int-  , id (f _) + _ :: Int-  , id (abs 0) + _ :: Int-  , id (abs _) + 0 :: Int-  , id (abs _) + _ :: Int-  , id (abs _) + x :: Int-  , id (abs _) + id _ :: Int-  , id (abs x) + _ :: Int-  , id (abs (id _)) + _ :: Int-  , id (id 0) + 0 :: Int-  , id (id 0) + _ :: Int-  , id (id 0) + x :: Int-  , id (id 0) + id _ :: Int-  , id (id 1) + _ :: Int-  , id (id _) + 0 :: Int-  , id (id _) + 1 :: Int-  , id (id _) + _ :: Int-  , id (id _) + x :: Int-  , id (id _) + y :: Int-  , id (id _) + ord _ :: Int-  , id (id _) + abs _ :: Int-  , id (id _) + id 0 :: Int-  , id (id _) + id _ :: Int-  , id (id _) + id x :: Int-  , id (id _) + id (id _) :: Int-  , id (id _) + negate _ :: Int-  , id (id _) + head _ :: Int-  , id (id _) + (_ + _) :: Int-  , id (id x) + 0 :: Int-  , id (id x) + _ :: Int-  , id (id x) + x :: Int-  , id (id x) + id _ :: Int-  , id (id y) + _ :: Int-  , id (id (ord _)) + _ :: Int-  , id (id (abs _)) + _ :: Int-  , id (id (id 0)) + _ :: Int-  , id (id (id _)) + 0 :: Int-  , id (id (id _)) + _ :: Int-  , id (id (id _)) + x :: Int-  , id (id (id _)) + id _ :: Int-  , id (id (id x)) + _ :: Int-  , id (id (id (id _))) + _ :: Int-  , id (id (negate _)) + _ :: Int-  , id (id (head _)) + _ :: Int-  , id (id (_ + _)) + _ :: Int-  , id (negate 0) + _ :: Int-  , id (negate _) + 0 :: Int-  , id (negate _) + _ :: Int-  , id (negate _) + x :: Int-  , id (negate _) + id _ :: Int-  , id (negate x) + _ :: Int-  , id (negate (id _)) + _ :: Int-  , id (head []) + _ :: Int-  , id (head _) + 0 :: Int-  , id (head _) + _ :: Int-  , id (head _) + x :: Int-  , id (head _) + id _ :: Int-  , id (head xs) + _ :: Int-  , id (head (_:_)) + _ :: Int-  , id (_ * _) + _ :: Int-  , id (0 + _) + _ :: Int-  , id (_ + 0) + _ :: Int-  , id (_ + _) + 0 :: Int-  , id (_ + _) + _ :: Int-  , id (_ + _) + x :: Int-  , id (_ + _) + id _ :: Int-  , id (_ + x) + _ :: Int-  , id (_ + id _) + _ :: Int-  , id (x + _) + _ :: Int-  , id (id _ + _) + _ :: Int-  , negate 0 + 0 :: Int-  , negate 0 + _ :: Int-  , negate 0 + x :: Int-  , negate 0 + id _ :: Int-  , negate 1 + _ :: Int-  , negate _ + 0 :: Int-  , negate _ + 1 :: Int-  , negate _ + _ :: Int-  , negate _ + x :: Int-  , negate _ + y :: Int-  , negate _ + ord _ :: Int-  , negate _ + abs _ :: Int-  , negate _ + id 0 :: Int-  , negate _ + id _ :: Int-  , negate _ + id x :: Int-  , negate _ + id (id _) :: Int-  , negate _ + negate _ :: Int-  , negate _ + head _ :: Int-  , negate _ + (_ + _) :: Int-  , negate x + 0 :: Int-  , negate x + _ :: Int-  , negate x + x :: Int-  , negate x + id _ :: Int-  , negate y + _ :: Int-  , negate (ord _) + _ :: Int-  , negate (abs _) + _ :: Int-  , negate (id 0) + _ :: Int-  , negate (id _) + 0 :: Int-  , negate (id _) + _ :: Int-  , negate (id _) + x :: Int-  , negate (id _) + id _ :: Int-  , negate (id x) + _ :: Int-  , negate (id (id _)) + _ :: Int-  , negate (negate _) + _ :: Int-  , negate (head _) + _ :: Int-  , negate (_ + _) + _ :: Int-  , head [0] + _ :: Int-  , head [] + 0 :: Int-  , head [] + _ :: Int-  , head [] + x :: Int-  , head [] + id _ :: Int-  , head _ + 0 :: Int-  , head _ + 1 :: Int-  , head _ + _ :: Int-  , head _ + x :: Int-  , head _ + y :: Int-  , head _ + ord _ :: Int-  , head _ + abs _ :: Int-  , head _ + id 0 :: Int-  , head _ + id _ :: Int-  , head _ + id x :: Int-  , head _ + id (id _) :: Int-  , head _ + negate _ :: Int-  , head _ + head _ :: Int-  , head _ + (_ + _) :: Int-  , head xs + 0 :: Int-  , head xs + _ :: Int-  , head xs + x :: Int-  , head xs + id _ :: Int-  , head ys + _ :: Int-  , head (tail _) + _ :: Int-  , head (0:_) + _ :: Int-  , head [_] + _ :: Int-  , head (_:_) + 0 :: Int-  , head (_:_) + _ :: Int-  , head (_:_) + x :: Int-  , head (_:_) + id _ :: Int-  , head (_:xs) + _ :: Int-  , head (_:_:_) + _ :: Int-  , head (x:_) + _ :: Int-  , head (id _:_) + _ :: Int-  , head (_ ++ _) + _ :: Int-  , 0 * _ + _ :: Int-  , _ * 0 + _ :: Int-  , _ * _ + 0 :: Int-  , _ * _ + _ :: Int-  , _ * _ + x :: Int-  , _ * _ + id _ :: Int-  , _ * x + _ :: Int-  , _ * id _ + _ :: Int-  , x * _ + _ :: Int-  , id _ * _ + _ :: Int-  , (0 + 0) + _ :: Int-  , (0 + _) + 0 :: Int-  , (0 + _) + _ :: Int-  , (0 + _) + x :: Int-  , (0 + _) + id _ :: Int-  , (0 + x) + _ :: Int-  , (0 + id _) + _ :: Int-  , (1 + _) + _ :: Int-  , (_ + 0) + 0 :: Int-  , (_ + 0) + _ :: Int-  , (_ + 0) + x :: Int-  , (_ + 0) + id _ :: Int-  , (_ + 1) + _ :: Int-  , (_ + _) + 0 :: Int-  , (_ + _) + 1 :: Int-  , (_ + _) + _ :: Int-  , (_ + _) + x :: Int-  , (_ + _) + y :: Int-  , (_ + _) + ord _ :: Int-  , (_ + _) + abs _ :: Int-  , (_ + _) + id 0 :: Int-  , (_ + _) + id _ :: Int-  , (_ + _) + id x :: Int-  , (_ + _) + id (id _) :: Int-  , (_ + _) + negate _ :: Int-  , (_ + _) + head _ :: Int-  , (_ + _) + (_ + _) :: Int-  , (_ + x) + 0 :: Int-  , (_ + x) + _ :: Int-  , (_ + x) + x :: Int-  , (_ + x) + id _ :: Int-  , (_ + y) + _ :: Int-  , (_ + ord _) + _ :: Int-  , (_ + abs _) + _ :: Int-  , (_ + id 0) + _ :: Int-  , (_ + id _) + 0 :: Int-  , (_ + id _) + _ :: Int-  , (_ + id _) + x :: Int-  , (_ + id _) + id _ :: Int-  , (_ + id x) + _ :: Int-  , (_ + id (id _)) + _ :: Int-  , (_ + negate _) + _ :: Int-  , (_ + head _) + _ :: Int-  , (_ + (_ + _)) + _ :: Int-  , (x + 0) + _ :: Int-  , (x + _) + 0 :: Int-  , (x + _) + _ :: Int-  , (x + _) + x :: Int-  , (x + _) + id _ :: Int-  , (x + x) + _ :: Int-  , (x + id _) + _ :: Int-  , (y + _) + _ :: Int-  , (ord _ + _) + _ :: Int-  , (abs _ + _) + _ :: Int-  , (id 0 + _) + _ :: Int-  , (id _ + 0) + _ :: Int-  , (id _ + _) + 0 :: Int-  , (id _ + _) + _ :: Int-  , (id _ + _) + x :: Int-  , (id _ + _) + id _ :: Int-  , (id _ + x) + _ :: Int-  , (id _ + id _) + _ :: Int-  , (id x + _) + _ :: Int-  , (id (id _) + _) + _ :: Int-  , (negate _ + _) + _ :: Int-  , (head _ + _) + _ :: Int-  , ((_ + _) + _) + _ :: Int-  , elem 0 [] :: Bool-  , elem 0 _ :: Bool-  , elem 0 xs :: Bool-  , elem 0 (_:_) :: Bool-  , elem 1 _ :: Bool-  , elem _ [0] :: Bool-  , elem _ [] :: Bool-  , elem _ _ :: Bool-  , elem _ xs :: Bool-  , elem _ ys :: Bool-  , elem _ (tail _) :: Bool-  , elem _ (0:_) :: Bool-  , elem _ [_] :: Bool-  , elem _ (_:_) :: Bool-  , elem _ (_:xs) :: Bool-  , elem _ (_:_:_) :: Bool-  , elem _ (x:_) :: Bool-  , elem _ (id _:_) :: Bool-  , elem _ (_ ++ _) :: Bool-  , elem x [] :: Bool-  , elem x _ :: Bool-  , elem x xs :: Bool-  , elem x (_:_) :: Bool-  , elem y _ :: Bool-  , elem (ord _) _ :: Bool-  , elem (abs _) _ :: Bool-  , elem (id 0) _ :: Bool-  , elem (id _) [] :: Bool-  , elem (id _) _ :: Bool-  , elem (id _) xs :: Bool-  , elem (id _) (_:_) :: Bool-  , elem (id x) _ :: Bool-  , elem (id (id _)) _ :: Bool-  , elem (negate _) _ :: Bool-  , elem (head _) _ :: Bool-  , elem (_ + _) _ :: Bool-  , [-1] :: [Int]-  , (-1):_ :: [Int]-  , (-1):xs :: [Int]-  , (-1):_:_ :: [Int]-  , [0,0,0] :: [Int]-  , [0,0] :: [Int]-  , [0,1] :: [Int]-  , [0] :: [Int]-  , 0:_ :: [Int]-  , 0:xs :: [Int]-  , 0:ys :: [Int]-  , 0:zs :: [Int]-  , 0:sort _ :: [Int]-  , 0:tail [] :: [Int]-  , 0:tail _ :: [Int]-  , 0:tail xs :: [Int]-  , 0:tail (_:_) :: [Int]-  , [0,0] :: [Int]-  , 0:0:_ :: [Int]-  , 0:0:xs :: [Int]-  , 0:0:_:_ :: [Int]-  , 0:1:_ :: [Int]-  , [0,_,0] :: [Int]-  , [0,_] :: [Int]-  , 0:_:_ :: [Int]-  , 0:_:xs :: [Int]-  , 0:_:ys :: [Int]-  , 0:_:tail _ :: [Int]-  , 0:_:0:_ :: [Int]-  , [0,_,_] :: [Int]-  , 0:_:_:_ :: [Int]-  , 0:_:_:xs :: [Int]-  , 0:_:_:_:_ :: [Int]-  , 0:_:x:_ :: [Int]-  , 0:_:id _:_ :: [Int]-  , 0:_:(_ ++ _) :: [Int]-  , [0,x] :: [Int]-  , 0:x:_ :: [Int]-  , 0:x:xs :: [Int]-  , 0:x:_:_ :: [Int]-  , 0:y:_ :: [Int]-  , 0:ord _:_ :: [Int]-  , 0:abs _:_ :: [Int]-  , 0:id 0:_ :: [Int]-  , [0,id _] :: [Int]-  , 0:id _:_ :: [Int]-  , 0:id _:xs :: [Int]-  , 0:id _:_:_ :: [Int]-  , 0:id x:_ :: [Int]-  , 0:id (id _):_ :: [Int]-  , 0:negate _:_ :: [Int]-  , 0:head _:_ :: [Int]-  , 0:_ + _:_ :: [Int]-  , 0:insert _ _ :: [Int]-  , 0:([] ++ _) :: [Int]-  , 0:(_ ++ []) :: [Int]-  , 0:(_ ++ _) :: [Int]-  , 0:(_ ++ xs) :: [Int]-  , 0:(_ ++ (_:_)) :: [Int]-  , 0:(xs ++ _) :: [Int]-  , 0:((_:_) ++ _) :: [Int]-  , [1,0] :: [Int]-  , [1] :: [Int]-  , 1:_ :: [Int]-  , 1:xs :: [Int]-  , 1:ys :: [Int]-  , 1:tail _ :: [Int]-  , 1:0:_ :: [Int]-  , [1,_] :: [Int]-  , 1:_:_ :: [Int]-  , 1:_:xs :: [Int]-  , 1:_:_:_ :: [Int]-  , 1:x:_ :: [Int]-  , 1:id _:_ :: [Int]-  , 1:(_ ++ _) :: [Int]-  , 2:_ :: [Int]-  , [_,-1] :: [Int]-  , [_,0,0,0] :: [Int]-  , [_,0,0] :: [Int]-  , [_,0,1] :: [Int]-  , [_,0] :: [Int]-  , [_,1,0] :: [Int]-  , [_,1] :: [Int]-  , [_] :: [Int]-  , _:_ :: [Int]-  , _:xs :: [Int]-  , _:xs' :: [Int]-  , _:ys :: [Int]-  , _:zs :: [Int]-  , _:sort [] :: [Int]-  , _:sort _ :: [Int]-  , _:sort xs :: [Int]-  , _:sort (_:_) :: [Int]-  , _:tail [0] :: [Int]-  , _:tail [] :: [Int]-  , _:tail _ :: [Int]-  , _:tail xs :: [Int]-  , _:tail ys :: [Int]-  , _:tail (tail _) :: [Int]-  , _:tail (0:_) :: [Int]-  , _:tail [_] :: [Int]-  , _:tail (_:_) :: [Int]-  , _:tail (_:xs) :: [Int]-  , _:tail (_:_:_) :: [Int]-  , _:tail (x:_) :: [Int]-  , _:tail (id _:_) :: [Int]-  , _:tail (_ ++ _) :: [Int]-  , _:(-1):_ :: [Int]-  , [_,0,0] :: [Int]-  , [_,0] :: [Int]-  , _:0:_ :: [Int]-  , _:0:xs :: [Int]-  , _:0:ys :: [Int]-  , _:0:tail _ :: [Int]-  , _:0:0:_ :: [Int]-  , [_,0,_] :: [Int]-  , _:0:_:_ :: [Int]-  , _:0:_:xs :: [Int]-  , _:0:_:_:_ :: [Int]-  , _:0:x:_ :: [Int]-  , _:0:id _:_ :: [Int]-  , _:0:(_ ++ _) :: [Int]-  , [_,1] :: [Int]-  , _:1:_ :: [Int]-  , _:1:xs :: [Int]-  , _:1:_:_ :: [Int]-  , [_,_,0,0] :: [Int]-  , [_,_,0] :: [Int]-  , [_,_,1] :: [Int]-  , [_,_] :: [Int]-  , _:_:_ :: [Int]-  , _:_:xs :: [Int]-  , _:_:ys :: [Int]-  , _:_:zs :: [Int]-  , _:_:sort _ :: [Int]-  , _:_:tail [] :: [Int]-  , _:_:tail _ :: [Int]-  , _:_:tail xs :: [Int]-  , _:_:tail (_:_) :: [Int]-  , [_,_,0] :: [Int]-  , _:_:0:_ :: [Int]-  , _:_:0:xs :: [Int]-  , _:_:0:_:_ :: [Int]-  , _:_:1:_ :: [Int]-  , [_,_,_,0] :: [Int]-  , [_,_,_] :: [Int]-  , _:_:_:_ :: [Int]-  , _:_:_:xs :: [Int]-  , _:_:_:ys :: [Int]-  , _:_:_:tail _ :: [Int]-  , _:_:_:0:_ :: [Int]-  , [_,_,_,_] :: [Int]-  , _:_:_:_:_ :: [Int]-  , _:_:_:_:xs :: [Int]-  , _:_:_:_:_:_ :: [Int]-  , _:_:_:x:_ :: [Int]-  , _:_:_:id _:_ :: [Int]-  , _:_:_:(_ ++ _) :: [Int]-  , [_,_,x] :: [Int]-  , _:_:x:_ :: [Int]-  , _:_:x:xs :: [Int]-  , _:_:x:_:_ :: [Int]-  , _:_:y:_ :: [Int]-  , _:_:ord _:_ :: [Int]-  , _:_:abs _:_ :: [Int]-  , _:_:id 0:_ :: [Int]-  , [_,_,id _] :: [Int]-  , _:_:id _:_ :: [Int]-  , _:_:id _:xs :: [Int]-  , _:_:id _:_:_ :: [Int]-  , _:_:id x:_ :: [Int]-  , _:_:id (id _):_ :: [Int]-  , _:_:negate _:_ :: [Int]-  , _:_:head _:_ :: [Int]-  , _:_:_ + _:_ :: [Int]-  , _:_:insert _ _ :: [Int]-  , [_,_,] ++ _ :: [Int]-  , _:_:(_ ++ []) :: [Int]-  , _:_:(_ ++ _) :: [Int]-  , _:_:(_ ++ xs) :: [Int]-  , _:_:(_ ++ (_:_)) :: [Int]-  , _:_:(xs ++ _) :: [Int]-  , _:_:((_:_) ++ _) :: [Int]-  , [_,x,0] :: [Int]-  , [_,x] :: [Int]-  , _:x:_ :: [Int]-  , _:x:xs :: [Int]-  , _:x:ys :: [Int]-  , _:x:tail _ :: [Int]-  , _:x:0:_ :: [Int]-  , [_,x,_] :: [Int]-  , _:x:_:_ :: [Int]-  , _:x:_:xs :: [Int]-  , _:x:_:_:_ :: [Int]-  , _:x:x:_ :: [Int]-  , _:x:id _:_ :: [Int]-  , _:x:(_ ++ _) :: [Int]-  , [_,y] :: [Int]-  , _:y:_ :: [Int]-  , _:y:xs :: [Int]-  , _:y:_:_ :: [Int]-  , _:z:_ :: [Int]-  , _:ord 'a':_ :: [Int]-  , [_,ord _] :: [Int]-  , _:ord _:_ :: [Int]-  , _:ord _:xs :: [Int]-  , _:ord _:_:_ :: [Int]-  , _:ord c:_ :: [Int]-  , _:f _:_ :: [Int]-  , _:abs 0:_ :: [Int]-  , [_,abs _] :: [Int]-  , _:abs _:_ :: [Int]-  , _:abs _:xs :: [Int]-  , _:abs _:_:_ :: [Int]-  , _:abs x:_ :: [Int]-  , _:abs (id _):_ :: [Int]-  , [_,id 0] :: [Int]-  , _:id 0:_ :: [Int]-  , _:id 0:xs :: [Int]-  , _:id 0:_:_ :: [Int]-  , _:id 1:_ :: [Int]-  , [_,id _,0] :: [Int]-  , [_,id _] :: [Int]-  , _:id _:_ :: [Int]-  , _:id _:xs :: [Int]-  , _:id _:ys :: [Int]-  , _:id _:tail _ :: [Int]-  , _:id _:0:_ :: [Int]-  , [_,id _,_] :: [Int]-  , _:id _:_:_ :: [Int]-  , _:id _:_:xs :: [Int]-  , _:id _:_:_:_ :: [Int]-  , _:id _:x:_ :: [Int]-  , _:id _:id _:_ :: [Int]-  , _:id _:(_ ++ _) :: [Int]-  , [_,id x] :: [Int]-  , _:id x:_ :: [Int]-  , _:id x:xs :: [Int]-  , _:id x:_:_ :: [Int]-  , _:id y:_ :: [Int]-  , _:id (ord _):_ :: [Int]-  , _:id (abs _):_ :: [Int]-  , _:id (id 0):_ :: [Int]-  , [_,id (id _)] :: [Int]-  , _:id (id _):_ :: [Int]-  , _:id (id _):xs :: [Int]-  , _:id (id _):_:_ :: [Int]-  , _:id (id x):_ :: [Int]-  , _:id (id (id _)):_ :: [Int]-  , _:id (negate _):_ :: [Int]-  , _:id (head _):_ :: [Int]-  , _:id (_ + _):_ :: [Int]-  , _:negate 0:_ :: [Int]-  , [_,negate _] :: [Int]-  , _:negate _:_ :: [Int]-  , _:negate _:xs :: [Int]-  , _:negate _:_:_ :: [Int]-  , _:negate x:_ :: [Int]-  , _:negate (id _):_ :: [Int]-  , _:head []:_ :: [Int]-  , [_,head _] :: [Int]-  , _:head _:_ :: [Int]-  , _:head _:xs :: [Int]-  , _:head _:_:_ :: [Int]-  , _:head xs:_ :: [Int]-  , _:head (_:_):_ :: [Int]-  , _:_ * _:_ :: [Int]-  , _:0 + _:_ :: [Int]-  , _:_ + 0:_ :: [Int]-  , [_,_ + _] :: [Int]-  , _:_ + _:_ :: [Int]-  , _:_ + _:xs :: [Int]-  , _:_ + _:_:_ :: [Int]-  , _:_ + x:_ :: [Int]-  , _:_ + id _:_ :: [Int]-  , _:x + _:_ :: [Int]-  , _:id _ + _:_ :: [Int]-  , _:insert 0 _ :: [Int]-  , _:insert _ [] :: [Int]-  , _:insert _ _ :: [Int]-  , _:insert _ xs :: [Int]-  , _:insert _ (_:_) :: [Int]-  , _:insert x _ :: [Int]-  , _:insert (id _) _ :: [Int]-  , _:([0] ++ _) :: [Int]-  , _:([] ++ []) :: [Int]-  , _:([] ++ _) :: [Int]-  , _:([] ++ xs) :: [Int]-  , _:([] ++ (_:_)) :: [Int]-  , _:(_ ++ [0]) :: [Int]-  , _:(_ ++ []) :: [Int]-  , _:(_ ++ _) :: [Int]-  , _:(_ ++ xs) :: [Int]-  , _:(_ ++ ys) :: [Int]-  , _:(_ ++ tail _) :: [Int]-  , _:(_ ++ (0:_)) :: [Int]-  , _:(_ ++ [_]) :: [Int]-  , _:(_ ++ (_:_)) :: [Int]-  , _:(_ ++ (_:xs)) :: [Int]-  , _:(_ ++ (_:_:_)) :: [Int]-  , _:(_ ++ (x:_)) :: [Int]-  , _:(_ ++ (id _:_)) :: [Int]-  , _:(_ ++ (_ ++ _)) :: [Int]-  , _:(xs ++ []) :: [Int]-  , _:(xs ++ _) :: [Int]-  , _:(xs ++ xs) :: [Int]-  , _:(xs ++ (_:_)) :: [Int]-  , _:(ys ++ _) :: [Int]-  , _:(tail _ ++ _) :: [Int]-  , _:((0:_) ++ _) :: [Int]-  , _:([_] ++ _) :: [Int]-  , _:((_:_) ++ []) :: [Int]-  , _:((_:_) ++ _) :: [Int]-  , _:((_:_) ++ xs) :: [Int]-  , _:((_:_) ++ (_:_)) :: [Int]-  , _:((_:xs) ++ _) :: [Int]-  , _:((_:_:_) ++ _) :: [Int]-  , _:((x:_) ++ _) :: [Int]-  , _:((id _:_) ++ _) :: [Int]-  , _:((_ ++ _) ++ _) :: [Int]-  , [x,0,0] :: [Int]-  , [x,0] :: [Int]-  , [x,1] :: [Int]-  , [x] :: [Int]-  , x:_ :: [Int]-  , x:xs :: [Int]-  , x:ys :: [Int]-  , x:zs :: [Int]-  , x:sort _ :: [Int]-  , x:tail [] :: [Int]-  , x:tail _ :: [Int]-  , x:tail xs :: [Int]-  , x:tail (_:_) :: [Int]-  , [x,0] :: [Int]-  , x:0:_ :: [Int]-  , x:0:xs :: [Int]-  , x:0:_:_ :: [Int]-  , x:1:_ :: [Int]-  , [x,_,0] :: [Int]-  , [x,_] :: [Int]-  , x:_:_ :: [Int]-  , x:_:xs :: [Int]-  , x:_:ys :: [Int]-  , x:_:tail _ :: [Int]-  , x:_:0:_ :: [Int]-  , [x,_,_] :: [Int]-  , x:_:_:_ :: [Int]-  , x:_:_:xs :: [Int]-  , x:_:_:_:_ :: [Int]-  , x:_:x:_ :: [Int]-  , x:_:id _:_ :: [Int]-  , x:_:(_ ++ _) :: [Int]-  , [x,x] :: [Int]-  , x:x:_ :: [Int]-  , x:x:xs :: [Int]-  , x:x:_:_ :: [Int]-  , x:y:_ :: [Int]-  , x:ord _:_ :: [Int]-  , x:abs _:_ :: [Int]-  , x:id 0:_ :: [Int]-  , [x,id _] :: [Int]-  , x:id _:_ :: [Int]-  , x:id _:xs :: [Int]-  , x:id _:_:_ :: [Int]-  , x:id x:_ :: [Int]-  , x:id (id _):_ :: [Int]-  , x:negate _:_ :: [Int]-  , x:head _:_ :: [Int]-  , x:_ + _:_ :: [Int]-  , x:insert _ _ :: [Int]-  , x:([] ++ _) :: [Int]-  , x:(_ ++ []) :: [Int]-  , x:(_ ++ _) :: [Int]-  , x:(_ ++ xs) :: [Int]-  , x:(_ ++ (_:_)) :: [Int]-  , x:(xs ++ _) :: [Int]-  , x:((_:_) ++ _) :: [Int]-  , x':_ :: [Int]-  , [y,0] :: [Int]-  , [y] :: [Int]-  , y:_ :: [Int]-  , y:xs :: [Int]-  , y:ys :: [Int]-  , y:tail _ :: [Int]-  , y:0:_ :: [Int]-  , [y,_] :: [Int]-  , y:_:_ :: [Int]-  , y:_:xs :: [Int]-  , y:_:_:_ :: [Int]-  , y:x:_ :: [Int]-  , y:id _:_ :: [Int]-  , y:(_ ++ _) :: [Int]-  , [z] :: [Int]-  , z:_ :: [Int]-  , z:xs :: [Int]-  , z:_:_ :: [Int]-  , ord ' ':_ :: [Int]-  , [ord 'a'] :: [Int]-  , ord 'a':_ :: [Int]-  , ord 'a':xs :: [Int]-  , ord 'a':_:_ :: [Int]-  , [ord _,0] :: [Int]-  , [ord _] :: [Int]-  , ord _:_ :: [Int]-  , ord _:xs :: [Int]-  , ord _:ys :: [Int]-  , ord _:tail _ :: [Int]-  , ord _:0:_ :: [Int]-  , [ord _,_] :: [Int]-  , ord _:_:_ :: [Int]-  , ord _:_:xs :: [Int]-  , ord _:_:_:_ :: [Int]-  , ord _:x:_ :: [Int]-  , ord _:id _:_ :: [Int]-  , ord _:(_ ++ _) :: [Int]-  , [ord c] :: [Int]-  , ord c:_ :: [Int]-  , ord c:xs :: [Int]-  , ord c:_:_ :: [Int]-  , ord d:_ :: [Int]-  , f 0:_ :: [Int]-  , [f _] :: [Int]-  , f _:_ :: [Int]-  , f _:xs :: [Int]-  , f _:_:_ :: [Int]-  , f x:_ :: [Int]-  , f (id _):_ :: [Int]-  , g _:_ :: [Int]-  , [abs 0] :: [Int]-  , abs 0:_ :: [Int]-  , abs 0:xs :: [Int]-  , abs 0:_:_ :: [Int]-  , abs 1:_ :: [Int]-  , [abs _,0] :: [Int]-  , [abs _] :: [Int]-  , abs _:_ :: [Int]-  , abs _:xs :: [Int]-  , abs _:ys :: [Int]-  , abs _:tail _ :: [Int]-  , abs _:0:_ :: [Int]-  , [abs _,_] :: [Int]-  , abs _:_:_ :: [Int]-  , abs _:_:xs :: [Int]-  , abs _:_:_:_ :: [Int]-  , abs _:x:_ :: [Int]-  , abs _:id _:_ :: [Int]-  , abs _:(_ ++ _) :: [Int]-  , [abs x] :: [Int]-  , abs x:_ :: [Int]-  , abs x:xs :: [Int]-  , abs x:_:_ :: [Int]-  , abs y:_ :: [Int]-  , abs (ord _):_ :: [Int]-  , abs (abs _):_ :: [Int]-  , abs (id 0):_ :: [Int]-  , [abs (id _)] :: [Int]-  , abs (id _):_ :: [Int]-  , abs (id _):xs :: [Int]-  , abs (id _):_:_ :: [Int]-  , abs (id x):_ :: [Int]-  , abs (id (id _)):_ :: [Int]-  , abs (negate _):_ :: [Int]-  , abs (head _):_ :: [Int]-  , abs (_ + _):_ :: [Int]-  , id (-1):_ :: [Int]-  , [id 0,0] :: [Int]-  , [id 0] :: [Int]-  , id 0:_ :: [Int]-  , id 0:xs :: [Int]-  , id 0:ys :: [Int]-  , id 0:tail _ :: [Int]-  , id 0:0:_ :: [Int]-  , [id 0,_] :: [Int]-  , id 0:_:_ :: [Int]-  , id 0:_:xs :: [Int]-  , id 0:_:_:_ :: [Int]-  , id 0:x:_ :: [Int]-  , id 0:id _:_ :: [Int]-  , id 0:(_ ++ _) :: [Int]-  , [id 1] :: [Int]-  , id 1:_ :: [Int]-  , id 1:xs :: [Int]-  , id 1:_:_ :: [Int]-  , [id _,0,0] :: [Int]-  , [id _,0] :: [Int]-  , [id _,1] :: [Int]-  , [id _] :: [Int]-  , id _:_ :: [Int]-  , id _:xs :: [Int]-  , id _:ys :: [Int]-  , id _:zs :: [Int]-  , id _:sort _ :: [Int]-  , id _:tail [] :: [Int]-  , id _:tail _ :: [Int]-  , id _:tail xs :: [Int]-  , id _:tail (_:_) :: [Int]-  , [id _,0] :: [Int]-  , id _:0:_ :: [Int]-  , id _:0:xs :: [Int]-  , id _:0:_:_ :: [Int]-  , id _:1:_ :: [Int]-  , [id _,_,0] :: [Int]-  , [id _,_] :: [Int]-  , id _:_:_ :: [Int]-  , id _:_:xs :: [Int]-  , id _:_:ys :: [Int]-  , id _:_:tail _ :: [Int]-  , id _:_:0:_ :: [Int]-  , [id _,_,_] :: [Int]-  , id _:_:_:_ :: [Int]-  , id _:_:_:xs :: [Int]-  , id _:_:_:_:_ :: [Int]-  , id _:_:x:_ :: [Int]-  , id _:_:id _:_ :: [Int]-  , id _:_:(_ ++ _) :: [Int]-  , [id _,x] :: [Int]-  , id _:x:_ :: [Int]-  , id _:x:xs :: [Int]-  , id _:x:_:_ :: [Int]-  , id _:y:_ :: [Int]-  , id _:ord _:_ :: [Int]-  , id _:abs _:_ :: [Int]-  , id _:id 0:_ :: [Int]-  , [id _,id _] :: [Int]-  , id _:id _:_ :: [Int]-  , id _:id _:xs :: [Int]-  , id _:id _:_:_ :: [Int]-  , id _:id x:_ :: [Int]-  , id _:id (id _):_ :: [Int]-  , id _:negate _:_ :: [Int]-  , id _:head _:_ :: [Int]-  , id _:_ + _:_ :: [Int]-  , id _:insert _ _ :: [Int]-  , id _:([] ++ _) :: [Int]-  , id _:(_ ++ []) :: [Int]-  , id _:(_ ++ _) :: [Int]-  , id _:(_ ++ xs) :: [Int]-  , id _:(_ ++ (_:_)) :: [Int]-  , id _:(xs ++ _) :: [Int]-  , id _:((_:_) ++ _) :: [Int]-  , [id x,0] :: [Int]-  , [id x] :: [Int]-  , id x:_ :: [Int]-  , id x:xs :: [Int]-  , id x:ys :: [Int]-  , id x:tail _ :: [Int]-  , id x:0:_ :: [Int]-  , [id x,_] :: [Int]-  , id x:_:_ :: [Int]-  , id x:_:xs :: [Int]-  , id x:_:_:_ :: [Int]-  , id x:x:_ :: [Int]-  , id x:id _:_ :: [Int]-  , id x:(_ ++ _) :: [Int]-  , [id y] :: [Int]-  , id y:_ :: [Int]-  , id y:xs :: [Int]-  , id y:_:_ :: [Int]-  , id z:_ :: [Int]-  , id (ord 'a'):_ :: [Int]-  , [id (ord _)] :: [Int]-  , id (ord _):_ :: [Int]-  , id (ord _):xs :: [Int]-  , id (ord _):_:_ :: [Int]-  , id (ord c):_ :: [Int]-  , id (f _):_ :: [Int]-  , id (abs 0):_ :: [Int]-  , [id (abs _)] :: [Int]-  , id (abs _):_ :: [Int]-  , id (abs _):xs :: [Int]-  , id (abs _):_:_ :: [Int]-  , id (abs x):_ :: [Int]-  , id (abs (id _)):_ :: [Int]-  , [id (id 0)] :: [Int]-  , id (id 0):_ :: [Int]-  , id (id 0):xs :: [Int]-  , id (id 0):_:_ :: [Int]-  , id (id 1):_ :: [Int]-  , [id (id _),0] :: [Int]-  , [id (id _)] :: [Int]-  , id (id _):_ :: [Int]-  , id (id _):xs :: [Int]-  , id (id _):ys :: [Int]-  , id (id _):tail _ :: [Int]-  , id (id _):0:_ :: [Int]-  , [id (id _),_] :: [Int]-  , id (id _):_:_ :: [Int]-  , id (id _):_:xs :: [Int]-  , id (id _):_:_:_ :: [Int]-  , id (id _):x:_ :: [Int]-  , id (id _):id _:_ :: [Int]-  , id (id _):(_ ++ _) :: [Int]-  , [id (id x)] :: [Int]-  , id (id x):_ :: [Int]-  , id (id x):xs :: [Int]-  , id (id x):_:_ :: [Int]-  , id (id y):_ :: [Int]-  , id (id (ord _)):_ :: [Int]-  , id (id (abs _)):_ :: [Int]-  , id (id (id 0)):_ :: [Int]-  , [id (id (id _))] :: [Int]-  , id (id (id _)):_ :: [Int]-  , id (id (id _)):xs :: [Int]-  , id (id (id _)):_:_ :: [Int]-  , id (id (id x)):_ :: [Int]-  , id (id (id (id _))):_ :: [Int]-  , id (id (negate _)):_ :: [Int]-  , id (id (head _)):_ :: [Int]-  , id (id (_ + _)):_ :: [Int]-  , id (negate 0):_ :: [Int]-  , [id (negate _)] :: [Int]-  , id (negate _):_ :: [Int]-  , id (negate _):xs :: [Int]-  , id (negate _):_:_ :: [Int]-  , id (negate x):_ :: [Int]-  , id (negate (id _)):_ :: [Int]-  , id (head []):_ :: [Int]-  , [id (head _)] :: [Int]-  , id (head _):_ :: [Int]-  , id (head _):xs :: [Int]-  , id (head _):_:_ :: [Int]-  , id (head xs):_ :: [Int]-  , id (head (_:_)):_ :: [Int]-  , id (_ * _):_ :: [Int]-  , id (0 + _):_ :: [Int]-  , id (_ + 0):_ :: [Int]-  , [id (_ + _)] :: [Int]-  , id (_ + _):_ :: [Int]-  , id (_ + _):xs :: [Int]-  , id (_ + _):_:_ :: [Int]-  , id (_ + x):_ :: [Int]-  , id (_ + id _):_ :: [Int]-  , id (x + _):_ :: [Int]-  , id (id _ + _):_ :: [Int]-  , [negate 0] :: [Int]-  , negate 0:_ :: [Int]-  , negate 0:xs :: [Int]-  , negate 0:_:_ :: [Int]-  , negate 1:_ :: [Int]-  , [negate _,0] :: [Int]-  , [negate _] :: [Int]-  , negate _:_ :: [Int]-  , negate _:xs :: [Int]-  , negate _:ys :: [Int]-  , negate _:tail _ :: [Int]-  , negate _:0:_ :: [Int]-  , [negate _,_] :: [Int]-  , negate _:_:_ :: [Int]-  , negate _:_:xs :: [Int]-  , negate _:_:_:_ :: [Int]-  , negate _:x:_ :: [Int]-  , negate _:id _:_ :: [Int]-  , negate _:(_ ++ _) :: [Int]-  , [negate x] :: [Int]-  , negate x:_ :: [Int]-  , negate x:xs :: [Int]-  , negate x:_:_ :: [Int]-  , negate y:_ :: [Int]-  , negate (ord _):_ :: [Int]-  , negate (abs _):_ :: [Int]-  , negate (id 0):_ :: [Int]-  , [negate (id _)] :: [Int]-  , negate (id _):_ :: [Int]-  , negate (id _):xs :: [Int]-  , negate (id _):_:_ :: [Int]-  , negate (id x):_ :: [Int]-  , negate (id (id _)):_ :: [Int]-  , negate (negate _):_ :: [Int]-  , negate (head _):_ :: [Int]-  , negate (_ + _):_ :: [Int]-  , head [0]:_ :: [Int]-  , [head []] :: [Int]-  , head []:_ :: [Int]-  , head []:xs :: [Int]-  , head []:_:_ :: [Int]-  , [head _,0] :: [Int]-  , [head _] :: [Int]-  , head _:_ :: [Int]-  , head _:xs :: [Int]-  , head _:ys :: [Int]-  , head _:tail _ :: [Int]-  , head _:0:_ :: [Int]-  , [head _,_] :: [Int]-  , head _:_:_ :: [Int]-  , head _:_:xs :: [Int]-  , head _:_:_:_ :: [Int]-  , head _:x:_ :: [Int]-  , head _:id _:_ :: [Int]-  , head _:(_ ++ _) :: [Int]-  , [head xs] :: [Int]-  , head xs:_ :: [Int]-  , head xs:xs :: [Int]-  , head xs:_:_ :: [Int]-  , head ys:_ :: [Int]-  , head (tail _):_ :: [Int]-  , head (0:_):_ :: [Int]-  , head [_]:_ :: [Int]-  , [head (_:_)] :: [Int]-  , head (_:_):_ :: [Int]-  , head (_:_):xs :: [Int]-  , head (_:_):_:_ :: [Int]-  , head (_:xs):_ :: [Int]-  , head (_:_:_):_ :: [Int]-  , head (x:_):_ :: [Int]-  , head (id _:_):_ :: [Int]-  , head (_ ++ _):_ :: [Int]-  , 0 * _:_ :: [Int]-  , _ * 0:_ :: [Int]-  , [_ * _] :: [Int]-  , _ * _:_ :: [Int]-  , _ * _:xs :: [Int]-  , _ * _:_:_ :: [Int]-  , _ * x:_ :: [Int]-  , _ * id _:_ :: [Int]-  , x * _:_ :: [Int]-  , id _ * _:_ :: [Int]-  , 0 + 0:_ :: [Int]-  , [0 + _] :: [Int]-  , 0 + _:_ :: [Int]-  , 0 + _:xs :: [Int]-  , 0 + _:_:_ :: [Int]-  , 0 + x:_ :: [Int]-  , 0 + id _:_ :: [Int]-  , 1 + _:_ :: [Int]-  , [_ + 0] :: [Int]-  , _ + 0:_ :: [Int]-  , _ + 0:xs :: [Int]-  , _ + 0:_:_ :: [Int]-  , _ + 1:_ :: [Int]-  , [_ + _,0] :: [Int]-  , [_ + _] :: [Int]-  , _ + _:_ :: [Int]-  , _ + _:xs :: [Int]-  , _ + _:ys :: [Int]-  , _ + _:tail _ :: [Int]-  , _ + _:0:_ :: [Int]-  , [_ + _,_] :: [Int]-  , _ + _:_:_ :: [Int]-  , _ + _:_:xs :: [Int]-  , _ + _:_:_:_ :: [Int]-  , _ + _:x:_ :: [Int]-  , _ + _:id _:_ :: [Int]-  , _ + _:(_ ++ _) :: [Int]-  , [_ + x] :: [Int]-  , _ + x:_ :: [Int]-  , _ + x:xs :: [Int]-  , _ + x:_:_ :: [Int]-  , _ + y:_ :: [Int]-  , _ + ord _:_ :: [Int]-  , _ + abs _:_ :: [Int]-  , _ + id 0:_ :: [Int]-  , [_ + id _] :: [Int]-  , _ + id _:_ :: [Int]-  , _ + id _:xs :: [Int]-  , _ + id _:_:_ :: [Int]-  , _ + id x:_ :: [Int]-  , _ + id (id _):_ :: [Int]-  , _ + negate _:_ :: [Int]-  , _ + head _:_ :: [Int]-  , _ + (_ + _):_ :: [Int]-  , x + 0:_ :: [Int]-  , [x + _] :: [Int]-  , x + _:_ :: [Int]-  , x + _:xs :: [Int]-  , x + _:_:_ :: [Int]-  , x + x:_ :: [Int]-  , x + id _:_ :: [Int]-  , y + _:_ :: [Int]-  , ord _ + _:_ :: [Int]-  , abs _ + _:_ :: [Int]-  , id 0 + _:_ :: [Int]-  , id _ + 0:_ :: [Int]-  , [id _ + _] :: [Int]-  , id _ + _:_ :: [Int]-  , id _ + _:xs :: [Int]-  , id _ + _:_:_ :: [Int]-  , id _ + x:_ :: [Int]-  , id _ + id _:_ :: [Int]-  , id x + _:_ :: [Int]-  , id (id _) + _:_ :: [Int]-  , negate _ + _:_ :: [Int]-  , head _ + _:_ :: [Int]-  , (_ + _) + _:_ :: [Int]-  , insert 0 [] :: [Int]-  , insert 0 _ :: [Int]-  , insert 0 xs :: [Int]-  , insert 0 (_:_) :: [Int]-  , insert 1 _ :: [Int]-  , insert _ [0] :: [Int]-  , insert _ [] :: [Int]-  , insert _ _ :: [Int]-  , insert _ xs :: [Int]-  , insert _ ys :: [Int]-  , insert _ (tail _) :: [Int]-  , insert _ (0:_) :: [Int]-  , insert _ [_] :: [Int]-  , insert _ (_:_) :: [Int]-  , insert _ (_:xs) :: [Int]-  , insert _ (_:_:_) :: [Int]-  , insert _ (x:_) :: [Int]-  , insert _ (id _:_) :: [Int]-  , insert _ (_ ++ _) :: [Int]-  , insert x [] :: [Int]-  , insert x _ :: [Int]-  , insert x xs :: [Int]-  , insert x (_:_) :: [Int]-  , insert y _ :: [Int]-  , insert (ord _) _ :: [Int]-  , insert (abs _) _ :: [Int]-  , insert (id 0) _ :: [Int]-  , insert (id _) [] :: [Int]-  , insert (id _) _ :: [Int]-  , insert (id _) xs :: [Int]-  , insert (id _) (_:_) :: [Int]-  , insert (id x) _ :: [Int]-  , insert (id (id _)) _ :: [Int]-  , insert (negate _) _ :: [Int]-  , insert (head _) _ :: [Int]-  , insert (_ + _) _ :: [Int]-  , [0,0] ++ _ :: [Int]-  , [0] ++ [] :: [Int]-  , [0] ++ _ :: [Int]-  , [0] ++ xs :: [Int]-  , [0] ++ (_:_) :: [Int]-  , [1] ++ _ :: [Int]-  , [] ++ [0] :: [Int]-  , [] ++ [] :: [Int]-  , [] ++ _ :: [Int]-  , [] ++ xs :: [Int]-  , [] ++ ys :: [Int]-  , [] ++ tail _ :: [Int]-  , [] ++ (0:_) :: [Int]-  , [] ++ [_] :: [Int]-  , [] ++ (_:_) :: [Int]-  , [] ++ (_:xs) :: [Int]-  , [] ++ (_:_:_) :: [Int]-  , [] ++ (x:_) :: [Int]-  , [] ++ (id _:_) :: [Int]-  , [] ++ (_ ++ _) :: [Int]-  , _ ++ [0,0] :: [Int]-  , _ ++ [0] :: [Int]-  , _ ++ [1] :: [Int]-  , _ ++ [] :: [Int]-  , _ ++ _ :: [Int]-  , _ ++ xs :: [Int]-  , _ ++ ys :: [Int]-  , _ ++ zs :: [Int]-  , _ ++ sort _ :: [Int]-  , _ ++ tail [] :: [Int]-  , _ ++ tail _ :: [Int]-  , _ ++ tail xs :: [Int]-  , _ ++ tail (_:_) :: [Int]-  , _ ++ [0] :: [Int]-  , _ ++ (0:_) :: [Int]-  , _ ++ (0:xs) :: [Int]-  , _ ++ (0:_:_) :: [Int]-  , _ ++ (1:_) :: [Int]-  , _ ++ [_,0] :: [Int]-  , _ ++ [_] :: [Int]-  , _ ++ (_:_) :: [Int]-  , _ ++ (_:xs) :: [Int]-  , _ ++ (_:ys) :: [Int]-  , _ ++ (_:tail _) :: [Int]-  , _ ++ (_:0:_) :: [Int]-  , _ ++ [_,_] :: [Int]-  , _ ++ (_:_:_) :: [Int]-  , _ ++ (_:_:xs) :: [Int]-  , _ ++ (_:_:_:_) :: [Int]-  , _ ++ (_:x:_) :: [Int]-  , _ ++ (_:id _:_) :: [Int]-  , _ ++ (_:(_ ++ _)) :: [Int]-  , _ ++ [x] :: [Int]-  , _ ++ (x:_) :: [Int]-  , _ ++ (x:xs) :: [Int]-  , _ ++ (x:_:_) :: [Int]-  , _ ++ (y:_) :: [Int]-  , _ ++ (ord _:_) :: [Int]-  , _ ++ (abs _:_) :: [Int]-  , _ ++ (id 0:_) :: [Int]-  , _ ++ [id _] :: [Int]-  , _ ++ (id _:_) :: [Int]-  , _ ++ (id _:xs) :: [Int]-  , _ ++ (id _:_:_) :: [Int]-  , _ ++ (id x:_) :: [Int]-  , _ ++ (id (id _):_) :: [Int]-  , _ ++ (negate _:_) :: [Int]-  , _ ++ (head _:_) :: [Int]-  , _ ++ (_ + _:_) :: [Int]-  , _ ++ insert _ _ :: [Int]-  , _ ++ ([] ++ _) :: [Int]-  , _ ++ (_ ++ []) :: [Int]-  , _ ++ (_ ++ _) :: [Int]-  , _ ++ (_ ++ xs) :: [Int]-  , _ ++ (_ ++ (_:_)) :: [Int]-  , _ ++ (xs ++ _) :: [Int]-  , _ ++ ((_:_) ++ _) :: [Int]-  , xs ++ [0] :: [Int]-  , xs ++ [] :: [Int]-  , xs ++ _ :: [Int]-  , xs ++ xs :: [Int]-  , xs ++ ys :: [Int]-  , xs ++ tail _ :: [Int]-  , xs ++ (0:_) :: [Int]-  , xs ++ [_] :: [Int]-  , xs ++ (_:_) :: [Int]-  , xs ++ (_:xs) :: [Int]-  , xs ++ (_:_:_) :: [Int]-  , xs ++ (x:_) :: [Int]-  , xs ++ (id _:_) :: [Int]-  , xs ++ (_ ++ _) :: [Int]-  , ys ++ [] :: [Int]-  , ys ++ _ :: [Int]-  , ys ++ xs :: [Int]-  , ys ++ (_:_) :: [Int]-  , zs ++ _ :: [Int]-  , sort _ ++ _ :: [Int]-  , tail [] ++ _ :: [Int]-  , tail _ ++ [] :: [Int]-  , tail _ ++ _ :: [Int]-  , tail _ ++ xs :: [Int]-  , tail _ ++ (_:_) :: [Int]-  , tail xs ++ _ :: [Int]-  , tail (_:_) ++ _ :: [Int]-  , [0] ++ _ :: [Int]-  , (0:_) ++ [] :: [Int]-  , (0:_) ++ _ :: [Int]-  , (0:_) ++ xs :: [Int]-  , (0:_) ++ (_:_) :: [Int]-  , (0:xs) ++ _ :: [Int]-  , (0:_:_) ++ _ :: [Int]-  , (1:_) ++ _ :: [Int]-  , [_,0] ++ _ :: [Int]-  , [_] ++ [] :: [Int]-  , [_] ++ _ :: [Int]-  , [_] ++ xs :: [Int]-  , [_] ++ (_:_) :: [Int]-  , (_:_) ++ [0] :: [Int]-  , (_:_) ++ [] :: [Int]-  , (_:_) ++ _ :: [Int]-  , (_:_) ++ xs :: [Int]-  , (_:_) ++ ys :: [Int]-  , (_:_) ++ tail _ :: [Int]-  , (_:_) ++ (0:_) :: [Int]-  , (_:_) ++ [_] :: [Int]-  , (_:_) ++ (_:_) :: [Int]-  , (_:_) ++ (_:xs) :: [Int]-  , (_:_) ++ (_:_:_) :: [Int]-  , (_:_) ++ (x:_) :: [Int]-  , (_:_) ++ (id _:_) :: [Int]-  , (_:_) ++ (_ ++ _) :: [Int]-  , (_:xs) ++ [] :: [Int]-  , (_:xs) ++ _ :: [Int]-  , (_:xs) ++ xs :: [Int]-  , (_:xs) ++ (_:_) :: [Int]-  , (_:ys) ++ _ :: [Int]-  , (_:tail _) ++ _ :: [Int]-  , (_:0:_) ++ _ :: [Int]-  , [_,_] ++ _ :: [Int]-  , (_:_:_) ++ [] :: [Int]-  , (_:_:_) ++ _ :: [Int]-  , (_:_:_) ++ xs :: [Int]-  , (_:_:_) ++ (_:_) :: [Int]-  , (_:_:xs) ++ _ :: [Int]-  , (_:_:_:_) ++ _ :: [Int]-  , (_:x:_) ++ _ :: [Int]-  , (_:id _:_) ++ _ :: [Int]-  , (_:(_ ++ _)) ++ _ :: [Int]-  , [x] ++ _ :: [Int]-  , (x:_) ++ [] :: [Int]-  , (x:_) ++ _ :: [Int]-  , (x:_) ++ xs :: [Int]-  , (x:_) ++ (_:_) :: [Int]-  , (x:xs) ++ _ :: [Int]-  , (x:_:_) ++ _ :: [Int]-  , (y:_) ++ _ :: [Int]-  , (ord _:_) ++ _ :: [Int]-  , (abs _:_) ++ _ :: [Int]-  , (id 0:_) ++ _ :: [Int]-  , [id _] ++ _ :: [Int]-  , (id _:_) ++ [] :: [Int]-  , (id _:_) ++ _ :: [Int]-  , (id _:_) ++ xs :: [Int]-  , (id _:_) ++ (_:_) :: [Int]-  , (id _:xs) ++ _ :: [Int]-  , (id _:_:_) ++ _ :: [Int]-  , (id x:_) ++ _ :: [Int]-  , (id (id _):_) ++ _ :: [Int]-  , (negate _:_) ++ _ :: [Int]-  , (head _:_) ++ _ :: [Int]-  , (_ + _:_) ++ _ :: [Int]-  , insert _ _ ++ _ :: [Int]-  , ([] ++ _) ++ _ :: [Int]-  , (_ ++ []) ++ _ :: [Int]-  , (_ ++ _) ++ [] :: [Int]-  , (_ ++ _) ++ _ :: [Int]-  , (_ ++ _) ++ xs :: [Int]-  , (_ ++ _) ++ (_:_) :: [Int]-  , (_ ++ xs) ++ _ :: [Int]-  , (_ ++ (_:_)) ++ _ :: [Int]-  , (xs ++ _) ++ _ :: [Int]-  , ((_:_) ++ _) ++ _ :: [Int]-  ]-
− test/model/bench/tiers.out
@@ -1,3624 +0,0 @@-isNub (list :: [Expr])  =  True-map length (tiers :: [[ Expr ]])  =  [1,6,21,55,177,674,2679,11128,47899,...]-tiers :: [[ Expr ]]  =-  [ [_ :: Int]-  , [ x :: Int-    , 0 :: Int-    , id _ :: Int-    , _ :: Bool-    , _ :: Char-    , _ :: [Int]-    ]-  , [ y :: Int-    , 1 :: Int-    , id x :: Int-    , id 0 :: Int-    , id (id _) :: Int-    , negate _ :: Int-    , abs _ :: Int-    , _ + _ :: Int-    , head _ :: Int-    , ord _ :: Int-    , p :: Bool-    , False :: Bool-    , True :: Bool-    , not _ :: Bool-    , c :: Char-    , 'a' :: Char-    , xs :: [Int]-    , [] :: [Int]-    , _:_ :: [Int]-    , id :: Int -> Int-    , (+) :: Int -> Int -> Int-    ]-  , [ z :: Int-    , -1 :: Int-    , id y :: Int-    , id 1 :: Int-    , id (id x) :: Int-    , id (id 0) :: Int-    , id (id (id _)) :: Int-    , id (negate _) :: Int-    , id (abs _) :: Int-    , id (_ + _) :: Int-    , id (head _) :: Int-    , id (ord _) :: Int-    , negate x :: Int-    , negate 0 :: Int-    , negate (id _) :: Int-    , abs x :: Int-    , abs 0 :: Int-    , abs (id _) :: Int-    , _ + x :: Int-    , _ + 0 :: Int-    , _ + id _ :: Int-    , x + _ :: Int-    , 0 + _ :: Int-    , id _ + _ :: Int-    , _ * _ :: Int-    , f _ :: Int-    , head xs :: Int-    , head [] :: Int-    , head (_:_) :: Int-    , ord c :: Int-    , ord 'a' :: Int-    , q :: Bool-    , not p :: Bool-    , not False :: Bool-    , not True :: Bool-    , not (not _) :: Bool-    , _ || _ :: Bool-    , d :: Char-    , ' ' :: Char-    , ys :: [Int]-    , [0] :: [Int]-    , _:xs :: [Int]-    , [_] :: [Int]-    , _:_:_ :: [Int]-    , x:_ :: [Int]-    , 0:_ :: [Int]-    , id _:_ :: [Int]-    , tail _ :: [Int]-    , _ ++ _ :: [Int]-    , negate :: Int -> Int-    , abs :: Int -> Int-    , (_ +) :: Int -> Int-    , (*) :: Int -> Int -> Int-    , not :: Bool -> Bool-    , (||) :: Bool -> Bool -> Bool-    ]-  , [ x' :: Int-    , 2 :: Int-    , id z :: Int-    , id (-1) :: Int-    , id (id y) :: Int-    , id (id 1) :: Int-    , id (id (id x)) :: Int-    , id (id (id 0)) :: Int-    , id (id (id (id _))) :: Int-    , id (id (negate _)) :: Int-    , id (id (abs _)) :: Int-    , id (id (_ + _)) :: Int-    , id (id (head _)) :: Int-    , id (id (ord _)) :: Int-    , id (negate x) :: Int-    , id (negate 0) :: Int-    , id (negate (id _)) :: Int-    , id (abs x) :: Int-    , id (abs 0) :: Int-    , id (abs (id _)) :: Int-    , id (_ + x) :: Int-    , id (_ + 0) :: Int-    , id (_ + id _) :: Int-    , id (x + _) :: Int-    , id (0 + _) :: Int-    , id (id _ + _) :: Int-    , id (_ * _) :: Int-    , id (f _) :: Int-    , id (head xs) :: Int-    , id (head []) :: Int-    , id (head (_:_)) :: Int-    , id (ord c) :: Int-    , id (ord 'a') :: Int-    , negate y :: Int-    , negate 1 :: Int-    , negate (id x) :: Int-    , negate (id 0) :: Int-    , negate (id (id _)) :: Int-    , negate (negate _) :: Int-    , negate (abs _) :: Int-    , negate (_ + _) :: Int-    , negate (head _) :: Int-    , negate (ord _) :: Int-    , abs y :: Int-    , abs 1 :: Int-    , abs (id x) :: Int-    , abs (id 0) :: Int-    , abs (id (id _)) :: Int-    , abs (negate _) :: Int-    , abs (abs _) :: Int-    , abs (_ + _) :: Int-    , abs (head _) :: Int-    , abs (ord _) :: Int-    , _ + y :: Int-    , _ + 1 :: Int-    , _ + id x :: Int-    , _ + id 0 :: Int-    , _ + id (id _) :: Int-    , _ + negate _ :: Int-    , _ + abs _ :: Int-    , _ + (_ + _) :: Int-    , _ + head _ :: Int-    , _ + ord _ :: Int-    , x + x :: Int-    , x + 0 :: Int-    , x + id _ :: Int-    , 0 + x :: Int-    , 0 + 0 :: Int-    , 0 + id _ :: Int-    , id _ + x :: Int-    , id _ + 0 :: Int-    , id _ + id _ :: Int-    , _ * x :: Int-    , _ * 0 :: Int-    , _ * id _ :: Int-    , f x :: Int-    , f 0 :: Int-    , f (id _) :: Int-    , y + _ :: Int-    , 1 + _ :: Int-    , id x + _ :: Int-    , id 0 + _ :: Int-    , id (id _) + _ :: Int-    , negate _ + _ :: Int-    , abs _ + _ :: Int-    , (_ + _) + _ :: Int-    , head _ + _ :: Int-    , ord _ + _ :: Int-    , x * _ :: Int-    , 0 * _ :: Int-    , id _ * _ :: Int-    , g _ :: Int-    , head ys :: Int-    , head [0] :: Int-    , head (_:xs) :: Int-    , head [_] :: Int-    , head (_:_:_) :: Int-    , head (x:_) :: Int-    , head (0:_) :: Int-    , head (id _:_) :: Int-    , head (tail _) :: Int-    , head (_ ++ _) :: Int-    , ord d :: Int-    , ord ' ' :: Int-    , r :: Bool-    , not q :: Bool-    , not (not p) :: Bool-    , not (not False) :: Bool-    , not (not True) :: Bool-    , not (not (not _)) :: Bool-    , not (_ || _) :: Bool-    , _ || p :: Bool-    , _ || False :: Bool-    , _ || True :: Bool-    , _ || not _ :: Bool-    , p || _ :: Bool-    , False || _ :: Bool-    , True || _ :: Bool-    , not _ || _ :: Bool-    , _ && _ :: Bool-    , _ == _ :: Bool-    , _ == _ :: Bool-    , odd _ :: Bool-    , even _ :: Bool-    , elem _ _ :: Bool-    , e :: Char-    , 'b' :: Char-    , zs :: [Int]-    , [0,0] :: [Int]-    , [1] :: [Int]-    , _:ys :: [Int]-    , [_,0] :: [Int]-    , _:_:xs :: [Int]-    , [_,_] :: [Int]-    , _:_:_:_ :: [Int]-    , _:x:_ :: [Int]-    , _:0:_ :: [Int]-    , _:id _:_ :: [Int]-    , _:tail _ :: [Int]-    , _:(_ ++ _) :: [Int]-    , x:xs :: [Int]-    , [x] :: [Int]-    , x:_:_ :: [Int]-    , 0:xs :: [Int]-    , [0] :: [Int]-    , 0:_:_ :: [Int]-    , id _:xs :: [Int]-    , [id _] :: [Int]-    , id _:_:_ :: [Int]-    , y:_ :: [Int]-    , 1:_ :: [Int]-    , id x:_ :: [Int]-    , id 0:_ :: [Int]-    , id (id _):_ :: [Int]-    , negate _:_ :: [Int]-    , abs _:_ :: [Int]-    , _ + _:_ :: [Int]-    , head _:_ :: [Int]-    , ord _:_ :: [Int]-    , tail xs :: [Int]-    , tail [] :: [Int]-    , tail (_:_) :: [Int]-    , _ ++ xs :: [Int]-    , _ ++ [] :: [Int]-    , _ ++ (_:_) :: [Int]-    , xs ++ _ :: [Int]-    , [] ++ _ :: [Int]-    , (_:_) ++ _ :: [Int]-    , sort _ :: [Int]-    , insert _ _ :: [Int]-    , (x +) :: Int -> Int-    , (0 +) :: Int -> Int-    , (id _ +) :: Int -> Int-    , (_ *) :: Int -> Int-    , f :: Int -> Int-    , (_ ||) :: Bool -> Bool-    , (&&) :: Bool -> Bool -> Bool-    ]-  , [ y' :: Int-    , -2 :: Int-    , id x' :: Int-    , id 2 :: Int-    , id (id z) :: Int-    , id (id (-1)) :: Int-    , id (id (id y)) :: Int-    , id (id (id 1)) :: Int-    , id (id (id (id x))) :: Int-    , id (id (id (id 0))) :: Int-    , id (id (id (id (id _)))) :: Int-    , id (id (id (negate _))) :: Int-    , id (id (id (abs _))) :: Int-    , id (id (id (_ + _))) :: Int-    , id (id (id (head _))) :: Int-    , id (id (id (ord _))) :: Int-    , id (id (negate x)) :: Int-    , id (id (negate 0)) :: Int-    , id (id (negate (id _))) :: Int-    , id (id (abs x)) :: Int-    , id (id (abs 0)) :: Int-    , id (id (abs (id _))) :: Int-    , id (id (_ + x)) :: Int-    , id (id (_ + 0)) :: Int-    , id (id (_ + id _)) :: Int-    , id (id (x + _)) :: Int-    , id (id (0 + _)) :: Int-    , id (id (id _ + _)) :: Int-    , id (id (_ * _)) :: Int-    , id (id (f _)) :: Int-    , id (id (head xs)) :: Int-    , id (id (head [])) :: Int-    , id (id (head (_:_))) :: Int-    , id (id (ord c)) :: Int-    , id (id (ord 'a')) :: Int-    , id (negate y) :: Int-    , id (negate 1) :: Int-    , id (negate (id x)) :: Int-    , id (negate (id 0)) :: Int-    , id (negate (id (id _))) :: Int-    , id (negate (negate _)) :: Int-    , id (negate (abs _)) :: Int-    , id (negate (_ + _)) :: Int-    , id (negate (head _)) :: Int-    , id (negate (ord _)) :: Int-    , id (abs y) :: Int-    , id (abs 1) :: Int-    , id (abs (id x)) :: Int-    , id (abs (id 0)) :: Int-    , id (abs (id (id _))) :: Int-    , id (abs (negate _)) :: Int-    , id (abs (abs _)) :: Int-    , id (abs (_ + _)) :: Int-    , id (abs (head _)) :: Int-    , id (abs (ord _)) :: Int-    , id (_ + y) :: Int-    , id (_ + 1) :: Int-    , id (_ + id x) :: Int-    , id (_ + id 0) :: Int-    , id (_ + id (id _)) :: Int-    , id (_ + negate _) :: Int-    , id (_ + abs _) :: Int-    , id (_ + (_ + _)) :: Int-    , id (_ + head _) :: Int-    , id (_ + ord _) :: Int-    , id (x + x) :: Int-    , id (x + 0) :: Int-    , id (x + id _) :: Int-    , id (0 + x) :: Int-    , id (0 + 0) :: Int-    , id (0 + id _) :: Int-    , id (id _ + x) :: Int-    , id (id _ + 0) :: Int-    , id (id _ + id _) :: Int-    , id (_ * x) :: Int-    , id (_ * 0) :: Int-    , id (_ * id _) :: Int-    , id (f x) :: Int-    , id (f 0) :: Int-    , id (f (id _)) :: Int-    , id (y + _) :: Int-    , id (1 + _) :: Int-    , id (id x + _) :: Int-    , id (id 0 + _) :: Int-    , id (id (id _) + _) :: Int-    , id (negate _ + _) :: Int-    , id (abs _ + _) :: Int-    , id ((_ + _) + _) :: Int-    , id (head _ + _) :: Int-    , id (ord _ + _) :: Int-    , id (x * _) :: Int-    , id (0 * _) :: Int-    , id (id _ * _) :: Int-    , id (g _) :: Int-    , id (head ys) :: Int-    , id (head [0]) :: Int-    , id (head (_:xs)) :: Int-    , id (head [_]) :: Int-    , id (head (_:_:_)) :: Int-    , id (head (x:_)) :: Int-    , id (head (0:_)) :: Int-    , id (head (id _:_)) :: Int-    , id (head (tail _)) :: Int-    , id (head (_ ++ _)) :: Int-    , id (ord d) :: Int-    , id (ord ' ') :: Int-    , negate z :: Int-    , negate (-1) :: Int-    , negate (id y) :: Int-    , negate (id 1) :: Int-    , negate (id (id x)) :: Int-    , negate (id (id 0)) :: Int-    , negate (id (id (id _))) :: Int-    , negate (id (negate _)) :: Int-    , negate (id (abs _)) :: Int-    , negate (id (_ + _)) :: Int-    , negate (id (head _)) :: Int-    , negate (id (ord _)) :: Int-    , negate (negate x) :: Int-    , negate (negate 0) :: Int-    , negate (negate (id _)) :: Int-    , negate (abs x) :: Int-    , negate (abs 0) :: Int-    , negate (abs (id _)) :: Int-    , negate (_ + x) :: Int-    , negate (_ + 0) :: Int-    , negate (_ + id _) :: Int-    , negate (x + _) :: Int-    , negate (0 + _) :: Int-    , negate (id _ + _) :: Int-    , negate (_ * _) :: Int-    , negate (f _) :: Int-    , negate (head xs) :: Int-    , negate (head []) :: Int-    , negate (head (_:_)) :: Int-    , negate (ord c) :: Int-    , negate (ord 'a') :: Int-    , abs z :: Int-    , abs (-1) :: Int-    , abs (id y) :: Int-    , abs (id 1) :: Int-    , abs (id (id x)) :: Int-    , abs (id (id 0)) :: Int-    , abs (id (id (id _))) :: Int-    , abs (id (negate _)) :: Int-    , abs (id (abs _)) :: Int-    , abs (id (_ + _)) :: Int-    , abs (id (head _)) :: Int-    , abs (id (ord _)) :: Int-    , abs (negate x) :: Int-    , abs (negate 0) :: Int-    , abs (negate (id _)) :: Int-    , abs (abs x) :: Int-    , abs (abs 0) :: Int-    , abs (abs (id _)) :: Int-    , abs (_ + x) :: Int-    , abs (_ + 0) :: Int-    , abs (_ + id _) :: Int-    , abs (x + _) :: Int-    , abs (0 + _) :: Int-    , abs (id _ + _) :: Int-    , abs (_ * _) :: Int-    , abs (f _) :: Int-    , abs (head xs) :: Int-    , abs (head []) :: Int-    , abs (head (_:_)) :: Int-    , abs (ord c) :: Int-    , abs (ord 'a') :: Int-    , _ + z :: Int-    , _ + (-1) :: Int-    , _ + id y :: Int-    , _ + id 1 :: Int-    , _ + id (id x) :: Int-    , _ + id (id 0) :: Int-    , _ + id (id (id _)) :: Int-    , _ + id (negate _) :: Int-    , _ + id (abs _) :: Int-    , _ + id (_ + _) :: Int-    , _ + id (head _) :: Int-    , _ + id (ord _) :: Int-    , _ + negate x :: Int-    , _ + negate 0 :: Int-    , _ + negate (id _) :: Int-    , _ + abs x :: Int-    , _ + abs 0 :: Int-    , _ + abs (id _) :: Int-    , _ + (_ + x) :: Int-    , _ + (_ + 0) :: Int-    , _ + (_ + id _) :: Int-    , _ + (x + _) :: Int-    , _ + (0 + _) :: Int-    , _ + (id _ + _) :: Int-    , _ + _ * _ :: Int-    , _ + f _ :: Int-    , _ + head xs :: Int-    , _ + head [] :: Int-    , _ + head (_:_) :: Int-    , _ + ord c :: Int-    , _ + ord 'a' :: Int-    , x + y :: Int-    , x + 1 :: Int-    , x + id x :: Int-    , x + id 0 :: Int-    , x + id (id _) :: Int-    , x + negate _ :: Int-    , x + abs _ :: Int-    , x + (_ + _) :: Int-    , x + head _ :: Int-    , x + ord _ :: Int-    , 0 + y :: Int-    , 0 + 1 :: Int-    , 0 + id x :: Int-    , 0 + id 0 :: Int-    , 0 + id (id _) :: Int-    , 0 + negate _ :: Int-    , 0 + abs _ :: Int-    , 0 + (_ + _) :: Int-    , 0 + head _ :: Int-    , 0 + ord _ :: Int-    , id _ + y :: Int-    , id _ + 1 :: Int-    , id _ + id x :: Int-    , id _ + id 0 :: Int-    , id _ + id (id _) :: Int-    , id _ + negate _ :: Int-    , id _ + abs _ :: Int-    , id _ + (_ + _) :: Int-    , id _ + head _ :: Int-    , id _ + ord _ :: Int-    , _ * y :: Int-    , _ * 1 :: Int-    , _ * id x :: Int-    , _ * id 0 :: Int-    , _ * id (id _) :: Int-    , _ * negate _ :: Int-    , _ * abs _ :: Int-    , _ * (_ + _) :: Int-    , _ * head _ :: Int-    , _ * ord _ :: Int-    , f y :: Int-    , f 1 :: Int-    , f (id x) :: Int-    , f (id 0) :: Int-    , f (id (id _)) :: Int-    , f (negate _) :: Int-    , f (abs _) :: Int-    , f (_ + _) :: Int-    , f (head _) :: Int-    , f (ord _) :: Int-    , y + x :: Int-    , y + 0 :: Int-    , y + id _ :: Int-    , 1 + x :: Int-    , 1 + 0 :: Int-    , 1 + id _ :: Int-    , id x + x :: Int-    , id x + 0 :: Int-    , id x + id _ :: Int-    , id 0 + x :: Int-    , id 0 + 0 :: Int-    , id 0 + id _ :: Int-    , id (id _) + x :: Int-    , id (id _) + 0 :: Int-    , id (id _) + id _ :: Int-    , negate _ + x :: Int-    , negate _ + 0 :: Int-    , negate _ + id _ :: Int-    , abs _ + x :: Int-    , abs _ + 0 :: Int-    , abs _ + id _ :: Int-    , (_ + _) + x :: Int-    , (_ + _) + 0 :: Int-    , (_ + _) + id _ :: Int-    , head _ + x :: Int-    , head _ + 0 :: Int-    , head _ + id _ :: Int-    , ord _ + x :: Int-    , ord _ + 0 :: Int-    , ord _ + id _ :: Int-    , x * x :: Int-    , x * 0 :: Int-    , x * id _ :: Int-    , 0 * x :: Int-    , 0 * 0 :: Int-    , 0 * id _ :: Int-    , id _ * x :: Int-    , id _ * 0 :: Int-    , id _ * id _ :: Int-    , g x :: Int-    , g 0 :: Int-    , g (id _) :: Int-    , z + _ :: Int-    , (-1) + _ :: Int-    , id y + _ :: Int-    , id 1 + _ :: Int-    , id (id x) + _ :: Int-    , id (id 0) + _ :: Int-    , id (id (id _)) + _ :: Int-    , id (negate _) + _ :: Int-    , id (abs _) + _ :: Int-    , id (_ + _) + _ :: Int-    , id (head _) + _ :: Int-    , id (ord _) + _ :: Int-    , negate x + _ :: Int-    , negate 0 + _ :: Int-    , negate (id _) + _ :: Int-    , abs x + _ :: Int-    , abs 0 + _ :: Int-    , abs (id _) + _ :: Int-    , (_ + x) + _ :: Int-    , (_ + 0) + _ :: Int-    , (_ + id _) + _ :: Int-    , (x + _) + _ :: Int-    , (0 + _) + _ :: Int-    , (id _ + _) + _ :: Int-    , _ * _ + _ :: Int-    , f _ + _ :: Int-    , head xs + _ :: Int-    , head [] + _ :: Int-    , head (_:_) + _ :: Int-    , ord c + _ :: Int-    , ord 'a' + _ :: Int-    , y * _ :: Int-    , 1 * _ :: Int-    , id x * _ :: Int-    , id 0 * _ :: Int-    , id (id _) * _ :: Int-    , negate _ * _ :: Int-    , abs _ * _ :: Int-    , (_ + _) * _ :: Int-    , head _ * _ :: Int-    , ord _ * _ :: Int-    , h _ :: Int-    , head zs :: Int-    , head [0,0] :: Int-    , head [1] :: Int-    , head (_:ys) :: Int-    , head [_,0] :: Int-    , head (_:_:xs) :: Int-    , head [_,_] :: Int-    , head (_:_:_:_) :: Int-    , head (_:x:_) :: Int-    , head (_:0:_) :: Int-    , head (_:id _:_) :: Int-    , head (_:tail _) :: Int-    , head (_:(_ ++ _)) :: Int-    , head (x:xs) :: Int-    , head [x] :: Int-    , head (x:_:_) :: Int-    , head (0:xs) :: Int-    , head [0] :: Int-    , head (0:_:_) :: Int-    , head (id _:xs) :: Int-    , head [id _] :: Int-    , head (id _:_:_) :: Int-    , head (y:_) :: Int-    , head (1:_) :: Int-    , head (id x:_) :: Int-    , head (id 0:_) :: Int-    , head (id (id _):_) :: Int-    , head (negate _:_) :: Int-    , head (abs _:_) :: Int-    , head (_ + _:_) :: Int-    , head (head _:_) :: Int-    , head (ord _:_) :: Int-    , head (tail xs) :: Int-    , head (tail []) :: Int-    , head (tail (_:_)) :: Int-    , head (_ ++ xs) :: Int-    , head (_ ++ []) :: Int-    , head (_ ++ (_:_)) :: Int-    , head (xs ++ _) :: Int-    , head ([] ++ _) :: Int-    , head ((_:_) ++ _) :: Int-    , head (sort _) :: Int-    , head (insert _ _) :: Int-    , ord e :: Int-    , ord 'b' :: Int-    , p' :: Bool-    , not r :: Bool-    , not (not q) :: Bool-    , not (not (not p)) :: Bool-    , not (not (not False)) :: Bool-    , not (not (not True)) :: Bool-    , not (not (not (not _))) :: Bool-    , not (not (_ || _)) :: Bool-    , not (_ || p) :: Bool-    , not (_ || False) :: Bool-    , not (_ || True) :: Bool-    , not (_ || not _) :: Bool-    , not (p || _) :: Bool-    , not (False || _) :: Bool-    , not (True || _) :: Bool-    , not (not _ || _) :: Bool-    , not (_ && _) :: Bool-    , not (_ == _) :: Bool-    , not (_ == _) :: Bool-    , not (odd _) :: Bool-    , not (even _) :: Bool-    , not (elem _ _) :: Bool-    , _ || q :: Bool-    , _ || not p :: Bool-    , _ || not False :: Bool-    , _ || not True :: Bool-    , _ || not (not _) :: Bool-    , _ || (_ || _) :: Bool-    , p || p :: Bool-    , p || False :: Bool-    , p || True :: Bool-    , p || not _ :: Bool-    , False || p :: Bool-    , False || False :: Bool-    , False || True :: Bool-    , False || not _ :: Bool-    , True || p :: Bool-    , True || False :: Bool-    , True || True :: Bool-    , True || not _ :: Bool-    , not _ || p :: Bool-    , not _ || False :: Bool-    , not _ || True :: Bool-    , not _ || not _ :: Bool-    , _ && p :: Bool-    , _ && False :: Bool-    , _ && True :: Bool-    , _ && not _ :: Bool-    , q || _ :: Bool-    , not p || _ :: Bool-    , not False || _ :: Bool-    , not True || _ :: Bool-    , not (not _) || _ :: Bool-    , (_ || _) || _ :: Bool-    , p && _ :: Bool-    , False && _ :: Bool-    , True && _ :: Bool-    , not _ && _ :: Bool-    , _ ==> _ :: Bool-    , _ == x :: Bool-    , _ == 0 :: Bool-    , _ == id _ :: Bool-    , x == _ :: Bool-    , 0 == _ :: Bool-    , id _ == _ :: Bool-    , _ == p :: Bool-    , _ == False :: Bool-    , _ == True :: Bool-    , _ == not _ :: Bool-    , p == _ :: Bool-    , False == _ :: Bool-    , True == _ :: Bool-    , not _ == _ :: Bool-    , _ <= _ :: Bool-    , _ <= _ :: Bool-    , odd x :: Bool-    , odd 0 :: Bool-    , odd (id _) :: Bool-    , even x :: Bool-    , even 0 :: Bool-    , even (id _) :: Bool-    , elem _ xs :: Bool-    , elem _ [] :: Bool-    , elem _ (_:_) :: Bool-    , elem x _ :: Bool-    , elem 0 _ :: Bool-    , elem (id _) _ :: Bool-    , c' :: Char-    , 'A' :: Char-    , xs' :: [Int]-    , [0,0,0] :: [Int]-    , [0,1] :: [Int]-    , [1,0] :: [Int]-    , [-1] :: [Int]-    , _:zs :: [Int]-    , [_,0,0] :: [Int]-    , [_,1] :: [Int]-    , _:_:ys :: [Int]-    , [_,_,0] :: [Int]-    , _:_:_:xs :: [Int]-    , [_,_,_] :: [Int]-    , _:_:_:_:_ :: [Int]-    , _:_:x:_ :: [Int]-    , _:_:0:_ :: [Int]-    , _:_:id _:_ :: [Int]-    , _:_:tail _ :: [Int]-    , _:_:(_ ++ _) :: [Int]-    , _:x:xs :: [Int]-    , [_,x] :: [Int]-    , _:x:_:_ :: [Int]-    , _:0:xs :: [Int]-    , [_,0] :: [Int]-    , _:0:_:_ :: [Int]-    , _:id _:xs :: [Int]-    , [_,id _] :: [Int]-    , _:id _:_:_ :: [Int]-    , _:y:_ :: [Int]-    , _:1:_ :: [Int]-    , _:id x:_ :: [Int]-    , _:id 0:_ :: [Int]-    , _:id (id _):_ :: [Int]-    , _:negate _:_ :: [Int]-    , _:abs _:_ :: [Int]-    , _:_ + _:_ :: [Int]-    , _:head _:_ :: [Int]-    , _:ord _:_ :: [Int]-    , _:tail xs :: [Int]-    , _:tail [] :: [Int]-    , _:tail (_:_) :: [Int]-    , _:(_ ++ xs) :: [Int]-    , _:(_ ++ []) :: [Int]-    , _:(_ ++ (_:_)) :: [Int]-    , _:(xs ++ _) :: [Int]-    , _:([] ++ _) :: [Int]-    , _:((_:_) ++ _) :: [Int]-    , _:sort _ :: [Int]-    , _:insert _ _ :: [Int]-    , x:ys :: [Int]-    , [x,0] :: [Int]-    , x:_:xs :: [Int]-    , [x,_] :: [Int]-    , x:_:_:_ :: [Int]-    , x:x:_ :: [Int]-    , x:0:_ :: [Int]-    , x:id _:_ :: [Int]-    , x:tail _ :: [Int]-    , x:(_ ++ _) :: [Int]-    , 0:ys :: [Int]-    , [0,0] :: [Int]-    , 0:_:xs :: [Int]-    , [0,_] :: [Int]-    , 0:_:_:_ :: [Int]-    , 0:x:_ :: [Int]-    , 0:0:_ :: [Int]-    , 0:id _:_ :: [Int]-    , 0:tail _ :: [Int]-    , 0:(_ ++ _) :: [Int]-    , id _:ys :: [Int]-    , [id _,0] :: [Int]-    , id _:_:xs :: [Int]-    , [id _,_] :: [Int]-    , id _:_:_:_ :: [Int]-    , id _:x:_ :: [Int]-    , id _:0:_ :: [Int]-    , id _:id _:_ :: [Int]-    , id _:tail _ :: [Int]-    , id _:(_ ++ _) :: [Int]-    , y:xs :: [Int]-    , [y] :: [Int]-    , y:_:_ :: [Int]-    , 1:xs :: [Int]-    , [1] :: [Int]-    , 1:_:_ :: [Int]-    , id x:xs :: [Int]-    , [id x] :: [Int]-    , id x:_:_ :: [Int]-    , id 0:xs :: [Int]-    , [id 0] :: [Int]-    , id 0:_:_ :: [Int]-    , id (id _):xs :: [Int]-    , [id (id _)] :: [Int]-    , id (id _):_:_ :: [Int]-    , negate _:xs :: [Int]-    , [negate _] :: [Int]-    , negate _:_:_ :: [Int]-    , abs _:xs :: [Int]-    , [abs _] :: [Int]-    , abs _:_:_ :: [Int]-    , _ + _:xs :: [Int]-    , [_ + _] :: [Int]-    , _ + _:_:_ :: [Int]-    , head _:xs :: [Int]-    , [head _] :: [Int]-    , head _:_:_ :: [Int]-    , ord _:xs :: [Int]-    , [ord _] :: [Int]-    , ord _:_:_ :: [Int]-    , z:_ :: [Int]-    , (-1):_ :: [Int]-    , id y:_ :: [Int]-    , id 1:_ :: [Int]-    , id (id x):_ :: [Int]-    , id (id 0):_ :: [Int]-    , id (id (id _)):_ :: [Int]-    , id (negate _):_ :: [Int]-    , id (abs _):_ :: [Int]-    , id (_ + _):_ :: [Int]-    , id (head _):_ :: [Int]-    , id (ord _):_ :: [Int]-    , negate x:_ :: [Int]-    , negate 0:_ :: [Int]-    , negate (id _):_ :: [Int]-    , abs x:_ :: [Int]-    , abs 0:_ :: [Int]-    , abs (id _):_ :: [Int]-    , _ + x:_ :: [Int]-    , _ + 0:_ :: [Int]-    , _ + id _:_ :: [Int]-    , x + _:_ :: [Int]-    , 0 + _:_ :: [Int]-    , id _ + _:_ :: [Int]-    , _ * _:_ :: [Int]-    , f _:_ :: [Int]-    , head xs:_ :: [Int]-    , head []:_ :: [Int]-    , head (_:_):_ :: [Int]-    , ord c:_ :: [Int]-    , ord 'a':_ :: [Int]-    , tail ys :: [Int]-    , tail [0] :: [Int]-    , tail (_:xs) :: [Int]-    , tail [_] :: [Int]-    , tail (_:_:_) :: [Int]-    , tail (x:_) :: [Int]-    , tail (0:_) :: [Int]-    , tail (id _:_) :: [Int]-    , tail (tail _) :: [Int]-    , tail (_ ++ _) :: [Int]-    , _ ++ ys :: [Int]-    , _ ++ [0] :: [Int]-    , _ ++ (_:xs) :: [Int]-    , _ ++ [_] :: [Int]-    , _ ++ (_:_:_) :: [Int]-    , _ ++ (x:_) :: [Int]-    , _ ++ (0:_) :: [Int]-    , _ ++ (id _:_) :: [Int]-    , _ ++ tail _ :: [Int]-    , _ ++ (_ ++ _) :: [Int]-    , xs ++ xs :: [Int]-    , xs ++ [] :: [Int]-    , xs ++ (_:_) :: [Int]-    , [] ++ xs :: [Int]-    , [] ++ [] :: [Int]-    , [] ++ (_:_) :: [Int]-    , (_:_) ++ xs :: [Int]-    , (_:_) ++ [] :: [Int]-    , (_:_) ++ (_:_) :: [Int]-    , ys ++ _ :: [Int]-    , [0] ++ _ :: [Int]-    , (_:xs) ++ _ :: [Int]-    , [_] ++ _ :: [Int]-    , (_:_:_) ++ _ :: [Int]-    , (x:_) ++ _ :: [Int]-    , (0:_) ++ _ :: [Int]-    , (id _:_) ++ _ :: [Int]-    , tail _ ++ _ :: [Int]-    , (_ ++ _) ++ _ :: [Int]-    , sort xs :: [Int]-    , sort [] :: [Int]-    , sort (_:_) :: [Int]-    , insert _ xs :: [Int]-    , insert _ [] :: [Int]-    , insert _ (_:_) :: [Int]-    , insert x _ :: [Int]-    , insert 0 _ :: [Int]-    , insert (id _) _ :: [Int]-    , (y +) :: Int -> Int-    , (1 +) :: Int -> Int-    , (id x +) :: Int -> Int-    , (id 0 +) :: Int -> Int-    , (id (id _) +) :: Int -> Int-    , (negate _ +) :: Int -> Int-    , (abs _ +) :: Int -> Int-    , ((_ + _) +) :: Int -> Int-    , (head _ +) :: Int -> Int-    , (ord _ +) :: Int -> Int-    , (x *) :: Int -> Int-    , (0 *) :: Int -> Int-    , (id _ *) :: Int -> Int-    , g :: Int -> Int-    , (p ||) :: Bool -> Bool-    , (False ||) :: Bool -> Bool-    , (True ||) :: Bool -> Bool-    , (not _ ||) :: Bool -> Bool-    , (_ &&) :: Bool -> Bool-    , (==>) :: Bool -> Bool -> Bool-    ]-  , [ z' :: Int-    , 3 :: Int-    , id y' :: Int-    , id (-2) :: Int-    , id (id x') :: Int-    , id (id 2) :: Int-    , id (id (id z)) :: Int-    , id (id (id (-1))) :: Int-    , id (id (id (id y))) :: Int-    , id (id (id (id 1))) :: Int-    , id (id (id (id (id x)))) :: Int-    , id (id (id (id (id 0)))) :: Int-    , id (id (id (id (id (id _))))) :: Int-    , id (id (id (id (negate _)))) :: Int-    , id (id (id (id (abs _)))) :: Int-    , id (id (id (id (_ + _)))) :: Int-    , id (id (id (id (head _)))) :: Int-    , id (id (id (id (ord _)))) :: Int-    , id (id (id (negate x))) :: Int-    , id (id (id (negate 0))) :: Int-    , id (id (id (negate (id _)))) :: Int-    , id (id (id (abs x))) :: Int-    , id (id (id (abs 0))) :: Int-    , id (id (id (abs (id _)))) :: Int-    , id (id (id (_ + x))) :: Int-    , id (id (id (_ + 0))) :: Int-    , id (id (id (_ + id _))) :: Int-    , id (id (id (x + _))) :: Int-    , id (id (id (0 + _))) :: Int-    , id (id (id (id _ + _))) :: Int-    , id (id (id (_ * _))) :: Int-    , id (id (id (f _))) :: Int-    , id (id (id (head xs))) :: Int-    , id (id (id (head []))) :: Int-    , id (id (id (head (_:_)))) :: Int-    , id (id (id (ord c))) :: Int-    , id (id (id (ord 'a'))) :: Int-    , id (id (negate y)) :: Int-    , id (id (negate 1)) :: Int-    , id (id (negate (id x))) :: Int-    , id (id (negate (id 0))) :: Int-    , id (id (negate (id (id _)))) :: Int-    , id (id (negate (negate _))) :: Int-    , id (id (negate (abs _))) :: Int-    , id (id (negate (_ + _))) :: Int-    , id (id (negate (head _))) :: Int-    , id (id (negate (ord _))) :: Int-    , id (id (abs y)) :: Int-    , id (id (abs 1)) :: Int-    , id (id (abs (id x))) :: Int-    , id (id (abs (id 0))) :: Int-    , id (id (abs (id (id _)))) :: Int-    , id (id (abs (negate _))) :: Int-    , id (id (abs (abs _))) :: Int-    , id (id (abs (_ + _))) :: Int-    , id (id (abs (head _))) :: Int-    , id (id (abs (ord _))) :: Int-    , id (id (_ + y)) :: Int-    , id (id (_ + 1)) :: Int-    , id (id (_ + id x)) :: Int-    , id (id (_ + id 0)) :: Int-    , id (id (_ + id (id _))) :: Int-    , id (id (_ + negate _)) :: Int-    , id (id (_ + abs _)) :: Int-    , id (id (_ + (_ + _))) :: Int-    , id (id (_ + head _)) :: Int-    , id (id (_ + ord _)) :: Int-    , id (id (x + x)) :: Int-    , id (id (x + 0)) :: Int-    , id (id (x + id _)) :: Int-    , id (id (0 + x)) :: Int-    , id (id (0 + 0)) :: Int-    , id (id (0 + id _)) :: Int-    , id (id (id _ + x)) :: Int-    , id (id (id _ + 0)) :: Int-    , id (id (id _ + id _)) :: Int-    , id (id (_ * x)) :: Int-    , id (id (_ * 0)) :: Int-    , id (id (_ * id _)) :: Int-    , id (id (f x)) :: Int-    , id (id (f 0)) :: Int-    , id (id (f (id _))) :: Int-    , id (id (y + _)) :: Int-    , id (id (1 + _)) :: Int-    , id (id (id x + _)) :: Int-    , id (id (id 0 + _)) :: Int-    , id (id (id (id _) + _)) :: Int-    , id (id (negate _ + _)) :: Int-    , id (id (abs _ + _)) :: Int-    , id (id ((_ + _) + _)) :: Int-    , id (id (head _ + _)) :: Int-    , id (id (ord _ + _)) :: Int-    , id (id (x * _)) :: Int-    , id (id (0 * _)) :: Int-    , id (id (id _ * _)) :: Int-    , id (id (g _)) :: Int-    , id (id (head ys)) :: Int-    , id (id (head [0])) :: Int-    , id (id (head (_:xs))) :: Int-    , id (id (head [_])) :: Int-    , id (id (head (_:_:_))) :: Int-    , id (id (head (x:_))) :: Int-    , id (id (head (0:_))) :: Int-    , id (id (head (id _:_))) :: Int-    , id (id (head (tail _))) :: Int-    , id (id (head (_ ++ _))) :: Int-    , id (id (ord d)) :: Int-    , id (id (ord ' ')) :: Int-    , id (negate z) :: Int-    , id (negate (-1)) :: Int-    , id (negate (id y)) :: Int-    , id (negate (id 1)) :: Int-    , id (negate (id (id x))) :: Int-    , id (negate (id (id 0))) :: Int-    , id (negate (id (id (id _)))) :: Int-    , id (negate (id (negate _))) :: Int-    , id (negate (id (abs _))) :: Int-    , id (negate (id (_ + _))) :: Int-    , id (negate (id (head _))) :: Int-    , id (negate (id (ord _))) :: Int-    , id (negate (negate x)) :: Int-    , id (negate (negate 0)) :: Int-    , id (negate (negate (id _))) :: Int-    , id (negate (abs x)) :: Int-    , id (negate (abs 0)) :: Int-    , id (negate (abs (id _))) :: Int-    , id (negate (_ + x)) :: Int-    , id (negate (_ + 0)) :: Int-    , id (negate (_ + id _)) :: Int-    , id (negate (x + _)) :: Int-    , id (negate (0 + _)) :: Int-    , id (negate (id _ + _)) :: Int-    , id (negate (_ * _)) :: Int-    , id (negate (f _)) :: Int-    , id (negate (head xs)) :: Int-    , id (negate (head [])) :: Int-    , id (negate (head (_:_))) :: Int-    , id (negate (ord c)) :: Int-    , id (negate (ord 'a')) :: Int-    , id (abs z) :: Int-    , id (abs (-1)) :: Int-    , id (abs (id y)) :: Int-    , id (abs (id 1)) :: Int-    , id (abs (id (id x))) :: Int-    , id (abs (id (id 0))) :: Int-    , id (abs (id (id (id _)))) :: Int-    , id (abs (id (negate _))) :: Int-    , id (abs (id (abs _))) :: Int-    , id (abs (id (_ + _))) :: Int-    , id (abs (id (head _))) :: Int-    , id (abs (id (ord _))) :: Int-    , id (abs (negate x)) :: Int-    , id (abs (negate 0)) :: Int-    , id (abs (negate (id _))) :: Int-    , id (abs (abs x)) :: Int-    , id (abs (abs 0)) :: Int-    , id (abs (abs (id _))) :: Int-    , id (abs (_ + x)) :: Int-    , id (abs (_ + 0)) :: Int-    , id (abs (_ + id _)) :: Int-    , id (abs (x + _)) :: Int-    , id (abs (0 + _)) :: Int-    , id (abs (id _ + _)) :: Int-    , id (abs (_ * _)) :: Int-    , id (abs (f _)) :: Int-    , id (abs (head xs)) :: Int-    , id (abs (head [])) :: Int-    , id (abs (head (_:_))) :: Int-    , id (abs (ord c)) :: Int-    , id (abs (ord 'a')) :: Int-    , id (_ + z) :: Int-    , id (_ + (-1)) :: Int-    , id (_ + id y) :: Int-    , id (_ + id 1) :: Int-    , id (_ + id (id x)) :: Int-    , id (_ + id (id 0)) :: Int-    , id (_ + id (id (id _))) :: Int-    , id (_ + id (negate _)) :: Int-    , id (_ + id (abs _)) :: Int-    , id (_ + id (_ + _)) :: Int-    , id (_ + id (head _)) :: Int-    , id (_ + id (ord _)) :: Int-    , id (_ + negate x) :: Int-    , id (_ + negate 0) :: Int-    , id (_ + negate (id _)) :: Int-    , id (_ + abs x) :: Int-    , id (_ + abs 0) :: Int-    , id (_ + abs (id _)) :: Int-    , id (_ + (_ + x)) :: Int-    , id (_ + (_ + 0)) :: Int-    , id (_ + (_ + id _)) :: Int-    , id (_ + (x + _)) :: Int-    , id (_ + (0 + _)) :: Int-    , id (_ + (id _ + _)) :: Int-    , id (_ + _ * _) :: Int-    , id (_ + f _) :: Int-    , id (_ + head xs) :: Int-    , id (_ + head []) :: Int-    , id (_ + head (_:_)) :: Int-    , id (_ + ord c) :: Int-    , id (_ + ord 'a') :: Int-    , id (x + y) :: Int-    , id (x + 1) :: Int-    , id (x + id x) :: Int-    , id (x + id 0) :: Int-    , id (x + id (id _)) :: Int-    , id (x + negate _) :: Int-    , id (x + abs _) :: Int-    , id (x + (_ + _)) :: Int-    , id (x + head _) :: Int-    , id (x + ord _) :: Int-    , id (0 + y) :: Int-    , id (0 + 1) :: Int-    , id (0 + id x) :: Int-    , id (0 + id 0) :: Int-    , id (0 + id (id _)) :: Int-    , id (0 + negate _) :: Int-    , id (0 + abs _) :: Int-    , id (0 + (_ + _)) :: Int-    , id (0 + head _) :: Int-    , id (0 + ord _) :: Int-    , id (id _ + y) :: Int-    , id (id _ + 1) :: Int-    , id (id _ + id x) :: Int-    , id (id _ + id 0) :: Int-    , id (id _ + id (id _)) :: Int-    , id (id _ + negate _) :: Int-    , id (id _ + abs _) :: Int-    , id (id _ + (_ + _)) :: Int-    , id (id _ + head _) :: Int-    , id (id _ + ord _) :: Int-    , id (_ * y) :: Int-    , id (_ * 1) :: Int-    , id (_ * id x) :: Int-    , id (_ * id 0) :: Int-    , id (_ * id (id _)) :: Int-    , id (_ * negate _) :: Int-    , id (_ * abs _) :: Int-    , id (_ * (_ + _)) :: Int-    , id (_ * head _) :: Int-    , id (_ * ord _) :: Int-    , id (f y) :: Int-    , id (f 1) :: Int-    , id (f (id x)) :: Int-    , id (f (id 0)) :: Int-    , id (f (id (id _))) :: Int-    , id (f (negate _)) :: Int-    , id (f (abs _)) :: Int-    , id (f (_ + _)) :: Int-    , id (f (head _)) :: Int-    , id (f (ord _)) :: Int-    , id (y + x) :: Int-    , id (y + 0) :: Int-    , id (y + id _) :: Int-    , id (1 + x) :: Int-    , id (1 + 0) :: Int-    , id (1 + id _) :: Int-    , id (id x + x) :: Int-    , id (id x + 0) :: Int-    , id (id x + id _) :: Int-    , id (id 0 + x) :: Int-    , id (id 0 + 0) :: Int-    , id (id 0 + id _) :: Int-    , id (id (id _) + x) :: Int-    , id (id (id _) + 0) :: Int-    , id (id (id _) + id _) :: Int-    , id (negate _ + x) :: Int-    , id (negate _ + 0) :: Int-    , id (negate _ + id _) :: Int-    , id (abs _ + x) :: Int-    , id (abs _ + 0) :: Int-    , id (abs _ + id _) :: Int-    , id ((_ + _) + x) :: Int-    , id ((_ + _) + 0) :: Int-    , id ((_ + _) + id _) :: Int-    , id (head _ + x) :: Int-    , id (head _ + 0) :: Int-    , id (head _ + id _) :: Int-    , id (ord _ + x) :: Int-    , id (ord _ + 0) :: Int-    , id (ord _ + id _) :: Int-    , id (x * x) :: Int-    , id (x * 0) :: Int-    , id (x * id _) :: Int-    , id (0 * x) :: Int-    , id (0 * 0) :: Int-    , id (0 * id _) :: Int-    , id (id _ * x) :: Int-    , id (id _ * 0) :: Int-    , id (id _ * id _) :: Int-    , id (g x) :: Int-    , id (g 0) :: Int-    , id (g (id _)) :: Int-    , id (z + _) :: Int-    , id ((-1) + _) :: Int-    , id (id y + _) :: Int-    , id (id 1 + _) :: Int-    , id (id (id x) + _) :: Int-    , id (id (id 0) + _) :: Int-    , id (id (id (id _)) + _) :: Int-    , id (id (negate _) + _) :: Int-    , id (id (abs _) + _) :: Int-    , id (id (_ + _) + _) :: Int-    , id (id (head _) + _) :: Int-    , id (id (ord _) + _) :: Int-    , id (negate x + _) :: Int-    , id (negate 0 + _) :: Int-    , id (negate (id _) + _) :: Int-    , id (abs x + _) :: Int-    , id (abs 0 + _) :: Int-    , id (abs (id _) + _) :: Int-    , id ((_ + x) + _) :: Int-    , id ((_ + 0) + _) :: Int-    , id ((_ + id _) + _) :: Int-    , id ((x + _) + _) :: Int-    , id ((0 + _) + _) :: Int-    , id ((id _ + _) + _) :: Int-    , id (_ * _ + _) :: Int-    , id (f _ + _) :: Int-    , id (head xs + _) :: Int-    , id (head [] + _) :: Int-    , id (head (_:_) + _) :: Int-    , id (ord c + _) :: Int-    , id (ord 'a' + _) :: Int-    , id (y * _) :: Int-    , id (1 * _) :: Int-    , id (id x * _) :: Int-    , id (id 0 * _) :: Int-    , id (id (id _) * _) :: Int-    , id (negate _ * _) :: Int-    , id (abs _ * _) :: Int-    , id ((_ + _) * _) :: Int-    , id (head _ * _) :: Int-    , id (ord _ * _) :: Int-    , id (h _) :: Int-    , id (head zs) :: Int-    , id (head [0,0]) :: Int-    , id (head [1]) :: Int-    , id (head (_:ys)) :: Int-    , id (head [_,0]) :: Int-    , id (head (_:_:xs)) :: Int-    , id (head [_,_]) :: Int-    , id (head (_:_:_:_)) :: Int-    , id (head (_:x:_)) :: Int-    , id (head (_:0:_)) :: Int-    , id (head (_:id _:_)) :: Int-    , id (head (_:tail _)) :: Int-    , id (head (_:(_ ++ _))) :: Int-    , id (head (x:xs)) :: Int-    , id (head [x]) :: Int-    , id (head (x:_:_)) :: Int-    , id (head (0:xs)) :: Int-    , id (head [0]) :: Int-    , id (head (0:_:_)) :: Int-    , id (head (id _:xs)) :: Int-    , id (head [id _]) :: Int-    , id (head (id _:_:_)) :: Int-    , id (head (y:_)) :: Int-    , id (head (1:_)) :: Int-    , id (head (id x:_)) :: Int-    , id (head (id 0:_)) :: Int-    , id (head (id (id _):_)) :: Int-    , id (head (negate _:_)) :: Int-    , id (head (abs _:_)) :: Int-    , id (head (_ + _:_)) :: Int-    , id (head (head _:_)) :: Int-    , id (head (ord _:_)) :: Int-    , id (head (tail xs)) :: Int-    , id (head (tail [])) :: Int-    , id (head (tail (_:_))) :: Int-    , id (head (_ ++ xs)) :: Int-    , id (head (_ ++ [])) :: Int-    , id (head (_ ++ (_:_))) :: Int-    , id (head (xs ++ _)) :: Int-    , id (head ([] ++ _)) :: Int-    , id (head ((_:_) ++ _)) :: Int-    , id (head (sort _)) :: Int-    , id (head (insert _ _)) :: Int-    , id (ord e) :: Int-    , id (ord 'b') :: Int-    , negate x' :: Int-    , negate 2 :: Int-    , negate (id z) :: Int-    , negate (id (-1)) :: Int-    , negate (id (id y)) :: Int-    , negate (id (id 1)) :: Int-    , negate (id (id (id x))) :: Int-    , negate (id (id (id 0))) :: Int-    , negate (id (id (id (id _)))) :: Int-    , negate (id (id (negate _))) :: Int-    , negate (id (id (abs _))) :: Int-    , negate (id (id (_ + _))) :: Int-    , negate (id (id (head _))) :: Int-    , negate (id (id (ord _))) :: Int-    , negate (id (negate x)) :: Int-    , negate (id (negate 0)) :: Int-    , negate (id (negate (id _))) :: Int-    , negate (id (abs x)) :: Int-    , negate (id (abs 0)) :: Int-    , negate (id (abs (id _))) :: Int-    , negate (id (_ + x)) :: Int-    , negate (id (_ + 0)) :: Int-    , negate (id (_ + id _)) :: Int-    , negate (id (x + _)) :: Int-    , negate (id (0 + _)) :: Int-    , negate (id (id _ + _)) :: Int-    , negate (id (_ * _)) :: Int-    , negate (id (f _)) :: Int-    , negate (id (head xs)) :: Int-    , negate (id (head [])) :: Int-    , negate (id (head (_:_))) :: Int-    , negate (id (ord c)) :: Int-    , negate (id (ord 'a')) :: Int-    , negate (negate y) :: Int-    , negate (negate 1) :: Int-    , negate (negate (id x)) :: Int-    , negate (negate (id 0)) :: Int-    , negate (negate (id (id _))) :: Int-    , negate (negate (negate _)) :: Int-    , negate (negate (abs _)) :: Int-    , negate (negate (_ + _)) :: Int-    , negate (negate (head _)) :: Int-    , negate (negate (ord _)) :: Int-    , negate (abs y) :: Int-    , negate (abs 1) :: Int-    , negate (abs (id x)) :: Int-    , negate (abs (id 0)) :: Int-    , negate (abs (id (id _))) :: Int-    , negate (abs (negate _)) :: Int-    , negate (abs (abs _)) :: Int-    , negate (abs (_ + _)) :: Int-    , negate (abs (head _)) :: Int-    , negate (abs (ord _)) :: Int-    , negate (_ + y) :: Int-    , negate (_ + 1) :: Int-    , negate (_ + id x) :: Int-    , negate (_ + id 0) :: Int-    , negate (_ + id (id _)) :: Int-    , negate (_ + negate _) :: Int-    , negate (_ + abs _) :: Int-    , negate (_ + (_ + _)) :: Int-    , negate (_ + head _) :: Int-    , negate (_ + ord _) :: Int-    , negate (x + x) :: Int-    , negate (x + 0) :: Int-    , negate (x + id _) :: Int-    , negate (0 + x) :: Int-    , negate (0 + 0) :: Int-    , negate (0 + id _) :: Int-    , negate (id _ + x) :: Int-    , negate (id _ + 0) :: Int-    , negate (id _ + id _) :: Int-    , negate (_ * x) :: Int-    , negate (_ * 0) :: Int-    , negate (_ * id _) :: Int-    , negate (f x) :: Int-    , negate (f 0) :: Int-    , negate (f (id _)) :: Int-    , negate (y + _) :: Int-    , negate (1 + _) :: Int-    , negate (id x + _) :: Int-    , negate (id 0 + _) :: Int-    , negate (id (id _) + _) :: Int-    , negate (negate _ + _) :: Int-    , negate (abs _ + _) :: Int-    , negate ((_ + _) + _) :: Int-    , negate (head _ + _) :: Int-    , negate (ord _ + _) :: Int-    , negate (x * _) :: Int-    , negate (0 * _) :: Int-    , negate (id _ * _) :: Int-    , negate (g _) :: Int-    , negate (head ys) :: Int-    , negate (head [0]) :: Int-    , negate (head (_:xs)) :: Int-    , negate (head [_]) :: Int-    , negate (head (_:_:_)) :: Int-    , negate (head (x:_)) :: Int-    , negate (head (0:_)) :: Int-    , negate (head (id _:_)) :: Int-    , negate (head (tail _)) :: Int-    , negate (head (_ ++ _)) :: Int-    , negate (ord d) :: Int-    , negate (ord ' ') :: Int-    , abs x' :: Int-    , abs 2 :: Int-    , abs (id z) :: Int-    , abs (id (-1)) :: Int-    , abs (id (id y)) :: Int-    , abs (id (id 1)) :: Int-    , abs (id (id (id x))) :: Int-    , abs (id (id (id 0))) :: Int-    , abs (id (id (id (id _)))) :: Int-    , abs (id (id (negate _))) :: Int-    , abs (id (id (abs _))) :: Int-    , abs (id (id (_ + _))) :: Int-    , abs (id (id (head _))) :: Int-    , abs (id (id (ord _))) :: Int-    , abs (id (negate x)) :: Int-    , abs (id (negate 0)) :: Int-    , abs (id (negate (id _))) :: Int-    , abs (id (abs x)) :: Int-    , abs (id (abs 0)) :: Int-    , abs (id (abs (id _))) :: Int-    , abs (id (_ + x)) :: Int-    , abs (id (_ + 0)) :: Int-    , abs (id (_ + id _)) :: Int-    , abs (id (x + _)) :: Int-    , abs (id (0 + _)) :: Int-    , abs (id (id _ + _)) :: Int-    , abs (id (_ * _)) :: Int-    , abs (id (f _)) :: Int-    , abs (id (head xs)) :: Int-    , abs (id (head [])) :: Int-    , abs (id (head (_:_))) :: Int-    , abs (id (ord c)) :: Int-    , abs (id (ord 'a')) :: Int-    , abs (negate y) :: Int-    , abs (negate 1) :: Int-    , abs (negate (id x)) :: Int-    , abs (negate (id 0)) :: Int-    , abs (negate (id (id _))) :: Int-    , abs (negate (negate _)) :: Int-    , abs (negate (abs _)) :: Int-    , abs (negate (_ + _)) :: Int-    , abs (negate (head _)) :: Int-    , abs (negate (ord _)) :: Int-    , abs (abs y) :: Int-    , abs (abs 1) :: Int-    , abs (abs (id x)) :: Int-    , abs (abs (id 0)) :: Int-    , abs (abs (id (id _))) :: Int-    , abs (abs (negate _)) :: Int-    , abs (abs (abs _)) :: Int-    , abs (abs (_ + _)) :: Int-    , abs (abs (head _)) :: Int-    , abs (abs (ord _)) :: Int-    , abs (_ + y) :: Int-    , abs (_ + 1) :: Int-    , abs (_ + id x) :: Int-    , abs (_ + id 0) :: Int-    , abs (_ + id (id _)) :: Int-    , abs (_ + negate _) :: Int-    , abs (_ + abs _) :: Int-    , abs (_ + (_ + _)) :: Int-    , abs (_ + head _) :: Int-    , abs (_ + ord _) :: Int-    , abs (x + x) :: Int-    , abs (x + 0) :: Int-    , abs (x + id _) :: Int-    , abs (0 + x) :: Int-    , abs (0 + 0) :: Int-    , abs (0 + id _) :: Int-    , abs (id _ + x) :: Int-    , abs (id _ + 0) :: Int-    , abs (id _ + id _) :: Int-    , abs (_ * x) :: Int-    , abs (_ * 0) :: Int-    , abs (_ * id _) :: Int-    , abs (f x) :: Int-    , abs (f 0) :: Int-    , abs (f (id _)) :: Int-    , abs (y + _) :: Int-    , abs (1 + _) :: Int-    , abs (id x + _) :: Int-    , abs (id 0 + _) :: Int-    , abs (id (id _) + _) :: Int-    , abs (negate _ + _) :: Int-    , abs (abs _ + _) :: Int-    , abs ((_ + _) + _) :: Int-    , abs (head _ + _) :: Int-    , abs (ord _ + _) :: Int-    , abs (x * _) :: Int-    , abs (0 * _) :: Int-    , abs (id _ * _) :: Int-    , abs (g _) :: Int-    , abs (head ys) :: Int-    , abs (head [0]) :: Int-    , abs (head (_:xs)) :: Int-    , abs (head [_]) :: Int-    , abs (head (_:_:_)) :: Int-    , abs (head (x:_)) :: Int-    , abs (head (0:_)) :: Int-    , abs (head (id _:_)) :: Int-    , abs (head (tail _)) :: Int-    , abs (head (_ ++ _)) :: Int-    , abs (ord d) :: Int-    , abs (ord ' ') :: Int-    , _ + x' :: Int-    , _ + 2 :: Int-    , _ + id z :: Int-    , _ + id (-1) :: Int-    , _ + id (id y) :: Int-    , _ + id (id 1) :: Int-    , _ + id (id (id x)) :: Int-    , _ + id (id (id 0)) :: Int-    , _ + id (id (id (id _))) :: Int-    , _ + id (id (negate _)) :: Int-    , _ + id (id (abs _)) :: Int-    , _ + id (id (_ + _)) :: Int-    , _ + id (id (head _)) :: Int-    , _ + id (id (ord _)) :: Int-    , _ + id (negate x) :: Int-    , _ + id (negate 0) :: Int-    , _ + id (negate (id _)) :: Int-    , _ + id (abs x) :: Int-    , _ + id (abs 0) :: Int-    , _ + id (abs (id _)) :: Int-    , _ + id (_ + x) :: Int-    , _ + id (_ + 0) :: Int-    , _ + id (_ + id _) :: Int-    , _ + id (x + _) :: Int-    , _ + id (0 + _) :: Int-    , _ + id (id _ + _) :: Int-    , _ + id (_ * _) :: Int-    , _ + id (f _) :: Int-    , _ + id (head xs) :: Int-    , _ + id (head []) :: Int-    , _ + id (head (_:_)) :: Int-    , _ + id (ord c) :: Int-    , _ + id (ord 'a') :: Int-    , _ + negate y :: Int-    , _ + negate 1 :: Int-    , _ + negate (id x) :: Int-    , _ + negate (id 0) :: Int-    , _ + negate (id (id _)) :: Int-    , _ + negate (negate _) :: Int-    , _ + negate (abs _) :: Int-    , _ + negate (_ + _) :: Int-    , _ + negate (head _) :: Int-    , _ + negate (ord _) :: Int-    , _ + abs y :: Int-    , _ + abs 1 :: Int-    , _ + abs (id x) :: Int-    , _ + abs (id 0) :: Int-    , _ + abs (id (id _)) :: Int-    , _ + abs (negate _) :: Int-    , _ + abs (abs _) :: Int-    , _ + abs (_ + _) :: Int-    , _ + abs (head _) :: Int-    , _ + abs (ord _) :: Int-    , _ + (_ + y) :: Int-    , _ + (_ + 1) :: Int-    , _ + (_ + id x) :: Int-    , _ + (_ + id 0) :: Int-    , _ + (_ + id (id _)) :: Int-    , _ + (_ + negate _) :: Int-    , _ + (_ + abs _) :: Int-    , _ + (_ + (_ + _)) :: Int-    , _ + (_ + head _) :: Int-    , _ + (_ + ord _) :: Int-    , _ + (x + x) :: Int-    , _ + (x + 0) :: Int-    , _ + (x + id _) :: Int-    , _ + (0 + x) :: Int-    , _ + (0 + 0) :: Int-    , _ + (0 + id _) :: Int-    , _ + (id _ + x) :: Int-    , _ + (id _ + 0) :: Int-    , _ + (id _ + id _) :: Int-    , _ + _ * x :: Int-    , _ + _ * 0 :: Int-    , _ + _ * id _ :: Int-    , _ + f x :: Int-    , _ + f 0 :: Int-    , _ + f (id _) :: Int-    , _ + (y + _) :: Int-    , _ + (1 + _) :: Int-    , _ + (id x + _) :: Int-    , _ + (id 0 + _) :: Int-    , _ + (id (id _) + _) :: Int-    , _ + (negate _ + _) :: Int-    , _ + (abs _ + _) :: Int-    , _ + ((_ + _) + _) :: Int-    , _ + (head _ + _) :: Int-    , _ + (ord _ + _) :: Int-    , _ + x * _ :: Int-    , _ + 0 * _ :: Int-    , _ + id _ * _ :: Int-    , _ + g _ :: Int-    , _ + head ys :: Int-    , _ + head [0] :: Int-    , _ + head (_:xs) :: Int-    , _ + head [_] :: Int-    , _ + head (_:_:_) :: Int-    , _ + head (x:_) :: Int-    , _ + head (0:_) :: Int-    , _ + head (id _:_) :: Int-    , _ + head (tail _) :: Int-    , _ + head (_ ++ _) :: Int-    , _ + ord d :: Int-    , _ + ord ' ' :: Int-    , x + z :: Int-    , x + (-1) :: Int-    , x + id y :: Int-    , x + id 1 :: Int-    , x + id (id x) :: Int-    , x + id (id 0) :: Int-    , x + id (id (id _)) :: Int-    , x + id (negate _) :: Int-    , x + id (abs _) :: Int-    , x + id (_ + _) :: Int-    , x + id (head _) :: Int-    , x + id (ord _) :: Int-    , x + negate x :: Int-    , x + negate 0 :: Int-    , x + negate (id _) :: Int-    , x + abs x :: Int-    , x + abs 0 :: Int-    , x + abs (id _) :: Int-    , x + (_ + x) :: Int-    , x + (_ + 0) :: Int-    , x + (_ + id _) :: Int-    , x + (x + _) :: Int-    , x + (0 + _) :: Int-    , x + (id _ + _) :: Int-    , x + _ * _ :: Int-    , x + f _ :: Int-    , x + head xs :: Int-    , x + head [] :: Int-    , x + head (_:_) :: Int-    , x + ord c :: Int-    , x + ord 'a' :: Int-    , 0 + z :: Int-    , 0 + (-1) :: Int-    , 0 + id y :: Int-    , 0 + id 1 :: Int-    , 0 + id (id x) :: Int-    , 0 + id (id 0) :: Int-    , 0 + id (id (id _)) :: Int-    , 0 + id (negate _) :: Int-    , 0 + id (abs _) :: Int-    , 0 + id (_ + _) :: Int-    , 0 + id (head _) :: Int-    , 0 + id (ord _) :: Int-    , 0 + negate x :: Int-    , 0 + negate 0 :: Int-    , 0 + negate (id _) :: Int-    , 0 + abs x :: Int-    , 0 + abs 0 :: Int-    , 0 + abs (id _) :: Int-    , 0 + (_ + x) :: Int-    , 0 + (_ + 0) :: Int-    , 0 + (_ + id _) :: Int-    , 0 + (x + _) :: Int-    , 0 + (0 + _) :: Int-    , 0 + (id _ + _) :: Int-    , 0 + _ * _ :: Int-    , 0 + f _ :: Int-    , 0 + head xs :: Int-    , 0 + head [] :: Int-    , 0 + head (_:_) :: Int-    , 0 + ord c :: Int-    , 0 + ord 'a' :: Int-    , id _ + z :: Int-    , id _ + (-1) :: Int-    , id _ + id y :: Int-    , id _ + id 1 :: Int-    , id _ + id (id x) :: Int-    , id _ + id (id 0) :: Int-    , id _ + id (id (id _)) :: Int-    , id _ + id (negate _) :: Int-    , id _ + id (abs _) :: Int-    , id _ + id (_ + _) :: Int-    , id _ + id (head _) :: Int-    , id _ + id (ord _) :: Int-    , id _ + negate x :: Int-    , id _ + negate 0 :: Int-    , id _ + negate (id _) :: Int-    , id _ + abs x :: Int-    , id _ + abs 0 :: Int-    , id _ + abs (id _) :: Int-    , id _ + (_ + x) :: Int-    , id _ + (_ + 0) :: Int-    , id _ + (_ + id _) :: Int-    , id _ + (x + _) :: Int-    , id _ + (0 + _) :: Int-    , id _ + (id _ + _) :: Int-    , id _ + _ * _ :: Int-    , id _ + f _ :: Int-    , id _ + head xs :: Int-    , id _ + head [] :: Int-    , id _ + head (_:_) :: Int-    , id _ + ord c :: Int-    , id _ + ord 'a' :: Int-    , _ * z :: Int-    , _ * (-1) :: Int-    , _ * id y :: Int-    , _ * id 1 :: Int-    , _ * id (id x) :: Int-    , _ * id (id 0) :: Int-    , _ * id (id (id _)) :: Int-    , _ * id (negate _) :: Int-    , _ * id (abs _) :: Int-    , _ * id (_ + _) :: Int-    , _ * id (head _) :: Int-    , _ * id (ord _) :: Int-    , _ * negate x :: Int-    , _ * negate 0 :: Int-    , _ * negate (id _) :: Int-    , _ * abs x :: Int-    , _ * abs 0 :: Int-    , _ * abs (id _) :: Int-    , _ * (_ + x) :: Int-    , _ * (_ + 0) :: Int-    , _ * (_ + id _) :: Int-    , _ * (x + _) :: Int-    , _ * (0 + _) :: Int-    , _ * (id _ + _) :: Int-    , _ * (_ * _) :: Int-    , _ * f _ :: Int-    , _ * head xs :: Int-    , _ * head [] :: Int-    , _ * head (_:_) :: Int-    , _ * ord c :: Int-    , _ * ord 'a' :: Int-    , f z :: Int-    , f (-1) :: Int-    , f (id y) :: Int-    , f (id 1) :: Int-    , f (id (id x)) :: Int-    , f (id (id 0)) :: Int-    , f (id (id (id _))) :: Int-    , f (id (negate _)) :: Int-    , f (id (abs _)) :: Int-    , f (id (_ + _)) :: Int-    , f (id (head _)) :: Int-    , f (id (ord _)) :: Int-    , f (negate x) :: Int-    , f (negate 0) :: Int-    , f (negate (id _)) :: Int-    , f (abs x) :: Int-    , f (abs 0) :: Int-    , f (abs (id _)) :: Int-    , f (_ + x) :: Int-    , f (_ + 0) :: Int-    , f (_ + id _) :: Int-    , f (x + _) :: Int-    , f (0 + _) :: Int-    , f (id _ + _) :: Int-    , f (_ * _) :: Int-    , f (f _) :: Int-    , f (head xs) :: Int-    , f (head []) :: Int-    , f (head (_:_)) :: Int-    , f (ord c) :: Int-    , f (ord 'a') :: Int-    , y + y :: Int-    , y + 1 :: Int-    , y + id x :: Int-    , y + id 0 :: Int-    , y + id (id _) :: Int-    , y + negate _ :: Int-    , y + abs _ :: Int-    , y + (_ + _) :: Int-    , y + head _ :: Int-    , y + ord _ :: Int-    , 1 + y :: Int-    , 1 + 1 :: Int-    , 1 + id x :: Int-    , 1 + id 0 :: Int-    , 1 + id (id _) :: Int-    , 1 + negate _ :: Int-    , 1 + abs _ :: Int-    , 1 + (_ + _) :: Int-    , 1 + head _ :: Int-    , 1 + ord _ :: Int-    , id x + y :: Int-    , id x + 1 :: Int-    , id x + id x :: Int-    , id x + id 0 :: Int-    , id x + id (id _) :: Int-    , id x + negate _ :: Int-    , id x + abs _ :: Int-    , id x + (_ + _) :: Int-    , id x + head _ :: Int-    , id x + ord _ :: Int-    , id 0 + y :: Int-    , id 0 + 1 :: Int-    , id 0 + id x :: Int-    , id 0 + id 0 :: Int-    , id 0 + id (id _) :: Int-    , id 0 + negate _ :: Int-    , id 0 + abs _ :: Int-    , id 0 + (_ + _) :: Int-    , id 0 + head _ :: Int-    , id 0 + ord _ :: Int-    , id (id _) + y :: Int-    , id (id _) + 1 :: Int-    , id (id _) + id x :: Int-    , id (id _) + id 0 :: Int-    , id (id _) + id (id _) :: Int-    , id (id _) + negate _ :: Int-    , id (id _) + abs _ :: Int-    , id (id _) + (_ + _) :: Int-    , id (id _) + head _ :: Int-    , id (id _) + ord _ :: Int-    , negate _ + y :: Int-    , negate _ + 1 :: Int-    , negate _ + id x :: Int-    , negate _ + id 0 :: Int-    , negate _ + id (id _) :: Int-    , negate _ + negate _ :: Int-    , negate _ + abs _ :: Int-    , negate _ + (_ + _) :: Int-    , negate _ + head _ :: Int-    , negate _ + ord _ :: Int-    , abs _ + y :: Int-    , abs _ + 1 :: Int-    , abs _ + id x :: Int-    , abs _ + id 0 :: Int-    , abs _ + id (id _) :: Int-    , abs _ + negate _ :: Int-    , abs _ + abs _ :: Int-    , abs _ + (_ + _) :: Int-    , abs _ + head _ :: Int-    , abs _ + ord _ :: Int-    , (_ + _) + y :: Int-    , (_ + _) + 1 :: Int-    , (_ + _) + id x :: Int-    , (_ + _) + id 0 :: Int-    , (_ + _) + id (id _) :: Int-    , (_ + _) + negate _ :: Int-    , (_ + _) + abs _ :: Int-    , (_ + _) + (_ + _) :: Int-    , (_ + _) + head _ :: Int-    , (_ + _) + ord _ :: Int-    , head _ + y :: Int-    , head _ + 1 :: Int-    , head _ + id x :: Int-    , head _ + id 0 :: Int-    , head _ + id (id _) :: Int-    , head _ + negate _ :: Int-    , head _ + abs _ :: Int-    , head _ + (_ + _) :: Int-    , head _ + head _ :: Int-    , head _ + ord _ :: Int-    , ord _ + y :: Int-    , ord _ + 1 :: Int-    , ord _ + id x :: Int-    , ord _ + id 0 :: Int-    , ord _ + id (id _) :: Int-    , ord _ + negate _ :: Int-    , ord _ + abs _ :: Int-    , ord _ + (_ + _) :: Int-    , ord _ + head _ :: Int-    , ord _ + ord _ :: Int-    , x * y :: Int-    , x * 1 :: Int-    , x * id x :: Int-    , x * id 0 :: Int-    , x * id (id _) :: Int-    , x * negate _ :: Int-    , x * abs _ :: Int-    , x * (_ + _) :: Int-    , x * head _ :: Int-    , x * ord _ :: Int-    , 0 * y :: Int-    , 0 * 1 :: Int-    , 0 * id x :: Int-    , 0 * id 0 :: Int-    , 0 * id (id _) :: Int-    , 0 * negate _ :: Int-    , 0 * abs _ :: Int-    , 0 * (_ + _) :: Int-    , 0 * head _ :: Int-    , 0 * ord _ :: Int-    , id _ * y :: Int-    , id _ * 1 :: Int-    , id _ * id x :: Int-    , id _ * id 0 :: Int-    , id _ * id (id _) :: Int-    , id _ * negate _ :: Int-    , id _ * abs _ :: Int-    , id _ * (_ + _) :: Int-    , id _ * head _ :: Int-    , id _ * ord _ :: Int-    , g y :: Int-    , g 1 :: Int-    , g (id x) :: Int-    , g (id 0) :: Int-    , g (id (id _)) :: Int-    , g (negate _) :: Int-    , g (abs _) :: Int-    , g (_ + _) :: Int-    , g (head _) :: Int-    , g (ord _) :: Int-    , z + x :: Int-    , z + 0 :: Int-    , z + id _ :: Int-    , (-1) + x :: Int-    , (-1) + 0 :: Int-    , (-1) + id _ :: Int-    , id y + x :: Int-    , id y + 0 :: Int-    , id y + id _ :: Int-    , id 1 + x :: Int-    , id 1 + 0 :: Int-    , id 1 + id _ :: Int-    , id (id x) + x :: Int-    , id (id x) + 0 :: Int-    , id (id x) + id _ :: Int-    , id (id 0) + x :: Int-    , id (id 0) + 0 :: Int-    , id (id 0) + id _ :: Int-    , id (id (id _)) + x :: Int-    , id (id (id _)) + 0 :: Int-    , id (id (id _)) + id _ :: Int-    , id (negate _) + x :: Int-    , id (negate _) + 0 :: Int-    , id (negate _) + id _ :: Int-    , id (abs _) + x :: Int-    , id (abs _) + 0 :: Int-    , id (abs _) + id _ :: Int-    , id (_ + _) + x :: Int-    , id (_ + _) + 0 :: Int-    , id (_ + _) + id _ :: Int-    , id (head _) + x :: Int-    , id (head _) + 0 :: Int-    , id (head _) + id _ :: Int-    , id (ord _) + x :: Int-    , id (ord _) + 0 :: Int-    , id (ord _) + id _ :: Int-    , negate x + x :: Int-    , negate x + 0 :: Int-    , negate x + id _ :: Int-    , negate 0 + x :: Int-    , negate 0 + 0 :: Int-    , negate 0 + id _ :: Int-    , negate (id _) + x :: Int-    , negate (id _) + 0 :: Int-    , negate (id _) + id _ :: Int-    , abs x + x :: Int-    , abs x + 0 :: Int-    , abs x + id _ :: Int-    , abs 0 + x :: Int-    , abs 0 + 0 :: Int-    , abs 0 + id _ :: Int-    , abs (id _) + x :: Int-    , abs (id _) + 0 :: Int-    , abs (id _) + id _ :: Int-    , (_ + x) + x :: Int-    , (_ + x) + 0 :: Int-    , (_ + x) + id _ :: Int-    , (_ + 0) + x :: Int-    , (_ + 0) + 0 :: Int-    , (_ + 0) + id _ :: Int-    , (_ + id _) + x :: Int-    , (_ + id _) + 0 :: Int-    , (_ + id _) + id _ :: Int-    , (x + _) + x :: Int-    , (x + _) + 0 :: Int-    , (x + _) + id _ :: Int-    , (0 + _) + x :: Int-    , (0 + _) + 0 :: Int-    , (0 + _) + id _ :: Int-    , (id _ + _) + x :: Int-    , (id _ + _) + 0 :: Int-    , (id _ + _) + id _ :: Int-    , _ * _ + x :: Int-    , _ * _ + 0 :: Int-    , _ * _ + id _ :: Int-    , f _ + x :: Int-    , f _ + 0 :: Int-    , f _ + id _ :: Int-    , head xs + x :: Int-    , head xs + 0 :: Int-    , head xs + id _ :: Int-    , head [] + x :: Int-    , head [] + 0 :: Int-    , head [] + id _ :: Int-    , head (_:_) + x :: Int-    , head (_:_) + 0 :: Int-    , head (_:_) + id _ :: Int-    , ord c + x :: Int-    , ord c + 0 :: Int-    , ord c + id _ :: Int-    , ord 'a' + x :: Int-    , ord 'a' + 0 :: Int-    , ord 'a' + id _ :: Int-    , y * x :: Int-    , y * 0 :: Int-    , y * id _ :: Int-    , 1 * x :: Int-    , 1 * 0 :: Int-    , 1 * id _ :: Int-    , id x * x :: Int-    , id x * 0 :: Int-    , id x * id _ :: Int-    , id 0 * x :: Int-    , id 0 * 0 :: Int-    , id 0 * id _ :: Int-    , id (id _) * x :: Int-    , id (id _) * 0 :: Int-    , id (id _) * id _ :: Int-    , negate _ * x :: Int-    , negate _ * 0 :: Int-    , negate _ * id _ :: Int-    , abs _ * x :: Int-    , abs _ * 0 :: Int-    , abs _ * id _ :: Int-    , (_ + _) * x :: Int-    , (_ + _) * 0 :: Int-    , (_ + _) * id _ :: Int-    , head _ * x :: Int-    , head _ * 0 :: Int-    , head _ * id _ :: Int-    , ord _ * x :: Int-    , ord _ * 0 :: Int-    , ord _ * id _ :: Int-    , h x :: Int-    , h 0 :: Int-    , h (id _) :: Int-    , x' + _ :: Int-    , 2 + _ :: Int-    , id z + _ :: Int-    , id (-1) + _ :: Int-    , id (id y) + _ :: Int-    , id (id 1) + _ :: Int-    , id (id (id x)) + _ :: Int-    , id (id (id 0)) + _ :: Int-    , id (id (id (id _))) + _ :: Int-    , id (id (negate _)) + _ :: Int-    , id (id (abs _)) + _ :: Int-    , id (id (_ + _)) + _ :: Int-    , id (id (head _)) + _ :: Int-    , id (id (ord _)) + _ :: Int-    , id (negate x) + _ :: Int-    , id (negate 0) + _ :: Int-    , id (negate (id _)) + _ :: Int-    , id (abs x) + _ :: Int-    , id (abs 0) + _ :: Int-    , id (abs (id _)) + _ :: Int-    , id (_ + x) + _ :: Int-    , id (_ + 0) + _ :: Int-    , id (_ + id _) + _ :: Int-    , id (x + _) + _ :: Int-    , id (0 + _) + _ :: Int-    , id (id _ + _) + _ :: Int-    , id (_ * _) + _ :: Int-    , id (f _) + _ :: Int-    , id (head xs) + _ :: Int-    , id (head []) + _ :: Int-    , id (head (_:_)) + _ :: Int-    , id (ord c) + _ :: Int-    , id (ord 'a') + _ :: Int-    , negate y + _ :: Int-    , negate 1 + _ :: Int-    , negate (id x) + _ :: Int-    , negate (id 0) + _ :: Int-    , negate (id (id _)) + _ :: Int-    , negate (negate _) + _ :: Int-    , negate (abs _) + _ :: Int-    , negate (_ + _) + _ :: Int-    , negate (head _) + _ :: Int-    , negate (ord _) + _ :: Int-    , abs y + _ :: Int-    , abs 1 + _ :: Int-    , abs (id x) + _ :: Int-    , abs (id 0) + _ :: Int-    , abs (id (id _)) + _ :: Int-    , abs (negate _) + _ :: Int-    , abs (abs _) + _ :: Int-    , abs (_ + _) + _ :: Int-    , abs (head _) + _ :: Int-    , abs (ord _) + _ :: Int-    , (_ + y) + _ :: Int-    , (_ + 1) + _ :: Int-    , (_ + id x) + _ :: Int-    , (_ + id 0) + _ :: Int-    , (_ + id (id _)) + _ :: Int-    , (_ + negate _) + _ :: Int-    , (_ + abs _) + _ :: Int-    , (_ + (_ + _)) + _ :: Int-    , (_ + head _) + _ :: Int-    , (_ + ord _) + _ :: Int-    , (x + x) + _ :: Int-    , (x + 0) + _ :: Int-    , (x + id _) + _ :: Int-    , (0 + x) + _ :: Int-    , (0 + 0) + _ :: Int-    , (0 + id _) + _ :: Int-    , (id _ + x) + _ :: Int-    , (id _ + 0) + _ :: Int-    , (id _ + id _) + _ :: Int-    , _ * x + _ :: Int-    , _ * 0 + _ :: Int-    , _ * id _ + _ :: Int-    , f x + _ :: Int-    , f 0 + _ :: Int-    , f (id _) + _ :: Int-    , (y + _) + _ :: Int-    , (1 + _) + _ :: Int-    , (id x + _) + _ :: Int-    , (id 0 + _) + _ :: Int-    , (id (id _) + _) + _ :: Int-    , (negate _ + _) + _ :: Int-    , (abs _ + _) + _ :: Int-    , ((_ + _) + _) + _ :: Int-    , (head _ + _) + _ :: Int-    , (ord _ + _) + _ :: Int-    , x * _ + _ :: Int-    , 0 * _ + _ :: Int-    , id _ * _ + _ :: Int-    , g _ + _ :: Int-    , head ys + _ :: Int-    , head [0] + _ :: Int-    , head (_:xs) + _ :: Int-    , head [_] + _ :: Int-    , head (_:_:_) + _ :: Int-    , head (x:_) + _ :: Int-    , head (0:_) + _ :: Int-    , head (id _:_) + _ :: Int-    , head (tail _) + _ :: Int-    , head (_ ++ _) + _ :: Int-    , ord d + _ :: Int-    , ord ' ' + _ :: Int-    , z * _ :: Int-    , (-1) * _ :: Int-    , id y * _ :: Int-    , id 1 * _ :: Int-    , id (id x) * _ :: Int-    , id (id 0) * _ :: Int-    , id (id (id _)) * _ :: Int-    , id (negate _) * _ :: Int-    , id (abs _) * _ :: Int-    , id (_ + _) * _ :: Int-    , id (head _) * _ :: Int-    , id (ord _) * _ :: Int-    , negate x * _ :: Int-    , negate 0 * _ :: Int-    , negate (id _) * _ :: Int-    , abs x * _ :: Int-    , abs 0 * _ :: Int-    , abs (id _) * _ :: Int-    , (_ + x) * _ :: Int-    , (_ + 0) * _ :: Int-    , (_ + id _) * _ :: Int-    , (x + _) * _ :: Int-    , (0 + _) * _ :: Int-    , (id _ + _) * _ :: Int-    , (_ * _) * _ :: Int-    , f _ * _ :: Int-    , head xs * _ :: Int-    , head [] * _ :: Int-    , head (_:_) * _ :: Int-    , ord c * _ :: Int-    , ord 'a' * _ :: Int-    , f' _ :: Int-    , head xs' :: Int-    , head [0,0,0] :: Int-    , head [0,1] :: Int-    , head [1,0] :: Int-    , head [-1] :: Int-    , head (_:zs) :: Int-    , head [_,0,0] :: Int-    , head [_,1] :: Int-    , head (_:_:ys) :: Int-    , head [_,_,0] :: Int-    , head (_:_:_:xs) :: Int-    , head [_,_,_] :: Int-    , head (_:_:_:_:_) :: Int-    , head (_:_:x:_) :: Int-    , head (_:_:0:_) :: Int-    , head (_:_:id _:_) :: Int-    , head (_:_:tail _) :: Int-    , head (_:_:(_ ++ _)) :: Int-    , head (_:x:xs) :: Int-    , head [_,x] :: Int-    , head (_:x:_:_) :: Int-    , head (_:0:xs) :: Int-    , head [_,0] :: Int-    , head (_:0:_:_) :: Int-    , head (_:id _:xs) :: Int-    , head [_,id _] :: Int-    , head (_:id _:_:_) :: Int-    , head (_:y:_) :: Int-    , head (_:1:_) :: Int-    , head (_:id x:_) :: Int-    , head (_:id 0:_) :: Int-    , head (_:id (id _):_) :: Int-    , head (_:negate _:_) :: Int-    , head (_:abs _:_) :: Int-    , head (_:_ + _:_) :: Int-    , head (_:head _:_) :: Int-    , head (_:ord _:_) :: Int-    , head (_:tail xs) :: Int-    , head (_:tail []) :: Int-    , head (_:tail (_:_)) :: Int-    , head (_:(_ ++ xs)) :: Int-    , head (_:(_ ++ [])) :: Int-    , head (_:(_ ++ (_:_))) :: Int-    , head (_:(xs ++ _)) :: Int-    , head (_:([] ++ _)) :: Int-    , head (_:((_:_) ++ _)) :: Int-    , head (_:sort _) :: Int-    , head (_:insert _ _) :: Int-    , head (x:ys) :: Int-    , head [x,0] :: Int-    , head (x:_:xs) :: Int-    , head [x,_] :: Int-    , head (x:_:_:_) :: Int-    , head (x:x:_) :: Int-    , head (x:0:_) :: Int-    , head (x:id _:_) :: Int-    , head (x:tail _) :: Int-    , head (x:(_ ++ _)) :: Int-    , head (0:ys) :: Int-    , head [0,0] :: Int-    , head (0:_:xs) :: Int-    , head [0,_] :: Int-    , head (0:_:_:_) :: Int-    , head (0:x:_) :: Int-    , head (0:0:_) :: Int-    , head (0:id _:_) :: Int-    , head (0:tail _) :: Int-    , head (0:(_ ++ _)) :: Int-    , head (id _:ys) :: Int-    , head [id _,0] :: Int-    , head (id _:_:xs) :: Int-    , head [id _,_] :: Int-    , head (id _:_:_:_) :: Int-    , head (id _:x:_) :: Int-    , head (id _:0:_) :: Int-    , head (id _:id _:_) :: Int-    , head (id _:tail _) :: Int-    , head (id _:(_ ++ _)) :: Int-    , head (y:xs) :: Int-    , head [y] :: Int-    , head (y:_:_) :: Int-    , head (1:xs) :: Int-    , head [1] :: Int-    , head (1:_:_) :: Int-    , head (id x:xs) :: Int-    , head [id x] :: Int-    , head (id x:_:_) :: Int-    , head (id 0:xs) :: Int-    , head [id 0] :: Int-    , head (id 0:_:_) :: Int-    , head (id (id _):xs) :: Int-    , head [id (id _)] :: Int-    , head (id (id _):_:_) :: Int-    , head (negate _:xs) :: Int-    , head [negate _] :: Int-    , head (negate _:_:_) :: Int-    , head (abs _:xs) :: Int-    , head [abs _] :: Int-    , head (abs _:_:_) :: Int-    , head (_ + _:xs) :: Int-    , head [_ + _] :: Int-    , head (_ + _:_:_) :: Int-    , head (head _:xs) :: Int-    , head [head _] :: Int-    , head (head _:_:_) :: Int-    , head (ord _:xs) :: Int-    , head [ord _] :: Int-    , head (ord _:_:_) :: Int-    , head (z:_) :: Int-    , head ((-1):_) :: Int-    , head (id y:_) :: Int-    , head (id 1:_) :: Int-    , head (id (id x):_) :: Int-    , head (id (id 0):_) :: Int-    , head (id (id (id _)):_) :: Int-    , head (id (negate _):_) :: Int-    , head (id (abs _):_) :: Int-    , head (id (_ + _):_) :: Int-    , head (id (head _):_) :: Int-    , head (id (ord _):_) :: Int-    , head (negate x:_) :: Int-    , head (negate 0:_) :: Int-    , head (negate (id _):_) :: Int-    , head (abs x:_) :: Int-    , head (abs 0:_) :: Int-    , head (abs (id _):_) :: Int-    , head (_ + x:_) :: Int-    , head (_ + 0:_) :: Int-    , head (_ + id _:_) :: Int-    , head (x + _:_) :: Int-    , head (0 + _:_) :: Int-    , head (id _ + _:_) :: Int-    , head (_ * _:_) :: Int-    , head (f _:_) :: Int-    , head (head xs:_) :: Int-    , head (head []:_) :: Int-    , head (head (_:_):_) :: Int-    , head (ord c:_) :: Int-    , head (ord 'a':_) :: Int-    , head (tail ys) :: Int-    , head (tail [0]) :: Int-    , head (tail (_:xs)) :: Int-    , head (tail [_]) :: Int-    , head (tail (_:_:_)) :: Int-    , head (tail (x:_)) :: Int-    , head (tail (0:_)) :: Int-    , head (tail (id _:_)) :: Int-    , head (tail (tail _)) :: Int-    , head (tail (_ ++ _)) :: Int-    , head (_ ++ ys) :: Int-    , head (_ ++ [0]) :: Int-    , head (_ ++ (_:xs)) :: Int-    , head (_ ++ [_]) :: Int-    , head (_ ++ (_:_:_)) :: Int-    , head (_ ++ (x:_)) :: Int-    , head (_ ++ (0:_)) :: Int-    , head (_ ++ (id _:_)) :: Int-    , head (_ ++ tail _) :: Int-    , head (_ ++ (_ ++ _)) :: Int-    , head (xs ++ xs) :: Int-    , head (xs ++ []) :: Int-    , head (xs ++ (_:_)) :: Int-    , head ([] ++ xs) :: Int-    , head ([] ++ []) :: Int-    , head ([] ++ (_:_)) :: Int-    , head ((_:_) ++ xs) :: Int-    , head ((_:_) ++ []) :: Int-    , head ((_:_) ++ (_:_)) :: Int-    , head (ys ++ _) :: Int-    , head ([0] ++ _) :: Int-    , head ((_:xs) ++ _) :: Int-    , head ([_] ++ _) :: Int-    , head ((_:_:_) ++ _) :: Int-    , head ((x:_) ++ _) :: Int-    , head ((0:_) ++ _) :: Int-    , head ((id _:_) ++ _) :: Int-    , head (tail _ ++ _) :: Int-    , head ((_ ++ _) ++ _) :: Int-    , head (sort xs) :: Int-    , head (sort []) :: Int-    , head (sort (_:_)) :: Int-    , head (insert _ xs) :: Int-    , head (insert _ []) :: Int-    , head (insert _ (_:_)) :: Int-    , head (insert x _) :: Int-    , head (insert 0 _) :: Int-    , head (insert (id _) _) :: Int-    , ord c' :: Int-    , ord 'A' :: Int-    , q' :: Bool-    , not p' :: Bool-    , not (not r) :: Bool-    , not (not (not q)) :: Bool-    , not (not (not (not p))) :: Bool-    , not (not (not (not False))) :: Bool-    , not (not (not (not True))) :: Bool-    , not (not (not (not (not _)))) :: Bool-    , not (not (not (_ || _))) :: Bool-    , not (not (_ || p)) :: Bool-    , not (not (_ || False)) :: Bool-    , not (not (_ || True)) :: Bool-    , not (not (_ || not _)) :: Bool-    , not (not (p || _)) :: Bool-    , not (not (False || _)) :: Bool-    , not (not (True || _)) :: Bool-    , not (not (not _ || _)) :: Bool-    , not (not (_ && _)) :: Bool-    , not (not (_ == _)) :: Bool-    , not (not (_ == _)) :: Bool-    , not (not (odd _)) :: Bool-    , not (not (even _)) :: Bool-    , not (not (elem _ _)) :: Bool-    , not (_ || q) :: Bool-    , not (_ || not p) :: Bool-    , not (_ || not False) :: Bool-    , not (_ || not True) :: Bool-    , not (_ || not (not _)) :: Bool-    , not (_ || (_ || _)) :: Bool-    , not (p || p) :: Bool-    , not (p || False) :: Bool-    , not (p || True) :: Bool-    , not (p || not _) :: Bool-    , not (False || p) :: Bool-    , not (False || False) :: Bool-    , not (False || True) :: Bool-    , not (False || not _) :: Bool-    , not (True || p) :: Bool-    , not (True || False) :: Bool-    , not (True || True) :: Bool-    , not (True || not _) :: Bool-    , not (not _ || p) :: Bool-    , not (not _ || False) :: Bool-    , not (not _ || True) :: Bool-    , not (not _ || not _) :: Bool-    , not (_ && p) :: Bool-    , not (_ && False) :: Bool-    , not (_ && True) :: Bool-    , not (_ && not _) :: Bool-    , not (q || _) :: Bool-    , not (not p || _) :: Bool-    , not (not False || _) :: Bool-    , not (not True || _) :: Bool-    , not (not (not _) || _) :: Bool-    , not ((_ || _) || _) :: Bool-    , not (p && _) :: Bool-    , not (False && _) :: Bool-    , not (True && _) :: Bool-    , not (not _ && _) :: Bool-    , not (_ ==> _) :: Bool-    , not (_ == x) :: Bool-    , not (_ == 0) :: Bool-    , not (_ == id _) :: Bool-    , not (x == _) :: Bool-    , not (0 == _) :: Bool-    , not (id _ == _) :: Bool-    , not (_ == p) :: Bool-    , not (_ == False) :: Bool-    , not (_ == True) :: Bool-    , not (_ == not _) :: Bool-    , not (p == _) :: Bool-    , not (False == _) :: Bool-    , not (True == _) :: Bool-    , not (not _ == _) :: Bool-    , not (_ <= _) :: Bool-    , not (_ <= _) :: Bool-    , not (odd x) :: Bool-    , not (odd 0) :: Bool-    , not (odd (id _)) :: Bool-    , not (even x) :: Bool-    , not (even 0) :: Bool-    , not (even (id _)) :: Bool-    , not (elem _ xs) :: Bool-    , not (elem _ []) :: Bool-    , not (elem _ (_:_)) :: Bool-    , not (elem x _) :: Bool-    , not (elem 0 _) :: Bool-    , not (elem (id _) _) :: Bool-    , _ || r :: Bool-    , _ || not q :: Bool-    , _ || not (not p) :: Bool-    , _ || not (not False) :: Bool-    , _ || not (not True) :: Bool-    , _ || not (not (not _)) :: Bool-    , _ || not (_ || _) :: Bool-    , _ || (_ || p) :: Bool-    , _ || (_ || False) :: Bool-    , _ || (_ || True) :: Bool-    , _ || (_ || not _) :: Bool-    , _ || (p || _) :: Bool-    , _ || (False || _) :: Bool-    , _ || (True || _) :: Bool-    , _ || (not _ || _) :: Bool-    , _ || _ && _ :: Bool-    , _ || _ == _ :: Bool-    , _ || _ == _ :: Bool-    , _ || odd _ :: Bool-    , _ || even _ :: Bool-    , _ || elem _ _ :: Bool-    , p || q :: Bool-    , p || not p :: Bool-    , p || not False :: Bool-    , p || not True :: Bool-    , p || not (not _) :: Bool-    , p || (_ || _) :: Bool-    , False || q :: Bool-    , False || not p :: Bool-    , False || not False :: Bool-    , False || not True :: Bool-    , False || not (not _) :: Bool-    , False || (_ || _) :: Bool-    , True || q :: Bool-    , True || not p :: Bool-    , True || not False :: Bool-    , True || not True :: Bool-    , True || not (not _) :: Bool-    , True || (_ || _) :: Bool-    , not _ || q :: Bool-    , not _ || not p :: Bool-    , not _ || not False :: Bool-    , not _ || not True :: Bool-    , not _ || not (not _) :: Bool-    , not _ || (_ || _) :: Bool-    , _ && q :: Bool-    , _ && not p :: Bool-    , _ && not False :: Bool-    , _ && not True :: Bool-    , _ && not (not _) :: Bool-    , _ && (_ || _) :: Bool-    , q || p :: Bool-    , q || False :: Bool-    , q || True :: Bool-    , q || not _ :: Bool-    , not p || p :: Bool-    , not p || False :: Bool-    , not p || True :: Bool-    , not p || not _ :: Bool-    , not False || p :: Bool-    , not False || False :: Bool-    , not False || True :: Bool-    , not False || not _ :: Bool-    , not True || p :: Bool-    , not True || False :: Bool-    , not True || True :: Bool-    , not True || not _ :: Bool-    , not (not _) || p :: Bool-    , not (not _) || False :: Bool-    , not (not _) || True :: Bool-    , not (not _) || not _ :: Bool-    , (_ || _) || p :: Bool-    , (_ || _) || False :: Bool-    , (_ || _) || True :: Bool-    , (_ || _) || not _ :: Bool-    , p && p :: Bool-    , p && False :: Bool-    , p && True :: Bool-    , p && not _ :: Bool-    , False && p :: Bool-    , False && False :: Bool-    , False && True :: Bool-    , False && not _ :: Bool-    , True && p :: Bool-    , True && False :: Bool-    , True && True :: Bool-    , True && not _ :: Bool-    , not _ && p :: Bool-    , not _ && False :: Bool-    , not _ && True :: Bool-    , not _ && not _ :: Bool-    , _ ==> p :: Bool-    , _ ==> False :: Bool-    , _ ==> True :: Bool-    , _ ==> not _ :: Bool-    , r || _ :: Bool-    , not q || _ :: Bool-    , not (not p) || _ :: Bool-    , not (not False) || _ :: Bool-    , not (not True) || _ :: Bool-    , not (not (not _)) || _ :: Bool-    , not (_ || _) || _ :: Bool-    , (_ || p) || _ :: Bool-    , (_ || False) || _ :: Bool-    , (_ || True) || _ :: Bool-    , (_ || not _) || _ :: Bool-    , (p || _) || _ :: Bool-    , (False || _) || _ :: Bool-    , (True || _) || _ :: Bool-    , (not _ || _) || _ :: Bool-    , _ && _ || _ :: Bool-    , _ == _ || _ :: Bool-    , _ == _ || _ :: Bool-    , odd _ || _ :: Bool-    , even _ || _ :: Bool-    , elem _ _ || _ :: Bool-    , q && _ :: Bool-    , not p && _ :: Bool-    , not False && _ :: Bool-    , not True && _ :: Bool-    , not (not _) && _ :: Bool-    , (_ || _) && _ :: Bool-    , p ==> _ :: Bool-    , False ==> _ :: Bool-    , True ==> _ :: Bool-    , not _ ==> _ :: Bool-    , _ == y :: Bool-    , _ == 1 :: Bool-    , _ == id x :: Bool-    , _ == id 0 :: Bool-    , _ == id (id _) :: Bool-    , _ == negate _ :: Bool-    , _ == abs _ :: Bool-    , _ == _ + _ :: Bool-    , _ == head _ :: Bool-    , _ == ord _ :: Bool-    , x == x :: Bool-    , x == 0 :: Bool-    , x == id _ :: Bool-    , 0 == x :: Bool-    , 0 == 0 :: Bool-    , 0 == id _ :: Bool-    , id _ == x :: Bool-    , id _ == 0 :: Bool-    , id _ == id _ :: Bool-    , y == _ :: Bool-    , 1 == _ :: Bool-    , id x == _ :: Bool-    , id 0 == _ :: Bool-    , id (id _) == _ :: Bool-    , negate _ == _ :: Bool-    , abs _ == _ :: Bool-    , _ + _ == _ :: Bool-    , head _ == _ :: Bool-    , ord _ == _ :: Bool-    , _ == q :: Bool-    , _ == not p :: Bool-    , _ == not False :: Bool-    , _ == not True :: Bool-    , _ == not (not _) :: Bool-    , _ == (_ || _) :: Bool-    , p == p :: Bool-    , p == False :: Bool-    , p == True :: Bool-    , p == not _ :: Bool-    , False == p :: Bool-    , False == False :: Bool-    , False == True :: Bool-    , False == not _ :: Bool-    , True == p :: Bool-    , True == False :: Bool-    , True == True :: Bool-    , True == not _ :: Bool-    , not _ == p :: Bool-    , not _ == False :: Bool-    , not _ == True :: Bool-    , not _ == not _ :: Bool-    , q == _ :: Bool-    , not p == _ :: Bool-    , not False == _ :: Bool-    , not True == _ :: Bool-    , not (not _) == _ :: Bool-    , (_ || _) == _ :: Bool-    , _ <= x :: Bool-    , _ <= 0 :: Bool-    , _ <= id _ :: Bool-    , x <= _ :: Bool-    , 0 <= _ :: Bool-    , id _ <= _ :: Bool-    , _ <= p :: Bool-    , _ <= False :: Bool-    , _ <= True :: Bool-    , _ <= not _ :: Bool-    , p <= _ :: Bool-    , False <= _ :: Bool-    , True <= _ :: Bool-    , not _ <= _ :: Bool-    , _ < _ :: Bool-    , _ < _ :: Bool-    , odd y :: Bool-    , odd 1 :: Bool-    , odd (id x) :: Bool-    , odd (id 0) :: Bool-    , odd (id (id _)) :: Bool-    , odd (negate _) :: Bool-    , odd (abs _) :: Bool-    , odd (_ + _) :: Bool-    , odd (head _) :: Bool-    , odd (ord _) :: Bool-    , even y :: Bool-    , even 1 :: Bool-    , even (id x) :: Bool-    , even (id 0) :: Bool-    , even (id (id _)) :: Bool-    , even (negate _) :: Bool-    , even (abs _) :: Bool-    , even (_ + _) :: Bool-    , even (head _) :: Bool-    , even (ord _) :: Bool-    , elem _ ys :: Bool-    , elem _ [0] :: Bool-    , elem _ (_:xs) :: Bool-    , elem _ [_] :: Bool-    , elem _ (_:_:_) :: Bool-    , elem _ (x:_) :: Bool-    , elem _ (0:_) :: Bool-    , elem _ (id _:_) :: Bool-    , elem _ (tail _) :: Bool-    , elem _ (_ ++ _) :: Bool-    , elem x xs :: Bool-    , elem x [] :: Bool-    , elem x (_:_) :: Bool-    , elem 0 xs :: Bool-    , elem 0 [] :: Bool-    , elem 0 (_:_) :: Bool-    , elem (id _) xs :: Bool-    , elem (id _) [] :: Bool-    , elem (id _) (_:_) :: Bool-    , elem y _ :: Bool-    , elem 1 _ :: Bool-    , elem (id x) _ :: Bool-    , elem (id 0) _ :: Bool-    , elem (id (id _)) _ :: Bool-    , elem (negate _) _ :: Bool-    , elem (abs _) _ :: Bool-    , elem (_ + _) _ :: Bool-    , elem (head _) _ :: Bool-    , elem (ord _) _ :: Bool-    , d' :: Char-    , 'c' :: Char-    , ys' :: [Int]-    , [0,0,0,0] :: [Int]-    , [0,0,1] :: [Int]-    , [0,1,0] :: [Int]-    , [0,-1] :: [Int]-    , [1,0,0] :: [Int]-    , [1,1] :: [Int]-    , [-1,0] :: [Int]-    , [2] :: [Int]-    , _:xs' :: [Int]-    , [_,0,0,0] :: [Int]-    , [_,0,1] :: [Int]-    , [_,1,0] :: [Int]-    , [_,-1] :: [Int]-    , _:_:zs :: [Int]-    , [_,_,0,0] :: [Int]-    , [_,_,1] :: [Int]-    , _:_:_:ys :: [Int]-    , [_,_,_,0] :: [Int]-    , _:_:_:_:xs :: [Int]-    , [_,_,_,_] :: [Int]-    , _:_:_:_:_:_ :: [Int]-    , _:_:_:x:_ :: [Int]-    , _:_:_:0:_ :: [Int]-    , _:_:_:id _:_ :: [Int]-    , _:_:_:tail _ :: [Int]-    , _:_:_:(_ ++ _) :: [Int]-    , _:_:x:xs :: [Int]-    , [_,_,x] :: [Int]-    , _:_:x:_:_ :: [Int]-    , _:_:0:xs :: [Int]-    , [_,_,0] :: [Int]-    , _:_:0:_:_ :: [Int]-    , _:_:id _:xs :: [Int]-    , [_,_,id _] :: [Int]-    , _:_:id _:_:_ :: [Int]-    , _:_:y:_ :: [Int]-    , _:_:1:_ :: [Int]-    , _:_:id x:_ :: [Int]-    , _:_:id 0:_ :: [Int]-    , _:_:id (id _):_ :: [Int]-    , _:_:negate _:_ :: [Int]-    , _:_:abs _:_ :: [Int]-    , _:_:_ + _:_ :: [Int]-    , _:_:head _:_ :: [Int]-    , _:_:ord _:_ :: [Int]-    , _:_:tail xs :: [Int]-    , _:_:tail [] :: [Int]-    , _:_:tail (_:_) :: [Int]-    , _:_:(_ ++ xs) :: [Int]-    , _:_:(_ ++ []) :: [Int]-    , _:_:(_ ++ (_:_)) :: [Int]-    , _:_:(xs ++ _) :: [Int]-    , [_,_,] ++ _ :: [Int]-    , _:_:((_:_) ++ _) :: [Int]-    , _:_:sort _ :: [Int]-    , _:_:insert _ _ :: [Int]-    , _:x:ys :: [Int]-    , [_,x,0] :: [Int]-    , _:x:_:xs :: [Int]-    , [_,x,_] :: [Int]-    , _:x:_:_:_ :: [Int]-    , _:x:x:_ :: [Int]-    , _:x:0:_ :: [Int]-    , _:x:id _:_ :: [Int]-    , _:x:tail _ :: [Int]-    , _:x:(_ ++ _) :: [Int]-    , _:0:ys :: [Int]-    , [_,0,0] :: [Int]-    , _:0:_:xs :: [Int]-    , [_,0,_] :: [Int]-    , _:0:_:_:_ :: [Int]-    , _:0:x:_ :: [Int]-    , _:0:0:_ :: [Int]-    , _:0:id _:_ :: [Int]-    , _:0:tail _ :: [Int]-    , _:0:(_ ++ _) :: [Int]-    , _:id _:ys :: [Int]-    , [_,id _,0] :: [Int]-    , _:id _:_:xs :: [Int]-    , [_,id _,_] :: [Int]-    , _:id _:_:_:_ :: [Int]-    , _:id _:x:_ :: [Int]-    , _:id _:0:_ :: [Int]-    , _:id _:id _:_ :: [Int]-    , _:id _:tail _ :: [Int]-    , _:id _:(_ ++ _) :: [Int]-    , _:y:xs :: [Int]-    , [_,y] :: [Int]-    , _:y:_:_ :: [Int]-    , _:1:xs :: [Int]-    , [_,1] :: [Int]-    , _:1:_:_ :: [Int]-    , _:id x:xs :: [Int]-    , [_,id x] :: [Int]-    , _:id x:_:_ :: [Int]-    , _:id 0:xs :: [Int]-    , [_,id 0] :: [Int]-    , _:id 0:_:_ :: [Int]-    , _:id (id _):xs :: [Int]-    , [_,id (id _)] :: [Int]-    , _:id (id _):_:_ :: [Int]-    , _:negate _:xs :: [Int]-    , [_,negate _] :: [Int]-    , _:negate _:_:_ :: [Int]-    , _:abs _:xs :: [Int]-    , [_,abs _] :: [Int]-    , _:abs _:_:_ :: [Int]-    , _:_ + _:xs :: [Int]-    , [_,_ + _] :: [Int]-    , _:_ + _:_:_ :: [Int]-    , _:head _:xs :: [Int]-    , [_,head _] :: [Int]-    , _:head _:_:_ :: [Int]-    , _:ord _:xs :: [Int]-    , [_,ord _] :: [Int]-    , _:ord _:_:_ :: [Int]-    , _:z:_ :: [Int]-    , _:(-1):_ :: [Int]-    , _:id y:_ :: [Int]-    , _:id 1:_ :: [Int]-    , _:id (id x):_ :: [Int]-    , _:id (id 0):_ :: [Int]-    , _:id (id (id _)):_ :: [Int]-    , _:id (negate _):_ :: [Int]-    , _:id (abs _):_ :: [Int]-    , _:id (_ + _):_ :: [Int]-    , _:id (head _):_ :: [Int]-    , _:id (ord _):_ :: [Int]-    , _:negate x:_ :: [Int]-    , _:negate 0:_ :: [Int]-    , _:negate (id _):_ :: [Int]-    , _:abs x:_ :: [Int]-    , _:abs 0:_ :: [Int]-    , _:abs (id _):_ :: [Int]-    , _:_ + x:_ :: [Int]-    , _:_ + 0:_ :: [Int]-    , _:_ + id _:_ :: [Int]-    , _:x + _:_ :: [Int]-    , _:0 + _:_ :: [Int]-    , _:id _ + _:_ :: [Int]-    , _:_ * _:_ :: [Int]-    , _:f _:_ :: [Int]-    , _:head xs:_ :: [Int]-    , _:head []:_ :: [Int]-    , _:head (_:_):_ :: [Int]-    , _:ord c:_ :: [Int]-    , _:ord 'a':_ :: [Int]-    , _:tail ys :: [Int]-    , _:tail [0] :: [Int]-    , _:tail (_:xs) :: [Int]-    , _:tail [_] :: [Int]-    , _:tail (_:_:_) :: [Int]-    , _:tail (x:_) :: [Int]-    , _:tail (0:_) :: [Int]-    , _:tail (id _:_) :: [Int]-    , _:tail (tail _) :: [Int]-    , _:tail (_ ++ _) :: [Int]-    , _:(_ ++ ys) :: [Int]-    , _:(_ ++ [0]) :: [Int]-    , _:(_ ++ (_:xs)) :: [Int]-    , _:(_ ++ [_]) :: [Int]-    , _:(_ ++ (_:_:_)) :: [Int]-    , _:(_ ++ (x:_)) :: [Int]-    , _:(_ ++ (0:_)) :: [Int]-    , _:(_ ++ (id _:_)) :: [Int]-    , _:(_ ++ tail _) :: [Int]-    , _:(_ ++ (_ ++ _)) :: [Int]-    , _:(xs ++ xs) :: [Int]-    , _:(xs ++ []) :: [Int]-    , _:(xs ++ (_:_)) :: [Int]-    , _:([] ++ xs) :: [Int]-    , _:([] ++ []) :: [Int]-    , _:([] ++ (_:_)) :: [Int]-    , _:((_:_) ++ xs) :: [Int]-    , _:((_:_) ++ []) :: [Int]-    , _:((_:_) ++ (_:_)) :: [Int]-    , _:(ys ++ _) :: [Int]-    , _:([0] ++ _) :: [Int]-    , _:((_:xs) ++ _) :: [Int]-    , _:([_] ++ _) :: [Int]-    , _:((_:_:_) ++ _) :: [Int]-    , _:((x:_) ++ _) :: [Int]-    , _:((0:_) ++ _) :: [Int]-    , _:((id _:_) ++ _) :: [Int]-    , _:(tail _ ++ _) :: [Int]-    , _:((_ ++ _) ++ _) :: [Int]-    , _:sort xs :: [Int]-    , _:sort [] :: [Int]-    , _:sort (_:_) :: [Int]-    , _:insert _ xs :: [Int]-    , _:insert _ [] :: [Int]-    , _:insert _ (_:_) :: [Int]-    , _:insert x _ :: [Int]-    , _:insert 0 _ :: [Int]-    , _:insert (id _) _ :: [Int]-    , x:zs :: [Int]-    , [x,0,0] :: [Int]-    , [x,1] :: [Int]-    , x:_:ys :: [Int]-    , [x,_,0] :: [Int]-    , x:_:_:xs :: [Int]-    , [x,_,_] :: [Int]-    , x:_:_:_:_ :: [Int]-    , x:_:x:_ :: [Int]-    , x:_:0:_ :: [Int]-    , x:_:id _:_ :: [Int]-    , x:_:tail _ :: [Int]-    , x:_:(_ ++ _) :: [Int]-    , x:x:xs :: [Int]-    , [x,x] :: [Int]-    , x:x:_:_ :: [Int]-    , x:0:xs :: [Int]-    , [x,0] :: [Int]-    , x:0:_:_ :: [Int]-    , x:id _:xs :: [Int]-    , [x,id _] :: [Int]-    , x:id _:_:_ :: [Int]-    , x:y:_ :: [Int]-    , x:1:_ :: [Int]-    , x:id x:_ :: [Int]-    , x:id 0:_ :: [Int]-    , x:id (id _):_ :: [Int]-    , x:negate _:_ :: [Int]-    , x:abs _:_ :: [Int]-    , x:_ + _:_ :: [Int]-    , x:head _:_ :: [Int]-    , x:ord _:_ :: [Int]-    , x:tail xs :: [Int]-    , x:tail [] :: [Int]-    , x:tail (_:_) :: [Int]-    , x:(_ ++ xs) :: [Int]-    , x:(_ ++ []) :: [Int]-    , x:(_ ++ (_:_)) :: [Int]-    , x:(xs ++ _) :: [Int]-    , x:([] ++ _) :: [Int]-    , x:((_:_) ++ _) :: [Int]-    , x:sort _ :: [Int]-    , x:insert _ _ :: [Int]-    , 0:zs :: [Int]-    , [0,0,0] :: [Int]-    , [0,1] :: [Int]-    , 0:_:ys :: [Int]-    , [0,_,0] :: [Int]-    , 0:_:_:xs :: [Int]-    , [0,_,_] :: [Int]-    , 0:_:_:_:_ :: [Int]-    , 0:_:x:_ :: [Int]-    , 0:_:0:_ :: [Int]-    , 0:_:id _:_ :: [Int]-    , 0:_:tail _ :: [Int]-    , 0:_:(_ ++ _) :: [Int]-    , 0:x:xs :: [Int]-    , [0,x] :: [Int]-    , 0:x:_:_ :: [Int]-    , 0:0:xs :: [Int]-    , [0,0] :: [Int]-    , 0:0:_:_ :: [Int]-    , 0:id _:xs :: [Int]-    , [0,id _] :: [Int]-    , 0:id _:_:_ :: [Int]-    , 0:y:_ :: [Int]-    , 0:1:_ :: [Int]-    , 0:id x:_ :: [Int]-    , 0:id 0:_ :: [Int]-    , 0:id (id _):_ :: [Int]-    , 0:negate _:_ :: [Int]-    , 0:abs _:_ :: [Int]-    , 0:_ + _:_ :: [Int]-    , 0:head _:_ :: [Int]-    , 0:ord _:_ :: [Int]-    , 0:tail xs :: [Int]-    , 0:tail [] :: [Int]-    , 0:tail (_:_) :: [Int]-    , 0:(_ ++ xs) :: [Int]-    , 0:(_ ++ []) :: [Int]-    , 0:(_ ++ (_:_)) :: [Int]-    , 0:(xs ++ _) :: [Int]-    , 0:([] ++ _) :: [Int]-    , 0:((_:_) ++ _) :: [Int]-    , 0:sort _ :: [Int]-    , 0:insert _ _ :: [Int]-    , id _:zs :: [Int]-    , [id _,0,0] :: [Int]-    , [id _,1] :: [Int]-    , id _:_:ys :: [Int]-    , [id _,_,0] :: [Int]-    , id _:_:_:xs :: [Int]-    , [id _,_,_] :: [Int]-    , id _:_:_:_:_ :: [Int]-    , id _:_:x:_ :: [Int]-    , id _:_:0:_ :: [Int]-    , id _:_:id _:_ :: [Int]-    , id _:_:tail _ :: [Int]-    , id _:_:(_ ++ _) :: [Int]-    , id _:x:xs :: [Int]-    , [id _,x] :: [Int]-    , id _:x:_:_ :: [Int]-    , id _:0:xs :: [Int]-    , [id _,0] :: [Int]-    , id _:0:_:_ :: [Int]-    , id _:id _:xs :: [Int]-    , [id _,id _] :: [Int]-    , id _:id _:_:_ :: [Int]-    , id _:y:_ :: [Int]-    , id _:1:_ :: [Int]-    , id _:id x:_ :: [Int]-    , id _:id 0:_ :: [Int]-    , id _:id (id _):_ :: [Int]-    , id _:negate _:_ :: [Int]-    , id _:abs _:_ :: [Int]-    , id _:_ + _:_ :: [Int]-    , id _:head _:_ :: [Int]-    , id _:ord _:_ :: [Int]-    , id _:tail xs :: [Int]-    , id _:tail [] :: [Int]-    , id _:tail (_:_) :: [Int]-    , id _:(_ ++ xs) :: [Int]-    , id _:(_ ++ []) :: [Int]-    , id _:(_ ++ (_:_)) :: [Int]-    , id _:(xs ++ _) :: [Int]-    , id _:([] ++ _) :: [Int]-    , id _:((_:_) ++ _) :: [Int]-    , id _:sort _ :: [Int]-    , id _:insert _ _ :: [Int]-    , y:ys :: [Int]-    , [y,0] :: [Int]-    , y:_:xs :: [Int]-    , [y,_] :: [Int]-    , y:_:_:_ :: [Int]-    , y:x:_ :: [Int]-    , y:0:_ :: [Int]-    , y:id _:_ :: [Int]-    , y:tail _ :: [Int]-    , y:(_ ++ _) :: [Int]-    , 1:ys :: [Int]-    , [1,0] :: [Int]-    , 1:_:xs :: [Int]-    , [1,_] :: [Int]-    , 1:_:_:_ :: [Int]-    , 1:x:_ :: [Int]-    , 1:0:_ :: [Int]-    , 1:id _:_ :: [Int]-    , 1:tail _ :: [Int]-    , 1:(_ ++ _) :: [Int]-    , id x:ys :: [Int]-    , [id x,0] :: [Int]-    , id x:_:xs :: [Int]-    , [id x,_] :: [Int]-    , id x:_:_:_ :: [Int]-    , id x:x:_ :: [Int]-    , id x:0:_ :: [Int]-    , id x:id _:_ :: [Int]-    , id x:tail _ :: [Int]-    , id x:(_ ++ _) :: [Int]-    , id 0:ys :: [Int]-    , [id 0,0] :: [Int]-    , id 0:_:xs :: [Int]-    , [id 0,_] :: [Int]-    , id 0:_:_:_ :: [Int]-    , id 0:x:_ :: [Int]-    , id 0:0:_ :: [Int]-    , id 0:id _:_ :: [Int]-    , id 0:tail _ :: [Int]-    , id 0:(_ ++ _) :: [Int]-    , id (id _):ys :: [Int]-    , [id (id _),0] :: [Int]-    , id (id _):_:xs :: [Int]-    , [id (id _),_] :: [Int]-    , id (id _):_:_:_ :: [Int]-    , id (id _):x:_ :: [Int]-    , id (id _):0:_ :: [Int]-    , id (id _):id _:_ :: [Int]-    , id (id _):tail _ :: [Int]-    , id (id _):(_ ++ _) :: [Int]-    , negate _:ys :: [Int]-    , [negate _,0] :: [Int]-    , negate _:_:xs :: [Int]-    , [negate _,_] :: [Int]-    , negate _:_:_:_ :: [Int]-    , negate _:x:_ :: [Int]-    , negate _:0:_ :: [Int]-    , negate _:id _:_ :: [Int]-    , negate _:tail _ :: [Int]-    , negate _:(_ ++ _) :: [Int]-    , abs _:ys :: [Int]-    , [abs _,0] :: [Int]-    , abs _:_:xs :: [Int]-    , [abs _,_] :: [Int]-    , abs _:_:_:_ :: [Int]-    , abs _:x:_ :: [Int]-    , abs _:0:_ :: [Int]-    , abs _:id _:_ :: [Int]-    , abs _:tail _ :: [Int]-    , abs _:(_ ++ _) :: [Int]-    , _ + _:ys :: [Int]-    , [_ + _,0] :: [Int]-    , _ + _:_:xs :: [Int]-    , [_ + _,_] :: [Int]-    , _ + _:_:_:_ :: [Int]-    , _ + _:x:_ :: [Int]-    , _ + _:0:_ :: [Int]-    , _ + _:id _:_ :: [Int]-    , _ + _:tail _ :: [Int]-    , _ + _:(_ ++ _) :: [Int]-    , head _:ys :: [Int]-    , [head _,0] :: [Int]-    , head _:_:xs :: [Int]-    , [head _,_] :: [Int]-    , head _:_:_:_ :: [Int]-    , head _:x:_ :: [Int]-    , head _:0:_ :: [Int]-    , head _:id _:_ :: [Int]-    , head _:tail _ :: [Int]-    , head _:(_ ++ _) :: [Int]-    , ord _:ys :: [Int]-    , [ord _,0] :: [Int]-    , ord _:_:xs :: [Int]-    , [ord _,_] :: [Int]-    , ord _:_:_:_ :: [Int]-    , ord _:x:_ :: [Int]-    , ord _:0:_ :: [Int]-    , ord _:id _:_ :: [Int]-    , ord _:tail _ :: [Int]-    , ord _:(_ ++ _) :: [Int]-    , z:xs :: [Int]-    , [z] :: [Int]-    , z:_:_ :: [Int]-    , (-1):xs :: [Int]-    , [-1] :: [Int]-    , (-1):_:_ :: [Int]-    , id y:xs :: [Int]-    , [id y] :: [Int]-    , id y:_:_ :: [Int]-    , id 1:xs :: [Int]-    , [id 1] :: [Int]-    , id 1:_:_ :: [Int]-    , id (id x):xs :: [Int]-    , [id (id x)] :: [Int]-    , id (id x):_:_ :: [Int]-    , id (id 0):xs :: [Int]-    , [id (id 0)] :: [Int]-    , id (id 0):_:_ :: [Int]-    , id (id (id _)):xs :: [Int]-    , [id (id (id _))] :: [Int]-    , id (id (id _)):_:_ :: [Int]-    , id (negate _):xs :: [Int]-    , [id (negate _)] :: [Int]-    , id (negate _):_:_ :: [Int]-    , id (abs _):xs :: [Int]-    , [id (abs _)] :: [Int]-    , id (abs _):_:_ :: [Int]-    , id (_ + _):xs :: [Int]-    , [id (_ + _)] :: [Int]-    , id (_ + _):_:_ :: [Int]-    , id (head _):xs :: [Int]-    , [id (head _)] :: [Int]-    , id (head _):_:_ :: [Int]-    , id (ord _):xs :: [Int]-    , [id (ord _)] :: [Int]-    , id (ord _):_:_ :: [Int]-    , negate x:xs :: [Int]-    , [negate x] :: [Int]-    , negate x:_:_ :: [Int]-    , negate 0:xs :: [Int]-    , [negate 0] :: [Int]-    , negate 0:_:_ :: [Int]-    , negate (id _):xs :: [Int]-    , [negate (id _)] :: [Int]-    , negate (id _):_:_ :: [Int]-    , abs x:xs :: [Int]-    , [abs x] :: [Int]-    , abs x:_:_ :: [Int]-    , abs 0:xs :: [Int]-    , [abs 0] :: [Int]-    , abs 0:_:_ :: [Int]-    , abs (id _):xs :: [Int]-    , [abs (id _)] :: [Int]-    , abs (id _):_:_ :: [Int]-    , _ + x:xs :: [Int]-    , [_ + x] :: [Int]-    , _ + x:_:_ :: [Int]-    , _ + 0:xs :: [Int]-    , [_ + 0] :: [Int]-    , _ + 0:_:_ :: [Int]-    , _ + id _:xs :: [Int]-    , [_ + id _] :: [Int]-    , _ + id _:_:_ :: [Int]-    , x + _:xs :: [Int]-    , [x + _] :: [Int]-    , x + _:_:_ :: [Int]-    , 0 + _:xs :: [Int]-    , [0 + _] :: [Int]-    , 0 + _:_:_ :: [Int]-    , id _ + _:xs :: [Int]-    , [id _ + _] :: [Int]-    , id _ + _:_:_ :: [Int]-    , _ * _:xs :: [Int]-    , [_ * _] :: [Int]-    , _ * _:_:_ :: [Int]-    , f _:xs :: [Int]-    , [f _] :: [Int]-    , f _:_:_ :: [Int]-    , head xs:xs :: [Int]-    , [head xs] :: [Int]-    , head xs:_:_ :: [Int]-    , head []:xs :: [Int]-    , [head []] :: [Int]-    , head []:_:_ :: [Int]-    , head (_:_):xs :: [Int]-    , [head (_:_)] :: [Int]-    , head (_:_):_:_ :: [Int]-    , ord c:xs :: [Int]-    , [ord c] :: [Int]-    , ord c:_:_ :: [Int]-    , ord 'a':xs :: [Int]-    , [ord 'a'] :: [Int]-    , ord 'a':_:_ :: [Int]-    , x':_ :: [Int]-    , 2:_ :: [Int]-    , id z:_ :: [Int]-    , id (-1):_ :: [Int]-    , id (id y):_ :: [Int]-    , id (id 1):_ :: [Int]-    , id (id (id x)):_ :: [Int]-    , id (id (id 0)):_ :: [Int]-    , id (id (id (id _))):_ :: [Int]-    , id (id (negate _)):_ :: [Int]-    , id (id (abs _)):_ :: [Int]-    , id (id (_ + _)):_ :: [Int]-    , id (id (head _)):_ :: [Int]-    , id (id (ord _)):_ :: [Int]-    , id (negate x):_ :: [Int]-    , id (negate 0):_ :: [Int]-    , id (negate (id _)):_ :: [Int]-    , id (abs x):_ :: [Int]-    , id (abs 0):_ :: [Int]-    , id (abs (id _)):_ :: [Int]-    , id (_ + x):_ :: [Int]-    , id (_ + 0):_ :: [Int]-    , id (_ + id _):_ :: [Int]-    , id (x + _):_ :: [Int]-    , id (0 + _):_ :: [Int]-    , id (id _ + _):_ :: [Int]-    , id (_ * _):_ :: [Int]-    , id (f _):_ :: [Int]-    , id (head xs):_ :: [Int]-    , id (head []):_ :: [Int]-    , id (head (_:_)):_ :: [Int]-    , id (ord c):_ :: [Int]-    , id (ord 'a'):_ :: [Int]-    , negate y:_ :: [Int]-    , negate 1:_ :: [Int]-    , negate (id x):_ :: [Int]-    , negate (id 0):_ :: [Int]-    , negate (id (id _)):_ :: [Int]-    , negate (negate _):_ :: [Int]-    , negate (abs _):_ :: [Int]-    , negate (_ + _):_ :: [Int]-    , negate (head _):_ :: [Int]-    , negate (ord _):_ :: [Int]-    , abs y:_ :: [Int]-    , abs 1:_ :: [Int]-    , abs (id x):_ :: [Int]-    , abs (id 0):_ :: [Int]-    , abs (id (id _)):_ :: [Int]-    , abs (negate _):_ :: [Int]-    , abs (abs _):_ :: [Int]-    , abs (_ + _):_ :: [Int]-    , abs (head _):_ :: [Int]-    , abs (ord _):_ :: [Int]-    , _ + y:_ :: [Int]-    , _ + 1:_ :: [Int]-    , _ + id x:_ :: [Int]-    , _ + id 0:_ :: [Int]-    , _ + id (id _):_ :: [Int]-    , _ + negate _:_ :: [Int]-    , _ + abs _:_ :: [Int]-    , _ + (_ + _):_ :: [Int]-    , _ + head _:_ :: [Int]-    , _ + ord _:_ :: [Int]-    , x + x:_ :: [Int]-    , x + 0:_ :: [Int]-    , x + id _:_ :: [Int]-    , 0 + x:_ :: [Int]-    , 0 + 0:_ :: [Int]-    , 0 + id _:_ :: [Int]-    , id _ + x:_ :: [Int]-    , id _ + 0:_ :: [Int]-    , id _ + id _:_ :: [Int]-    , _ * x:_ :: [Int]-    , _ * 0:_ :: [Int]-    , _ * id _:_ :: [Int]-    , f x:_ :: [Int]-    , f 0:_ :: [Int]-    , f (id _):_ :: [Int]-    , y + _:_ :: [Int]-    , 1 + _:_ :: [Int]-    , id x + _:_ :: [Int]-    , id 0 + _:_ :: [Int]-    , id (id _) + _:_ :: [Int]-    , negate _ + _:_ :: [Int]-    , abs _ + _:_ :: [Int]-    , (_ + _) + _:_ :: [Int]-    , head _ + _:_ :: [Int]-    , ord _ + _:_ :: [Int]-    , x * _:_ :: [Int]-    , 0 * _:_ :: [Int]-    , id _ * _:_ :: [Int]-    , g _:_ :: [Int]-    , head ys:_ :: [Int]-    , head [0]:_ :: [Int]-    , head (_:xs):_ :: [Int]-    , head [_]:_ :: [Int]-    , head (_:_:_):_ :: [Int]-    , head (x:_):_ :: [Int]-    , head (0:_):_ :: [Int]-    , head (id _:_):_ :: [Int]-    , head (tail _):_ :: [Int]-    , head (_ ++ _):_ :: [Int]-    , ord d:_ :: [Int]-    , ord ' ':_ :: [Int]-    , tail zs :: [Int]-    , tail [0,0] :: [Int]-    , tail [1] :: [Int]-    , tail (_:ys) :: [Int]-    , tail [_,0] :: [Int]-    , tail (_:_:xs) :: [Int]-    , tail [_,_] :: [Int]-    , tail (_:_:_:_) :: [Int]-    , tail (_:x:_) :: [Int]-    , tail (_:0:_) :: [Int]-    , tail (_:id _:_) :: [Int]-    , tail (_:tail _) :: [Int]-    , tail (_:(_ ++ _)) :: [Int]-    , tail (x:xs) :: [Int]-    , tail [x] :: [Int]-    , tail (x:_:_) :: [Int]-    , tail (0:xs) :: [Int]-    , tail [0] :: [Int]-    , tail (0:_:_) :: [Int]-    , tail (id _:xs) :: [Int]-    , tail [id _] :: [Int]-    , tail (id _:_:_) :: [Int]-    , tail (y:_) :: [Int]-    , tail (1:_) :: [Int]-    , tail (id x:_) :: [Int]-    , tail (id 0:_) :: [Int]-    , tail (id (id _):_) :: [Int]-    , tail (negate _:_) :: [Int]-    , tail (abs _:_) :: [Int]-    , tail (_ + _:_) :: [Int]-    , tail (head _:_) :: [Int]-    , tail (ord _:_) :: [Int]-    , tail (tail xs) :: [Int]-    , tail (tail []) :: [Int]-    , tail (tail (_:_)) :: [Int]-    , tail (_ ++ xs) :: [Int]-    , tail (_ ++ []) :: [Int]-    , tail (_ ++ (_:_)) :: [Int]-    , tail (xs ++ _) :: [Int]-    , tail ([] ++ _) :: [Int]-    , tail ((_:_) ++ _) :: [Int]-    , tail (sort _) :: [Int]-    , tail (insert _ _) :: [Int]-    , _ ++ zs :: [Int]-    , _ ++ [0,0] :: [Int]-    , _ ++ [1] :: [Int]-    , _ ++ (_:ys) :: [Int]-    , _ ++ [_,0] :: [Int]-    , _ ++ (_:_:xs) :: [Int]-    , _ ++ [_,_] :: [Int]-    , _ ++ (_:_:_:_) :: [Int]-    , _ ++ (_:x:_) :: [Int]-    , _ ++ (_:0:_) :: [Int]-    , _ ++ (_:id _:_) :: [Int]-    , _ ++ (_:tail _) :: [Int]-    , _ ++ (_:(_ ++ _)) :: [Int]-    , _ ++ (x:xs) :: [Int]-    , _ ++ [x] :: [Int]-    , _ ++ (x:_:_) :: [Int]-    , _ ++ (0:xs) :: [Int]-    , _ ++ [0] :: [Int]-    , _ ++ (0:_:_) :: [Int]-    , _ ++ (id _:xs) :: [Int]-    , _ ++ [id _] :: [Int]-    , _ ++ (id _:_:_) :: [Int]-    , _ ++ (y:_) :: [Int]-    , _ ++ (1:_) :: [Int]-    , _ ++ (id x:_) :: [Int]-    , _ ++ (id 0:_) :: [Int]-    , _ ++ (id (id _):_) :: [Int]-    , _ ++ (negate _:_) :: [Int]-    , _ ++ (abs _:_) :: [Int]-    , _ ++ (_ + _:_) :: [Int]-    , _ ++ (head _:_) :: [Int]-    , _ ++ (ord _:_) :: [Int]-    , _ ++ tail xs :: [Int]-    , _ ++ tail [] :: [Int]-    , _ ++ tail (_:_) :: [Int]-    , _ ++ (_ ++ xs) :: [Int]-    , _ ++ (_ ++ []) :: [Int]-    , _ ++ (_ ++ (_:_)) :: [Int]-    , _ ++ (xs ++ _) :: [Int]-    , _ ++ ([] ++ _) :: [Int]-    , _ ++ ((_:_) ++ _) :: [Int]-    , _ ++ sort _ :: [Int]-    , _ ++ insert _ _ :: [Int]-    , xs ++ ys :: [Int]-    , xs ++ [0] :: [Int]-    , xs ++ (_:xs) :: [Int]-    , xs ++ [_] :: [Int]-    , xs ++ (_:_:_) :: [Int]-    , xs ++ (x:_) :: [Int]-    , xs ++ (0:_) :: [Int]-    , xs ++ (id _:_) :: [Int]-    , xs ++ tail _ :: [Int]-    , xs ++ (_ ++ _) :: [Int]-    , [] ++ ys :: [Int]-    , [] ++ [0] :: [Int]-    , [] ++ (_:xs) :: [Int]-    , [] ++ [_] :: [Int]-    , [] ++ (_:_:_) :: [Int]-    , [] ++ (x:_) :: [Int]-    , [] ++ (0:_) :: [Int]-    , [] ++ (id _:_) :: [Int]-    , [] ++ tail _ :: [Int]-    , [] ++ (_ ++ _) :: [Int]-    , (_:_) ++ ys :: [Int]-    , (_:_) ++ [0] :: [Int]-    , (_:_) ++ (_:xs) :: [Int]-    , (_:_) ++ [_] :: [Int]-    , (_:_) ++ (_:_:_) :: [Int]-    , (_:_) ++ (x:_) :: [Int]-    , (_:_) ++ (0:_) :: [Int]-    , (_:_) ++ (id _:_) :: [Int]-    , (_:_) ++ tail _ :: [Int]-    , (_:_) ++ (_ ++ _) :: [Int]-    , ys ++ xs :: [Int]-    , ys ++ [] :: [Int]-    , ys ++ (_:_) :: [Int]-    , [0] ++ xs :: [Int]-    , [0] ++ [] :: [Int]-    , [0] ++ (_:_) :: [Int]-    , (_:xs) ++ xs :: [Int]-    , (_:xs) ++ [] :: [Int]-    , (_:xs) ++ (_:_) :: [Int]-    , [_] ++ xs :: [Int]-    , [_] ++ [] :: [Int]-    , [_] ++ (_:_) :: [Int]-    , (_:_:_) ++ xs :: [Int]-    , (_:_:_) ++ [] :: [Int]-    , (_:_:_) ++ (_:_) :: [Int]-    , (x:_) ++ xs :: [Int]-    , (x:_) ++ [] :: [Int]-    , (x:_) ++ (_:_) :: [Int]-    , (0:_) ++ xs :: [Int]-    , (0:_) ++ [] :: [Int]-    , (0:_) ++ (_:_) :: [Int]-    , (id _:_) ++ xs :: [Int]-    , (id _:_) ++ [] :: [Int]-    , (id _:_) ++ (_:_) :: [Int]-    , tail _ ++ xs :: [Int]-    , tail _ ++ [] :: [Int]-    , tail _ ++ (_:_) :: [Int]-    , (_ ++ _) ++ xs :: [Int]-    , (_ ++ _) ++ [] :: [Int]-    , (_ ++ _) ++ (_:_) :: [Int]-    , zs ++ _ :: [Int]-    , [0,0] ++ _ :: [Int]-    , [1] ++ _ :: [Int]-    , (_:ys) ++ _ :: [Int]-    , [_,0] ++ _ :: [Int]-    , (_:_:xs) ++ _ :: [Int]-    , [_,_] ++ _ :: [Int]-    , (_:_:_:_) ++ _ :: [Int]-    , (_:x:_) ++ _ :: [Int]-    , (_:0:_) ++ _ :: [Int]-    , (_:id _:_) ++ _ :: [Int]-    , (_:tail _) ++ _ :: [Int]-    , (_:(_ ++ _)) ++ _ :: [Int]-    , (x:xs) ++ _ :: [Int]-    , [x] ++ _ :: [Int]-    , (x:_:_) ++ _ :: [Int]-    , (0:xs) ++ _ :: [Int]-    , [0] ++ _ :: [Int]-    , (0:_:_) ++ _ :: [Int]-    , (id _:xs) ++ _ :: [Int]-    , [id _] ++ _ :: [Int]-    , (id _:_:_) ++ _ :: [Int]-    , (y:_) ++ _ :: [Int]-    , (1:_) ++ _ :: [Int]-    , (id x:_) ++ _ :: [Int]-    , (id 0:_) ++ _ :: [Int]-    , (id (id _):_) ++ _ :: [Int]-    , (negate _:_) ++ _ :: [Int]-    , (abs _:_) ++ _ :: [Int]-    , (_ + _:_) ++ _ :: [Int]-    , (head _:_) ++ _ :: [Int]-    , (ord _:_) ++ _ :: [Int]-    , tail xs ++ _ :: [Int]-    , tail [] ++ _ :: [Int]-    , tail (_:_) ++ _ :: [Int]-    , (_ ++ xs) ++ _ :: [Int]-    , (_ ++ []) ++ _ :: [Int]-    , (_ ++ (_:_)) ++ _ :: [Int]-    , (xs ++ _) ++ _ :: [Int]-    , ([] ++ _) ++ _ :: [Int]-    , ((_:_) ++ _) ++ _ :: [Int]-    , sort _ ++ _ :: [Int]-    , insert _ _ ++ _ :: [Int]-    , sort ys :: [Int]-    , sort [0] :: [Int]-    , sort (_:xs) :: [Int]-    , sort [_] :: [Int]-    , sort (_:_:_) :: [Int]-    , sort (x:_) :: [Int]-    , sort (0:_) :: [Int]-    , sort (id _:_) :: [Int]-    , sort (tail _) :: [Int]-    , sort (_ ++ _) :: [Int]-    , insert _ ys :: [Int]-    , insert _ [0] :: [Int]-    , insert _ (_:xs) :: [Int]-    , insert _ [_] :: [Int]-    , insert _ (_:_:_) :: [Int]-    , insert _ (x:_) :: [Int]-    , insert _ (0:_) :: [Int]-    , insert _ (id _:_) :: [Int]-    , insert _ (tail _) :: [Int]-    , insert _ (_ ++ _) :: [Int]-    , insert x xs :: [Int]-    , insert x [] :: [Int]-    , insert x (_:_) :: [Int]-    , insert 0 xs :: [Int]-    , insert 0 [] :: [Int]-    , insert 0 (_:_) :: [Int]-    , insert (id _) xs :: [Int]-    , insert (id _) [] :: [Int]-    , insert (id _) (_:_) :: [Int]-    , insert y _ :: [Int]-    , insert 1 _ :: [Int]-    , insert (id x) _ :: [Int]-    , insert (id 0) _ :: [Int]-    , insert (id (id _)) _ :: [Int]-    , insert (negate _) _ :: [Int]-    , insert (abs _) _ :: [Int]-    , insert (_ + _) _ :: [Int]-    , insert (head _) _ :: [Int]-    , insert (ord _) _ :: [Int]-    , (z +) :: Int -> Int-    , ((-1) +) :: Int -> Int-    , (id y +) :: Int -> Int-    , (id 1 +) :: Int -> Int-    , (id (id x) +) :: Int -> Int-    , (id (id 0) +) :: Int -> Int-    , (id (id (id _)) +) :: Int -> Int-    , (id (negate _) +) :: Int -> Int-    , (id (abs _) +) :: Int -> Int-    , (id (_ + _) +) :: Int -> Int-    , (id (head _) +) :: Int -> Int-    , (id (ord _) +) :: Int -> Int-    , (negate x +) :: Int -> Int-    , (negate 0 +) :: Int -> Int-    , (negate (id _) +) :: Int -> Int-    , (abs x +) :: Int -> Int-    , (abs 0 +) :: Int -> Int-    , (abs (id _) +) :: Int -> Int-    , ((_ + x) +) :: Int -> Int-    , ((_ + 0) +) :: Int -> Int-    , ((_ + id _) +) :: Int -> Int-    , ((x + _) +) :: Int -> Int-    , ((0 + _) +) :: Int -> Int-    , ((id _ + _) +) :: Int -> Int-    , (_ * _ +) :: Int -> Int-    , (f _ +) :: Int -> Int-    , (head xs +) :: Int -> Int-    , (head [] +) :: Int -> Int-    , (head (_:_) +) :: Int -> Int-    , (ord c +) :: Int -> Int-    , (ord 'a' +) :: Int -> Int-    , (y *) :: Int -> Int-    , (1 *) :: Int -> Int-    , (id x *) :: Int -> Int-    , (id 0 *) :: Int -> Int-    , (id (id _) *) :: Int -> Int-    , (negate _ *) :: Int -> Int-    , (abs _ *) :: Int -> Int-    , ((_ + _) *) :: Int -> Int-    , (head _ *) :: Int -> Int-    , (ord _ *) :: Int -> Int-    , h :: Int -> Int-    , (q ||) :: Bool -> Bool-    , (not p ||) :: Bool -> Bool-    , (not False ||) :: Bool -> Bool-    , (not True ||) :: Bool -> Bool-    , (not (not _) ||) :: Bool -> Bool-    , ((_ || _) ||) :: Bool -> Bool-    , (p &&) :: Bool -> Bool-    , (False &&) :: Bool -> Bool-    , (True &&) :: Bool -> Bool-    , (not _ &&) :: Bool -> Bool-    , (_ ==>) :: Bool -> Bool-    ]-  , ...-  ]
− test/model/eg/u-conjure.out
@@ -1,24 +0,0 @@-square :: Int -> Int-square x  =  x * x--add :: Int -> Int -> Int-add x y  =  x + y--factorial :: Int -> Int-cannot conjure--factorial :: Int -> Int-factorial x  =  foldr (*) 1 (enumFromTo 1 x)--second :: [Int] -> Int-second xs  =  head (tail xs)--(++) :: [Int] -> [Int] -> [Int]-xs ++ ys  =  foldr (:) ys xs--reverse :: [Int] -> [Int]-cannot conjure--reverse :: [Int] -> [Int]-reverse xs  =  foldr (foldr (:) . unit) [] xs-
− test/model/eg/u-extrapolate.out
@@ -1,26 +0,0 @@-sort . sort = sort-+++ Tests passed.--length . nub = length  (incorrect when there are repeated elements)-*** Falsified, counterexample:  [0,0]-               generalization:  x:x:xs--xs `union` ys == ys `union` xs  (incorrect for repeated elements)-*** Falsified, counterexample:  ([],[0,0])-               generalization:  (xs,x:x:xs)-               generalization:  ([],x:x:xs)--\(x,y) -> x + y == y + x-+++ Tests passed.--\x -> x == x + 1  (always incorrect)-*** Falsified, counterexample:  0-               generalization:  x--\(x,y) -> x + y == x + x  (incorrect)-*** Falsified, counterexample:  (0,1)--\(x,y) -> x /= y  (incorrect whenever x and y are equal)-*** Falsified, counterexample:  (0,0)-               generalization:  (x,x)-
− test/model/eg/u-speculate.out
@@ -1,45 +0,0 @@-Equations about _, 0, (+), abs:-abs 0  =  0-x + 0  =  x-0 + x  =  x-abs (abs x)  =  abs x-x + y  =  y + x-abs (x + y)  =  abs (y + x)-abs (x + abs x)  =  x + abs x-abs (abs x + x)  =  x + abs x-abs x + abs x  =  abs (x + x)-x + (y + z)  =  x + (z + y)-x + (y + z)  =  y + (x + z)-x + (y + z)  =  y + (z + x)-x + (y + z)  =  z + (x + y)-x + (y + z)  =  z + (y + x)-(x + y) + z  =  x + (y + z)-(x + y) + z  =  x + (z + y)-(x + y) + z  =  y + (x + z)-(x + y) + z  =  y + (z + x)-(x + y) + z  =  z + (y + x)-(x + y) + z  =  (x + z) + y-(x + y) + z  =  (y + x) + z-(x + y) + z  =  (y + z) + x-(x + y) + z  =  (z + x) + y-(x + y) + z  =  (z + y) + x--Equations about _, False, True, not:-not False  =  True-not True  =  False-not (not p)  =  p--Equations about _, _, [], (:), (++), sort:-sort []  =  []-xs ++ []  =  xs-[] ++ xs  =  xs-sort (sort xs)  =  sort xs-sort [x]  =  [x]-[x] ++ xs  =  x:xs-sort (xs ++ ys)  =  sort (ys ++ xs)-sort (x:sort xs)  =  sort (x:xs)-sort (xs ++ sort ys)  =  sort (xs ++ ys)-sort (sort xs ++ ys)  =  sort (xs ++ ys)-(x:xs) ++ ys  =  x:(xs ++ ys)-(xs ++ ys) ++ zs  =  xs ++ (ys ++ zs)-
test/name-derive.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). {-# LANGUAGE TemplateHaskell #-} @@ -6,10 +6,10 @@  import Data.Express.Utils.List -data Peano = Zero | Succ Peano deriving Show-data List a = a :- List a | Nil deriving Show-data Bush a = Bush a :-: Bush a | Leaf a deriving (Show, Eq)-data Tree a = Node (Tree a) a (Tree a) | Null deriving (Show, Eq)+data Peano  =  Zero | Succ Peano deriving Show+data List a  =  a :- List a | Nil deriving Show+data Bush a  =  Bush a :-: Bush a | Leaf a deriving (Show, Eq)+data Tree a  =  Node (Tree a) a (Tree a) | Null deriving (Show, Eq)  instance Num Peano where   Zero + n  =  n@@ -49,10 +49,10 @@ deriveNameIfNeeded ''Either  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , name (undefined :: Peano) == "x"
test/name.hs view
@@ -1,14 +1,14 @@--- Copyright (c) 2017-2021 Rudy Matela.+-- Copyright (c) 2017-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test  import Data.Express.Utils.List  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    -- simple types
test/ord.hs view
@@ -1,12 +1,12 @@--- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , holds n $ (okEqOrd :: Expr -> Expr -> Expr -> Bool)
test/sdist view
@@ -2,7 +2,7 @@ # # test/sdist: tests the package generated by "cabal sdist". #-# Copyright (c) 2015-2023 Rudy Matela.+# Copyright (c) 2015-2024 Rudy Matela. # Distributed under the 3-Clause BSD licence.  set -xe
test/show.hs view
@@ -1,14 +1,14 @@--- Copyright (c) 2017-2021 Rudy Matela.+-- Copyright (c) 2017-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test  import Data.Express.Utils.List  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    -- showing expressions@@ -43,6 +43,8 @@   , show (space -:- emptyString) == "\" \" :: [Char]"   , show (space -:- ccs)         == "' ':cs :: [Char]"   , show (ae -:- bee -:- emptyString) == "\"ab\" :: [Char]"+  , show (ae -:- bee -:- nilChar) == "['a','b'] :: [Char]"+  , show (ae -:- cc -:- nilChar) == "['a',c] :: [Char]"   , show (ae -:- bee -:- ccs)         == "'a':'b':cs :: [Char]"   , show (ae -:- space -:- bee -:- lineBreak -:- emptyString) == "\"a b\\n\" :: [Char]"   , show (cc -:- space -:- dd -:- lineBreak -:- emptyString)  == "c:' ':d:\"\\n\" :: [Char]"@@ -147,4 +149,18 @@   , show (val ([0,1,2] :: [A])) == "[0,1,2] :: [A]"   , show (var "xs" (undefined :: [A])) == "xs :: [A]"   , show (value "id" (id :: [A] -> [A]) :$ var "xs" (undefined :: [A])) == "id xs :: [A]"++  , show (xx -:- nil -++- is_) == "x:([] ++ _) :: [Int]"+  , show (xx -:- yy -:- nil -++- is_) == "x:y:([] ++ _) :: [Int]"++  , show (cc -:- emptyString -++- cs_) == "c:(\"\" ++ _) :: [Char]"+  , show (cc -:- dd -:- emptyString -++- cs_) == "c:d:(\"\" ++ _) :: [Char]"+  , show (ae -:- bee -:- emptyString -++- cs_) == "'a':'b':(\"\" ++ _) :: [Char]"++  -- list pretty-printing only works with explicit val [] terminator+  -- other terminating consts are not unpacked+  , show (zero -:- one -:- two -:- nil) == "[0,1,2] :: [Int]"+  , show (zero -:- val [1,2::Int]) == "0:[1,2] :: [Int]"+  , show (xx -:- yy -:- three -:- four -:- nil) == "[x,y,3,4] :: [Int]"+  , show (xx -:- yy -:- val [3,4::Int]) == "x:y:[3,4] :: [Int]"   ]
test/triexpr.hs view
@@ -16,8 +16,8 @@   [ True    , length allRules == 99-  , all isWellTyped $ map fst allRules-  , all isWellTyped $ map snd allRules+  , all (isWellTyped . fst) allRules+  , all (isWellTyped . snd) allRules    , T.lookup zero  trie == []   , T.lookup one   trie == []
test/typecheck.hs view
@@ -2,7 +2,7 @@ -- -- to be used for triggering typechecking using runhugs ----- Copyright (c) 2019-2021 Rudy Matela.+-- Copyright (c) 2019-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Data.Express.Core import Data.Express.Hole
test/utils.hs view
@@ -1,4 +1,4 @@--- Copyright (c) 2017-2021 Rudy Matela.+-- Copyright (c) 2017-2024 Rudy Matela. -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test @@ -7,10 +7,10 @@ import Data.Express.Utils.Typeable  main :: IO ()-main = mainTest tests 5040+main  =  mainTest tests 5040  tests :: Int -> [Bool]-tests n =+tests n  =   [ True    , holds n $ \xs -> nubSort xs == nub (sort xs :: [Int])