packages feed

express 0.1.4 → 0.1.6

raw patch · 26 files changed

+20232/−900 lines, 26 filesdep ~leancheckPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: leancheck

API changes (from Hackage documentation)

+ Data.Express: compareLexicographically :: Expr -> Expr -> Ordering
+ Data.Express: compareQuickly :: Expr -> Expr -> Ordering
+ Data.Express.Core: compareLexicographically :: Expr -> Expr -> Ordering
+ Data.Express.Core: compareQuickly :: Expr -> Expr -> Ordering

Files

.gitignore view
@@ -19,6 +19,7 @@ eg/u-speculate bench/compare bench/pairs+bench/sort bench/tiers test/canon test/core
.travis.yml view
@@ -45,7 +45,8 @@  matrix:   allow_failures:-  - ghc: 'head'+  - env:                   GHCVER=head        CABALVER=head    STACKVER=nightly-2021-04-06+  - env:                   GHCVER=9.0.1       CABALVER=head    STACKVER=nightly-2021-04-06   include:   - ghc: 'head'     env:                   GHCVER=head        CABALVER=head    STACKVER=nightly-2021-04-06
Makefile view
@@ -27,6 +27,7 @@   eg/u-speculate \   bench/compare \   bench/pairs \+  bench/sort \   bench/tiers \   $(EGS) GHCIMPORTDIRS = src:test
TODO.md view
@@ -3,12 +3,9 @@  Here is a list of things TO DO for express: -* review Haddock of `Data.Express`--* document the `Instances` module,-  including note about linear time on searches+* document and test the `Instances` module -* test the `Instances` module+* review Haddock of `Data.Express`  * sweep occurrences of `TODO:` throughout source files 
bench/compare.hs view
@@ -9,7 +9,7 @@ main  =  do   as <- getArgs   let n = case as of-          [] -> 1000+          [] -> 5040           (n:_) -> read n   putStrLn . unlines . map showCompare $ take n (list :: [(Expr,Expr)])   where
bench/runtime/zero/bench/ord.runtime view
@@ -1,1 +1,1 @@-0.00+0.16
bench/runtime/zero/bench/pairs.runtime view
@@ -1,1 +1,1 @@-0.01+0.00
bench/runtime/zero/bench/tiers.runtime view
@@ -1,1 +1,1 @@-0.21+0.18
bench/runtime/zero/eg/u-extrapolate.runtime view
@@ -1,1 +1,1 @@-0.01+0.00
bench/runtime/zero/eg/u-speculate.runtime view
@@ -1,1 +1,1 @@-0.33+0.30
bench/runtime/zero/versions view
@@ -1,1 +1,1 @@-GHC 8.6.5+GHC 8.10.4
+ bench/sort.hs view
@@ -0,0 +1,25 @@+-- ord.hs -- prints different expression sortins:+--+-- Copyright (c) 2019-2021 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++showL :: Show a => [a] -> String+showL xs  =  "  [ " ++ intercalate "\n  , " (map show xs) ++ "\n  ]\n"++printL :: Show a => [a] -> IO ()+printL =  putStrLn . showL++main :: IO ()+main  =  do+  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 compareQuickly $ take 5040 $ list  ::  [ Expr ]  ="+  printL (sortBy compareQuickly $ take 5040 $ list :: [Expr])
express.cabal view
@@ -1,6 +1,6 @@ -- Cabal file for express name: express-version: 0.1.4+version: 0.1.6 synopsis: Dynamically-typed expressions involving applications and variables. description:   Express is a library for manipulating dynamically typed Haskell expressions.@@ -58,7 +58,7 @@ source-repository this   type:           git   location:       https://github.com/rudymatela/express-  tag:            v0.1.4+  tag:            v0.1.6  library   exposed-modules:     Data.Express@@ -88,7 +88,7 @@   main-is:             main.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite core@@ -96,7 +96,7 @@   main-is:             core.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite canon@@ -104,7 +104,7 @@   main-is:             canon.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite hole@@ -112,7 +112,7 @@   main-is:             hole.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite match@@ -120,7 +120,7 @@   main-is:             match.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite map@@ -128,7 +128,7 @@   main-is:             map.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite fixtures@@ -136,7 +136,7 @@   main-is:             fixtures.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite instances@@ -144,7 +144,7 @@   main-is:             instances.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite express-instances@@ -152,7 +152,7 @@   main-is:             express.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite express-derive@@ -160,7 +160,7 @@   main-is:             express-derive.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite ord@@ -168,7 +168,7 @@   main-is:             ord.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite listable@@ -176,7 +176,7 @@   main-is:             listable.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite name@@ -184,7 +184,7 @@   main-is:             name.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite name-derive@@ -192,7 +192,7 @@   main-is:             name-derive.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite fold@@ -200,7 +200,7 @@   main-is:             fold.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite show@@ -208,7 +208,7 @@   main-is:             show.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  test-suite utils@@ -216,7 +216,7 @@   main-is:             utils.hs   hs-source-dirs:      test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  benchmark compare@@ -224,7 +224,7 @@   main-is:             compare.hs   hs-source-dirs:      bench, test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  benchmark pairs@@ -232,27 +232,35 @@   main-is:             pairs.hs   hs-source-dirs:      bench, test   other-modules:       Test, Test.ListableExpr-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010 +benchmark sort+  type:                exitcode-stdio-1.0+  main-is:             sort.hs+  hs-source-dirs:      bench, test+  other-modules:       Test, Test.ListableExpr+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4+  default-language:    Haskell2010+ 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.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  benchmark u-extrapolate   type:                exitcode-stdio-1.0   main-is:             u-extrapolate.hs   hs-source-dirs:      eg-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010  benchmark u-speculate   type:                exitcode-stdio-1.0   main-is:             u-speculate.hs   hs-source-dirs:      eg-  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.3+  build-depends:       base >= 4 && < 5, express, leancheck >= 0.9.4   default-language:    Haskell2010
mk/depend.mk view
@@ -52,6 +52,33 @@   test/Test/ListableExpr.hs \   bench/pairs.hs \   mk/toplibs+bench/sort.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/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/sort.hs+bench/sort: \+  test/Test.hs \+  test/Test/ListableExpr.hs \+  bench/sort.hs \+  mk/toplibs bench/tiers.o: \   test/Test.hs \   test/Test/ListableExpr.hs \
mk/haskell.mk view
@@ -80,7 +80,8 @@   # Cleaning rule (add as a clean dependency)-.PHONY: clean-hi-o+clean-hs: clean-hi-o clean-haddock clean-cabal clean-stack+ clean-hi-o: 	find $(ALL_HSS) | sed -e 's/hs$$/o/'      | xargs rm -f 	find $(ALL_HSS) | sed -e 's/hs$$/hi/'     | xargs rm -f@@ -113,6 +114,11 @@ 	  $(HADDOCK_HLNK_SRC) \ 	  $(HADDOCKFLAGS) +clean-cabal:+	rm -rf dist/ dist-newstyle/ cabal.project.local cabal.project.local~++clean-stack:+	rm -rf .stack-work/ stack.yaml.lock  # lists all Haskell source files list-all-hss:
src/Data/Express.hs view
@@ -109,7 +109,7 @@ -- In this documentation, -- the complexity of most functions is given in big O notation -- where /n/ is the size of the expression being manipulated or produced.--- There may still be a /m/ cost associated with the values being stored in 'Expr's.+-- There may still be a /m/ cost associated with the values stored in 'Expr's. {-# LANGUAGE CPP #-} module Data.Express   ( @@ -146,6 +146,8 @@    -- ** Comparing Exprs   , compareComplexity+  , compareLexicographically+  , compareQuickly    -- ** Properties of Exprs   , arity
src/Data/Express/Canon.hs view
@@ -170,11 +170,22 @@ -- > > canonicalVariations $ ord' bee -- > [ord 'b' :: Int] --+-- When applying this to expressions already containing variables+-- new variables are introduced so name clashes are avoided:+--+-- > > canonicalVariations $ i_ -+- ii -+- jj -+- i_+-- > [ x + y + z + x' :: Int+-- > , x + y + z + x :: Int ]+-- -- > > canonicalVariations $ ii -+- jj--- > [i + j :: Int]+-- > [x + y :: Int] ----- Behaviour is undefined when applying this function to expressions already--- containing variables.+-- > > canonicalVariations $ xx -+- i_ -+- i_ -+- length' (c_ -:- unit c_) -+- yy+-- > [ (((x + y) + z) + length (c:d:"")) + x' :: Int+-- > , (((x + y) + z) + length (c:c:"")) + x' :: Int+-- > , (((x + y) + y) + length (c:d:"")) + z :: Int+-- > , (((x + y) + y) + length (c:c:"")) + z :: Int+-- > ] canonicalVariations :: Expr -> [Expr] canonicalVariations = map canonicalize . fastCanonicalVariations @@ -209,9 +220,6 @@ -- > > mostGeneralCanonicalVariation $ ord' bee -- > ord 'b' :: Int ----- Behaviour is undefined when applying this function to expressions already--- containing variables.--- -- This function is the same as taking the 'head' of 'canonicalVariations' -- but a bit faster. mostGeneralCanonicalVariation :: Expr -> Expr@@ -248,9 +256,6 @@ -- > > mostSpecificCanonicalVariation $ ord' bee -- > ord 'b' :: Int ----- Behaviour is undefined when applying this function to expressions already--- containing variables.--- -- This function is the same as taking the 'last' of 'canonicalVariations' -- but a bit faster. mostSpecificCanonicalVariation :: Expr -> Expr@@ -289,7 +294,7 @@   hs' = holes e   h' = head hs' -  names  =  variableNamesFromTemplate "x"+  names  =  variableNamesFromTemplate "x" \\ varnames e    fillings :: Int -> [Expr] -> [[Expr]]   fillings i []  =  [[]] -- no holes, single empty filling@@ -305,7 +310,9 @@ -- -- The same caveats of 'fastCanonicalVariations' do apply here. fastMostGeneralVariation :: Expr -> Expr-fastMostGeneralVariation e  =  fill e (zipWith varAsTypeOf (variableNamesFromTemplate "x") (holes e))+fastMostGeneralVariation e  =  fill e (zipWith varAsTypeOf names (holes e))+  where+  names  =  variableNamesFromTemplate "x" \\ varnames e  -- | -- A faster version of 'mostSpecificCanonicalVariation'@@ -314,4 +321,12 @@ -- -- The same caveats of 'fastCanonicalVariations' do apply here. fastMostSpecificVariation :: Expr -> Expr-fastMostSpecificVariation e  =  fill e (map ("x" `varAsTypeOf`) (holes e))+fastMostSpecificVariation e  =  fill e (map (name `varAsTypeOf`) (holes e))+  where+  name  =  head $ variableNamesFromTemplate "x" \\ varnames e++-- |+-- Variable names existing in a given Expr.+-- This function is not exported.+varnames :: Expr -> [String]+varnames e  =  [n | Value ('_':n) _ <- vars e]
src/Data/Express/Core.hs view
@@ -48,6 +48,8 @@    -- * Comparison   , compareComplexity+  , compareLexicographically+  , compareQuickly    -- * Properties   , arity@@ -217,7 +219,7 @@  -- | /O(n)/. -- Computes the type of an expression.  This raises errors, but this should--- not happen if expressions are smart-constructed.+-- not happen if expressions are smart-constructed with '$$'. -- -- > > let one = val (1 :: Int) -- > > let bee = val 'b'@@ -369,7 +371,7 @@ evaluate :: Typeable a => Expr -> Maybe a evaluate e = toDynamic e >>= fromDynamic --- | /O(n)/. +-- | /O(n)/. -- Evaluates an expression when possible (correct type). -- Returns a default value otherwise. --@@ -423,12 +425,15 @@                            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--- TODO: document Show Expr  showsTypeExpr :: Expr -> String -> String showsTypeExpr e = case etyp e of@@ -526,18 +531,26 @@ showExpr = showPrecExpr (-1)  -- | /O(n)/.---   Does not evaluate values when comparing, but rather uses their---   representation as strings and their types.+-- Does not evaluate values when comparing, but rather uses their+-- representation as strings and their types. -----   This instance works for ill-typed expressions.+-- This instance works for ill-typed expressions. instance Eq Expr where   Value s1 d1 == Value s2 d2  =  s1 == s2 && dynTypeRep d1 == dynTypeRep d2   ef1 :$ ex1  == ef2 :$ ex2   =  ef1 == ef2 && ex1 == ex2   _           == _            =  False +-- | /O(n)/.+-- Does not evaluate values when comparing, but rather uses their+-- representation as strings and their types.+--+-- This instance works for ill-typed expressions.+--+-- Expressions come first+-- when they have smaller complexity ('compareComplexity')+-- or when they come first lexicographically ('compareLexicographically'). instance Ord Expr where-  compare = compareComplexity <> lexicompare--- TODO: document Ord Expr+  compare = compareComplexity <> compareLexicographically  -- | /O(n)/. -- Compares the complexity of two 'Expr's.@@ -576,34 +589,61 @@ -- -- > > (zero -+- one) `compareComplexity` (one -+- zero) -- > EQ+--+-- This comparison is not a total order. compareComplexity :: Expr -> Expr -> Ordering compareComplexity  =  (compare      `on` length . values)                    <> (flip compare `on` length . nubVars)                    <> (flip compare `on` length . vars)                    <> (compare      `on` length . nubConsts) -lexicompareBy :: (Expr -> Expr -> Ordering) -> Expr -> Expr -> Ordering-lexicompareBy compareConstants = cmp+-- | /O(n)./+-- Lexicographical structural comparison of 'Expr's+-- where variables < constants < applications+-- then types are compared before string representations.+--+-- > > compareLexicographically one (one -+- one)+-- > LT+-- > > compareLexicographically one zero+-- > GT+-- > > compareLexicographically (xx -+- zero) (zero -+- xx)+-- > LT+-- > > compareLexicographically (zero -+- xx) (zero -+- xx)+-- > EQ+--+-- (cf. 'compareTy')+--+-- This comparison is a total order.+compareLexicographically :: Expr -> Expr -> Ordering+compareLexicographically  =  cmp   where-  e1@(Value ('_':s1) _) `cmp` e2@(Value ('_':s2) _)  =  typ e1 `compareTy` typ e2-                                                     <> s1 `compare` s2-  (f :$ x)        `cmp` (g :$ y)                     =  f  `cmp` g <> x `cmp` y-  (_ :$ _)        `cmp` _                            =  GT-  _               `cmp` (_ :$ _)                     =  LT-  _               `cmp` Value ('_':_) _              =  GT-  Value ('_':_) _ `cmp` _                            =  LT-  e1@(Value _ _)        `cmp` e2@(Value _ _)         =  e1 `compareConstants` e2-  -- Var < Constants < Apps+  (f :$ x) `cmp` (g :$ y)  =  f  `cmp` g <> x `cmp` y+  (_ :$ _) `cmp` _         =  GT+  _        `cmp` (_ :$ _)  =  LT+  e1@(Value s1 _) `cmp` e2@(Value s2 _)  =  isConst e1 `compare` isConst e2 -- var<const+                                         <> typ e1 `compareTy` typ e2+                                         <> s1 `cmpbool` s2 -- False<True+                                         <> length s1 `compare` length s2 -- 2<10+                                         <> s1 `compare` s2+  "False" `cmpbool` "True"   =  LT+  "True"  `cmpbool` "False"  =  GT+  _       `cmpbool` _        =  EQ -lexicompareConstants :: Expr -> Expr -> Ordering-lexicompareConstants = cmp+-- | /O(n)./+-- A fast total order between 'Expr's+-- that can be used when sorting 'Expr' values.+--+-- This is lazier than its counterparts+-- 'compareComplexity' and 'compareLexicographically'+-- and tries to evaluate the given 'Expr's as least as possible.+compareQuickly :: Expr -> Expr -> Ordering+compareQuickly  =  cmp   where-  e1 `cmp` e2 | typ e1 /= typ e2 = typ e1 `compareTy` typ e2-  Value s1 _ `cmp` Value s2 _ = s1 `compare` s2-  _ `cmp` _ = error "lexicompareConstants can only compare constants"--lexicompare :: Expr -> Expr -> Ordering-lexicompare = lexicompareBy lexicompareConstants+  (f :$ x)       `cmp` (g :$ y)        =  f  `cmp` g <> x `cmp` y+  (_ :$ _)       `cmp` _               =  GT+  _              `cmp` (_ :$ _)        =  LT+  x@(Value n1 _) `cmp` y@(Value n2 _)  =  typ x `compareTy` typ y+                                       <> n1 `compare` n2  -- | /O(n)/. -- Unfold a function application 'Expr' into a list of function and@@ -755,7 +795,7 @@ -- > False -- -- > > isApp $ value "not" not :$ var "p" (undefined :: Bool)--- > True +-- > True -- -- This is equivalent to pattern matching the ':$' constructor. --@@ -803,7 +843,7 @@   s e@(e1 :$ e2)  =  (e:) . s e1 . s e2   s e             =  (e:) --- | Average /O(n log n)/ for the spine, /O(n^2)/ for full evaluation.+-- | /O(n^3)/ for full evaluation. -- Lists all subexpressions of a given expression without repetitions. -- This includes the expression itself and partial function applications. -- (cf. 'subexprs')@@ -825,8 +865,11 @@ -- > , p && (p && True) :: Bool -- > ] ----- While this is /O(n log n)/ on average it is /O(n^2)/ in the worst-case--- (f (g (h (i (j (k (l (m (n x))))))))).+-- Runtime averages to+-- /O(n^2 log n)/ on evenly distributed expressions+-- such as @(f x + g y) + (h z + f w)@;+-- and to /O(n^3)/ on deep expressions+-- such as @f (g (h (f (g (h x)))))@. nubSubexprs :: Expr -> [Expr] nubSubexprs  =  s   where@@ -871,7 +914,7 @@   v (e1 :$ e2)  =  v e1 . v e2   v e           =  (e:) --- | /O(n log n)/.+-- | /O(n^2)/. -- Lists all terminal values in an expression without repetitions. -- (cf. 'values') --@@ -900,6 +943,12 @@ -- > [ p :: Bool -- > , (&&) :: Bool -> Bool -> Bool -- > ]+--+-- Runtime averages to+-- /O(n log n)/ on evenly distributed expressions+-- such as @(f x + g y) + (h z + f w)@;+-- and to /O(n^2)/ on deep expressions+-- such as @f (g (h (f (g (h x)))))@. nubValues :: Expr -> [Expr] nubValues  =  v   where@@ -933,7 +982,7 @@ consts :: Expr -> [Expr] consts  =  filter isConst . values --- | /O(n log n)/.+-- | /O(n^2)/. -- List terminal constants in an expression without repetitions. -- (cf. 'consts') --@@ -947,6 +996,12 @@ -- > [ True :: Bool -- > , (&&) :: Bool -> Bool -> Bool -- > ]+--+-- Runtime averages to+-- /O(n log n)/ on evenly distributed expressions+-- such as @(f x + g y) + (h z + f w)@;+-- and to /O(n^2)/ on deep expressions+-- such as @f (g (h (f (g (h x)))))@. nubConsts :: Expr -> [Expr] nubConsts  =  c   where@@ -976,7 +1031,7 @@ vars :: Expr -> [Expr] vars  =  filter isVar . values --- | /O(n log n)/.+-- | /O(n^2)/. -- Lists all variables in an expression without repetitions. -- (cf. 'vars') --@@ -995,6 +1050,12 @@ -- -- > > nubVars (pp -&&- true) -- > [p :: Bool]+--+-- Runtime averages to+-- /O(n log n)/ on evenly distributed expressions+-- such as @(f x + g y) + (h z + f w)@;+-- and to /O(n^2)/ on deep expressions+-- such as @f (g (h (f (g (h x)))))@. nubVars :: Expr -> [Expr] nubVars  =  v   where
src/Data/Express/Hole.hs view
@@ -110,7 +110,7 @@ holes :: Expr -> [Expr] holes  =  filter isHole . values --- | /O(n log n)/.+-- | /O(n^2)/. -- Lists all holes in an expression without repetitions. -- (cf. 'holes') --@@ -122,6 +122,12 @@ -- -- > > nubHoles $ hole (undefined :: Bool->Bool) :$ hole (undefined::Bool) -- > [_ :: Bool,_ :: Bool -> Bool]+--+-- Runtime averages to+-- /O(n log n)/ on evenly distributed expressions+-- such as @(f x + g y) + (h z + f w)@;+-- and to /O(n^2)/ on deep expressions+-- such as @f (g (h (f (g (h x)))))@. nubHoles :: Expr -> [Expr] nubHoles  =  nubSort . holes 
stack.yaml view
@@ -4,4 +4,4 @@ - .  extra-deps:-- leancheck-0.9.3+- leancheck-0.9.4
test/Test.hs view
@@ -17,6 +17,7 @@   , module Test.ListableExpr   , module Data.Maybe   , module Data.Either+  , module Data.Monoid   , mainTest    , tyBool@@ -34,6 +35,7 @@  import Data.Maybe import Data.Either+import Data.Monoid import Test.LeanCheck import Test.LeanCheck.Utils import Test.LeanCheck.Derive
test/Test/ListableExpr.hs view
@@ -69,7 +69,7 @@ -- | Constant terminal value of 'Int' type. newtype IntE0  =  IntE0 { unIntE0 :: Expr } --- | Varialbe of 'Int' type.+-- | Variable of 'Int' type. newtype IntEV  =  IntEV { unIntEV :: Expr }  -- | Functions from Int to Int
test/canon.hs view
@@ -87,15 +87,17 @@        , xx -+- xx -+- xx -+- yy        , xx -+- xx -+- xx -+- xx        ]+  , canonicalVariations (i_ -+- ii -+- jj -+- i_)+    == [ xx -+- yy -+- zz -+- xx'+       , xx -+- yy -+- zz -+- xx ] -  , holds n $ \e -> all isHole (vars e)-                ==> let xs = map (length . nubVars) $ canonicalVariations e++  , holds n $ \e -> let xs = map (length . nubVars) $ canonicalVariations e                     in (head xs >) `all` tail xs                     && (last xs <) `all` init xs   , holds n $ \e -> all isHole (vars e)                 ==> isNub (vars (head (canonicalVariations e)))-  , holds n $ \e -> all isHole (vars e)-                ==> let es = canonicalVariations e+  , holds n $ \e -> let es = canonicalVariations e                     in (`isInstanceOf` head es) `all` tail es                     && (last es `isInstanceOf`) `all` init es   , holds n $ \e -> let es = canonicalVariations e@@ -103,8 +105,8 @@   , holds n $ \e -> length (canonicalVariations e)                  == product (map (bell . snd) . counts $ holes e) -  , holds n $ \e -> all isHole (vars e) ==> head (canonicalVariations e) == mostGeneralCanonicalVariation e-  , holds n $ \e -> all isHole (vars e) ==> last (canonicalVariations e) == mostSpecificCanonicalVariation e+  , holds n $ \e -> head (canonicalVariations e) == mostGeneralCanonicalVariation e+  , holds n $ \e -> last (canonicalVariations e) == mostSpecificCanonicalVariation e   ]  -- O(1) bell number implementation
test/model/bench/compare.out view
@@ -192,810 +192,4850 @@ 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  =  GT-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  =  LT-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  =  GT-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  =  GT-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+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/sort.out 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]+  ]+
test/ord.hs view
@@ -11,6 +11,15 @@    , holds n $ (okEqOrd :: Expr -> Expr -> Expr -> Bool)   , holds n $ \(Ill e0) (Ill e1) (Ill e2) -> okEqOrd e0 e1 e2+  , holds n $ compare ==== compareComplexity <> compareLexicographically++  , holds n $ isComparison (compare :: Expr -> Expr -> Ordering)+  , holds n $ isComparison compareLexicographically+  , holds n $ isComparison compareQuickly++  , exists n $ \e1 e2 ->        e1 `compare` e2 /= e1 `compareLexicographically` e2+  , exists n $ \e1 e2 ->        e1 `compare` e2 /= e1 `compareQuickly` e2+  , exists n $ \e1 e2 -> e1 `compareQuickly` e2 /= e1 `compareLexicographically` e2    -- Holes < Values < Apps   , xx < zero