summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Graf <sebastian.graf@kit.edu>2020-10-06 17:10:55 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-10-17 22:02:13 -0400
commit451455fd008500259f5d2207bdfdccf6dddb52c5 (patch)
tree210c5ab7d7c4f1b8cb3f37d96679748423284438
parent6b3eb06af41b7385737fb3a602acdb95a76d2eba (diff)
downloadhaskell-451455fd008500259f5d2207bdfdccf6dddb52c5.tar.gz
Testsuite: Add dead arity analysis tests
We didn't seem to test these old tests at all, judging from their expected output.
-rw-r--r--testsuite/tests/arityanal/Main.hs284
-rw-r--r--testsuite/tests/arityanal/Main.stderr1874
-rw-r--r--testsuite/tests/arityanal/Makefile3
-rw-r--r--testsuite/tests/arityanal/f0.stderr12
-rw-r--r--testsuite/tests/arityanal/f1.stderr20
-rw-r--r--testsuite/tests/arityanal/f10.stderr27
-rw-r--r--testsuite/tests/arityanal/f11.stderr45
-rw-r--r--testsuite/tests/arityanal/f12.stderr8
-rw-r--r--testsuite/tests/arityanal/f13.stderr17
-rw-r--r--testsuite/tests/arityanal/f14.stderr26
-rw-r--r--testsuite/tests/arityanal/f15.stderr14
-rw-r--r--testsuite/tests/arityanal/f2.stderr18
-rw-r--r--testsuite/tests/arityanal/f3.stderr15
-rw-r--r--testsuite/tests/arityanal/f4.stderr22
-rw-r--r--testsuite/tests/arityanal/f5.stderr47
-rw-r--r--testsuite/tests/arityanal/f6.stderr16
-rw-r--r--testsuite/tests/arityanal/f7.stderr14
-rw-r--r--testsuite/tests/arityanal/f8.stderr20
-rw-r--r--testsuite/tests/arityanal/f9.stderr15
-rw-r--r--testsuite/tests/arityanal/prim.stderr15
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity00.hs (renamed from testsuite/tests/arityanal/f0.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity00.stderr34
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity01.hs (renamed from testsuite/tests/arityanal/f1.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity01.stderr70
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity02.hs (renamed from testsuite/tests/arityanal/f2.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity02.stderr47
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity03.hs (renamed from testsuite/tests/arityanal/f3.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity03.stderr38
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity04.hs (renamed from testsuite/tests/arityanal/f4.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity04.stderr47
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity05.hs (renamed from testsuite/tests/arityanal/f5.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity05.stderr48
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity06.hs (renamed from testsuite/tests/arityanal/f6.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity06.stderr34
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity07.hs (renamed from testsuite/tests/arityanal/f7.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity07.stderr29
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity08.hs (renamed from testsuite/tests/arityanal/f8.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity08.stderr29
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity09.hs (renamed from testsuite/tests/arityanal/f9.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity09.stderr38
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity10.hs (renamed from testsuite/tests/arityanal/f10.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity10.stderr64
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity11.hs (renamed from testsuite/tests/arityanal/f11.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity11.stderr135
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity12.hs (renamed from testsuite/tests/arityanal/f12.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity13.hs (renamed from testsuite/tests/arityanal/f13.hs)3
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity13.stderr33
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity14.hs (renamed from testsuite/tests/arityanal/f14.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity14.stderr54
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity15.hs (renamed from testsuite/tests/arityanal/f15.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity15.stderr34
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity16.hs (renamed from testsuite/tests/arityanal/prim.hs)0
-rw-r--r--testsuite/tests/arityanal/should_compile/Arity16.stderr48
-rw-r--r--testsuite/tests/arityanal/should_compile/T18793.stderr27
-rw-r--r--testsuite/tests/arityanal/should_compile/all.T22
55 files changed, 809 insertions, 2537 deletions
diff --git a/testsuite/tests/arityanal/Main.hs b/testsuite/tests/arityanal/Main.hs
deleted file mode 100644
index 5c0bf897e7..0000000000
--- a/testsuite/tests/arityanal/Main.hs
+++ /dev/null
@@ -1,284 +0,0 @@
-{-# LANGUAGE CPP #-}
-
--- Optimisation problem. There are two missed opportunities for optimisation in alex_scan_tkn, below.
-
-module Main (main) where
-
-import Data.Char ( ord )
-import Control.Monad.ST
-import Control.Monad (when)
-import Data.STRef
-import GHC.ST
-import Data.Array
-import Data.Char (ord)
-import Data.Array.Base (unsafeAt)
-import GHC.Exts
-alex_base :: AlexAddr
-alex_base = AlexA# "\xf8\xff\xfd\xff\x02\x00\x4c\x00"#
-
-alex_table :: AlexAddr
-alex_table = AlexA# "\x00\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
-
-alex_check :: AlexAddr
-alex_check = AlexA# "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x27\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-alex_deflt :: AlexAddr
-alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\xff\xff"#
-
-alex_accept = listArray (0::Int,3) [[],[],[(AlexAcc 0 (alex_action_0) Nothing Nothing)],[(AlexAcc 1 (alex_action_1) Nothing Nothing)]]
-word (_,_,input) len = return (take len input)
-
-scanner str = runAlex str $ do
- let loop i = do tok <- alexScan;
- if tok == "stopped." || tok == "error."
- then return i
- else do let i' = i+1 in i' `seq` loop i'
- loop 0
-
-alexEOF (_,_,"") = return "stopped."
-alexEOF (_,_,rest) = return "error."
-
-main = do
- s <- getContents
- print (scanner s)
-alex_action_0 = skip
-alex_action_1 = word
--- {-# LINE 1 "GenericTemplate.hs" #-}
---
-------------------------------------------------------------------------
------
--- ALEX TEMPLATE
---
--- (c) Chris Dornan and Simon Marlow 2003
-
---
-------------------------------------------------------------------------
------
--- Token positions
-
--- `Posn' records the location of a token in the input text. It has three
--- fields: the address (number of chacaters preceding the token), line number
--- and column of a token within the file. `start_pos' gives the position of the
--- start of the file and `eof_pos' a standard encoding for the end of file.
--- `move_pos' calculates the new position after traversing a given character,
--- assuming the usual eight character tab stops.
-
-data AlexPosn = AlexPn !Int !Int !Int
- deriving (Eq,Show)
-
-alexStartPos :: AlexPosn
-alexStartPos = AlexPn 0 1 1
-
-alexMove :: AlexPosn -> Char -> AlexPosn
-alexMove (AlexPn a l c) '\t' = AlexPn (a+1) l (((c+7) `div` 8)*8+1)
-alexMove (AlexPn a l c) '\n' = AlexPn (a+1) (l+1) 1
-alexMove (AlexPn a l c) _ = AlexPn (a+1) l (c+1)
-
---
-------------------------------------------------------------------------
------
--- The Alex monad
---
--- Compile with -funbox-strict-fields for best results!
-
-data AlexState s = AlexState {
- alex_pos :: !(STRef s AlexPosn),-- position at current input location
- alex_inp :: !(STRef s String), -- the current input
- alex_chr :: !(STRef s Char), -- the character before the input
- alex_scd :: !(STRef s Int) -- the current startcode
- }
-
-type AlexInput = (AlexPosn,Char,String)
-
-alexInputPrevChar :: AlexInput -> Char
-alexInputPrevChar (p,c,s) = c
-
-runAlex :: String -> Alex a -> a
-runAlex input (Alex f)
- = runST (do
- inp_r <- newSTRef input
- chr_r <- newSTRef '\n'
- pos_r <- newSTRef alexStartPos
- scd_r <- newSTRef 0
- f (AlexState {alex_pos = pos_r,
- alex_inp = inp_r,
- alex_chr = chr_r,
- alex_scd = scd_r}))
-
---TODO include error support
-newtype Alex a = Alex { unAlex :: forall s. AlexState s -> ST s a }
-
-instance Monad Alex where
- (Alex m) >>= k = Alex (\s -> m s >>= \a -> unAlex (k a) s)
- return a = Alex (\s -> return a)
-
-alexGetChar :: Alex (Maybe Char)
-alexGetChar = Alex (\st@AlexState{ alex_inp=inp_r,
- alex_chr=chr_r,
- alex_pos=pos_r } -> do
- inp <- readSTRef inp_r
- pos <- readSTRef pos_r
- case inp of
- [] -> return Nothing
- (c:s) -> do writeSTRef inp_r s
- writeSTRef chr_r c
- let p' = alexMove pos c
- p' `seq` writeSTRef pos_r p'
- return (Just c)
- )
-
-alexGetInput :: Alex AlexInput
-alexGetInput
- = Alex (\s@AlexState{alex_pos=pos_r,alex_chr=chr_r,alex_inp=inp_r} -> do
- inp <- readSTRef inp_r
- chr <- readSTRef chr_r
- pos <- readSTRef pos_r
- return (pos,chr,inp)
- )
-
-alexSetInput :: AlexInput -> Alex ()
-alexSetInput (pos,chr,inp)
- = Alex (\s@AlexState{alex_pos=pos_r,alex_chr=chr_r,alex_inp=inp_r} -> do
- writeSTRef inp_r inp
- writeSTRef pos_r pos
- writeSTRef chr_r chr
- )
-
-alexGetStartCode :: Alex Int
-alexGetStartCode = Alex (\s@AlexState{alex_scd=scd_r} -> do
- readSTRef scd_r)
-
-alexSetStartCode :: Int -> Alex ()
-alexSetStartCode sc = Alex (\s@AlexState{alex_scd=scd_r} -> do
- writeSTRef scd_r sc)
-
---
------------------------------------------------------------------------------
--- Useful token actions
-
-
--- just ignore this token and scan another one
-skip input len = alexScan
-
--- ignore this token, but set the start code to a new value
-begin code input len = do alexSetStartCode code; alexScan
-
--- perform an action for this token, and set the start code to a new value
-(token `andBegin` code) input len = do alexSetStartCode code; token input len
-
---
------------------------------------------------------------------------------
--- INTERNALS and main scanner engine
-
--- {-# LINE 144 "GenericTemplate.hs" #-}
-
-data AlexAddr = AlexA# Addr#
-
-{-# INLINE alexIndexShortOffAddr #-}
-alexIndexShortOffAddr (AlexA# arr) off =
- narrow16Int# i
- where
- i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
- high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
- low = int2Word# (ord# (indexCharOffAddr# arr off'))
- off' = off *# 2#
-
-
---
------------------------------------------------------------------------------
--- Main lexing routines
-
-
-
--- alexScan :: some a . Alex a
-alexScan = do
- (I# (startcode)) <- alexGetStartCode -- the startcode is the initial state
- cur_input <- alexGetInput
- let c = alexInputPrevChar cur_input
- c `seq` do
- r <- alex_scan_tkn c 0# startcode AlexNone
- case r of
- AlexNone ->
-
-
-
- alexEOF cur_input
- AlexLastAcc k input len -> do
-
-
-
- alexSetInput input
- k cur_input len
-
--- {-# LINE 221 "GenericTemplate.hs" #-}
-
-
--- Push the input through the DFA, remembering the most recent accepting
--- state it encountered.
-
-alex_scan_tkn lc len (-1#) last_acc = return last_acc
-alex_scan_tkn lc len s last_acc = do
- new_acc <- check_accs s lc len last_acc --danaxu extends arguments
- c <- alexGetChar
- let {-# INLINE [0] join #-}
- -- This is a *hack*, the compiler doesn't eliminate the Maybe return
- -- from alexGetChar unless we extract this join point and inline
- -- it later.
- join c' =
-
-
-
- alex_scan_tkn lc
- (len +# 1#) s' new_acc
- where
- base = alexIndexShortOffAddr alex_base s
- (I# (ord_c)) = ord c'
- offset = (base +# ord_c)
- check = alexIndexShortOffAddr alex_check offset
-
- s' =
- if (offset >=# 0#) && (check ==# ord_c)
- then alexIndexShortOffAddr alex_table offset
- else alexIndexShortOffAddr alex_deflt s
- case c of
- Nothing -> return new_acc -- end of input
- Just c' -> join c'
- -- where
- -- OPTIMISATION PROBLEM. We need to eta-expand
- -- check_accs and check_accs1. This needs a simple
- -- one-shot analysis of some kind, but note that
- -- check_accs1 is recursive.
-check_accs s lc len last_acc = check_accs1 (alex_accept `unsafeAt` (I# (s))) lc len last_acc
-check_accs1 accs lc len last_acc =
- case accs of
- [] -> return last_acc
- (AlexAcc _ a lctx rctx : rest) ->
-
- case lctx of
- Nothing -> check_rctx a rctx rest lc len last_acc
- Just arr | arr!lc -> check_rctx a rctx rest lc len last_acc
- | otherwise -> check_accs1 rest lc len last_acc
- -- where
-
-ok a len = do inp <- alexGetInput
- return (AlexLastAcc a inp (I# (len)))
-
-check_rctx a rctx rest lc len last_acc =
- case rctx of
- Nothing -> ok a len
- Just (I# (sn)) -> do
- inp <- alexGetInput
- let c = alexInputPrevChar inp
- c `seq` do
- acc <- alex_scan_tkn c 0# sn AlexNone
- alexSetInput inp
- case acc of
- AlexNone -> check_accs1 rest lc len last_acc
- AlexLastAcc{} -> ok a len
- -- TODO: there's no need to find the longest
- -- match when checking the right context, just
- -- the first match will do.
-
-data AlexLastAcc a = AlexNone | AlexLastAcc a !AlexInput !Int
-
-data AlexAcc a = AlexAcc Int a (Maybe (Array Char Bool)) (Maybe Int)
diff --git a/testsuite/tests/arityanal/Main.stderr b/testsuite/tests/arityanal/Main.stderr
deleted file mode 100644
index 5a816d67a6..0000000000
--- a/testsuite/tests/arityanal/Main.stderr
+++ /dev/null
@@ -1,1874 +0,0 @@
-
-==================== Arity analysis ====================
-$w==_s4mH :: GHC.Prim.Int#
- -> GHC.Base.Int
- -> GHC.Base.Int
- -> GHC.Prim.Int#
- -> GHC.Base.Int
- -> GHC.Base.Int
- -> GHC.Base.Bool
-[Arity 6
- 0 -> 0 -> 0 -> 0 -> 0 -> 0 -> *
- Str: DmdType LLLLLL]
-$w==_s4mH = \ (ww_s4lF :: GHC.Prim.Int#)
- (ww_s4lH :: GHC.Base.Int)
- (ww_s4lI :: GHC.Base.Int)
- (ww_s4lO :: GHC.Prim.Int#)
- (ww_s4lQ :: GHC.Base.Int)
- (ww_s4lR :: GHC.Base.Int) ->
- case GHC.Base.Bool GHC.Prim.==# ww_s4lF ww_s4lO of wild_X45N {
- GHC.Base.False -> GHC.Base.False;
- GHC.Base.True ->
- case GHC.Base.Bool ww_s4lH of wild_X45G { GHC.Base.I# x_X45H ->
- case GHC.Base.Bool ww_s4lQ of wild1_X45M { GHC.Base.I# y_X45Q ->
- case GHC.Base.Bool GHC.Prim.==# x_X45H y_X45Q of wild_X45X {
- GHC.Base.False -> GHC.Base.False;
- GHC.Base.True ->
- case GHC.Base.Bool ww_s4lI of wild_X47o { GHC.Base.I# x_X47r ->
- case GHC.Base.Bool ww_s4lR of wild1_X47y { GHC.Base.I# y_X47E ->
- GHC.Prim.==# x_X47r y_X47E
- }
- }
- }
- }
- }
- }
-
-a_s40I :: [GHC.Base.Char]
-[*
- Str: DmdType]
-a_s40I = GHC.Base.unpackCString# "AlexPn "
-
-$wshowsPrec_s4mG :: GHC.Prim.Int#
- -> GHC.Base.Int
- -> GHC.Base.Int
- -> GHC.Base.Int
- -> GHC.Base.String
- -> GHC.Base.String
-[Arity 5
- 0 -> 0 -> 0 -> 0 -> 0 -> *
- Str: DmdType LLLLL]
-$wshowsPrec_s4mG = \ (ww_s4lp :: GHC.Prim.Int#)
- (ww_s4lt :: GHC.Base.Int)
- (ww_s4lu :: GHC.Base.Int)
- (ww_s4lv :: GHC.Base.Int)
- (w_s4lx :: GHC.Base.String) ->
- let {
- p_s4p5 :: GHC.Show.ShowS
- [Arity 1
- *
- Str: DmdType L]
- p_s4p5 = \ (x_a41d :: GHC.Base.String) ->
- GHC.Base.++
- @ GHC.Base.Char
- a_s40I
- (case [GHC.Base.Char] ww_s4lt of w_X42m { GHC.Base.I# ww_a40t ->
- GHC.Show.$wshowSignedInt
- 11
- ww_a40t
- (GHC.Base.:
- @ GHC.Base.Char
- GHC.Show.lvl1
- (case [GHC.Base.Char] ww_s4lu of w_X44A { GHC.Base.I# ww_X42J ->
- GHC.Show.$wshowSignedInt
- 11
- ww_X42J
- (GHC.Base.:
- @ GHC.Base.Char
- GHC.Show.lvl1
- (case [GHC.Base.Char] ww_s4lv of w_X44r { GHC.Base.I# ww_X42A ->
- GHC.Show.$wshowSignedInt 11 ww_X42A x_a41d
- }))
- }))
- })
- } in
- case GHC.Base.String GHC.Prim.>=# ww_s4lp 11 of wild_a42t {
- GHC.Base.False -> p_s4p5 w_s4lx;
- GHC.Base.True ->
- GHC.Base.:
- @ GHC.Base.Char
- GHC.Show.a2
- (p_s4p5 (GHC.Base.: @ GHC.Base.Char GHC.Show.a w_s4lx))
- }
-
-lvl_s3Z7 :: [GHC.Base.Char]
-[*
- Str: DmdType]
-lvl_s3Z7 = GHC.Base.unpackCString# "error."
-
-lvl_s3Z6 :: [GHC.Base.Char]
-[*
- Str: DmdType]
-lvl_s3Z6 = GHC.Base.unpackCString# "stopped."
-
-lit_s3Yy :: GHC.Num.Integer
-[*
- Str: DmdType]
-lit_s3Yy = GHC.Num.S# 1
-
-lit_a3m9 :: GHC.Base.Int
-[*
- Str: DmdType m]
-lit_a3m9 = GHC.Base.I# 0
-
-return_a3fW :: forall a_a2mR. a_a2mR -> Main.Alex a_a2mR
-[Arity 2
- 0 -> T
- Str: DmdType LA]
-return_a3fW = \ (@ a_a3g1)
- (a_X2cH :: a_a3g1)
- (@ s_a3g7)
- (s_a2bU :: Main.AlexState s_a3g7) ->
- GHC.ST.poly_return @ s_a3g7 @ a_a3g1 a_X2cH
-
->>_a3fv :: forall a_a2kH b_a2kJ.
- Main.Alex a_a2kH -> Main.Alex b_a2kJ -> Main.Alex b_a2kJ
-[Arity 4
- 3 -> 3 -> 0 -> 0 -> *
- Str: DmdType C(C(U(LA)))C(C(S))LL]
->>_a3fv = \ (@ a_a3fM)
- (@ b_a3fN)
- (eta_a3Ts :: Main.Alex a_a3fM)
- (eta1_a3Tr :: Main.Alex b_a3fN)
- (@ s_a3eY)
- (eta_s40h :: Main.AlexState s_a3eY)
- (eta_s40i :: GHC.Prim.State# s_a3eY) ->
- case (# GHC.Prim.State# s_a3eY, b_a3fN #) eta_a3Ts @ s_a3eY eta_s40h eta_s40i
- of wild_a3ZB { (# new_s_a3Zz, r_a3ZA #) ->
- eta1_a3Tr @ s_a3eY eta_s40h new_s_a3Zz
- }
-
->>=_a3eM :: forall a_a2n6 b_a2n8.
- Main.Alex a_a2n6 -> (a_a2n6 -> Main.Alex b_a2n8) -> Main.Alex b_a2n8
-[Arity 4
- 3 -> 4 -> 0 -> 0 -> *
- Str: DmdType C(C(U(LL)))C(C(C(S)))LL]
->>=_a3eM = \ (@ a_a3eR)
- (@ b_a3eS)
- (ds_d3nC :: Main.Alex a_a3eR)
- (k_X2cv :: a_a3eR -> Main.Alex b_a3eS)
- (@ s_a3eY)
- (s_a2bI :: Main.AlexState s_a3eY)
- (s_a3Zr :: GHC.Prim.State# s_a3eY) ->
- case (# GHC.Prim.State# s_a3eY, b_a3eS #) ds_d3nC @ s_a3eY s_a2bI s_a3Zr
- of wild_a3ZB { (# new_s_a3Zz, r_a3ZA #) ->
- k_X2cv r_a3ZA @ s_a3eY s_a2bI new_s_a3Zz
- }
-
-showsPrec_a3cJ :: GHC.Base.Int -> Main.AlexPosn -> GHC.Show.ShowS
-[T
- Worker $wshowsPrec_s4mG
- Str: DmdType U(L)U(LLL)L]
-showsPrec_a3cJ = __inline_me (\ (w_s4ln :: GHC.Base.Int)
- (w_s4lr :: Main.AlexPosn)
- (w_s4lx :: GHC.Base.String) ->
- case GHC.Base.String w_s4ln of w_X4mv { GHC.Base.I# ww_s4lp ->
- case GHC.Base.String w_s4lr of w_X4mD { Main.AlexPn ww_s4lt ww_s4lu ww_s4lv ->
- $wshowsPrec_s4mG ww_s4lp ww_s4lt ww_s4lu ww_s4lv w_s4lx
- }
- })
-
-showList_a3eh :: [Main.AlexPosn] -> GHC.Show.ShowS
-[Arity 2
- 0 -> 0 -> *
- Str: DmdType SL]
-showList_a3eh = \ (ds1_a3Hj :: [Main.AlexPosn]) (s_a3Hi :: GHC.Base.String) ->
- case GHC.Base.String ds1_a3Hj of wild_a3Hu {
- [] -> GHC.Base.++ @ GHC.Base.Char GHC.Show.lvl16 s_a3Hi;
- : x_a3Hs xs_a3Ht ->
- GHC.Base.:
- @ GHC.Base.Char
- GHC.Show.lvl14
- (case [GHC.Base.Char] x_a3Hs of w_X4mD { Main.AlexPn ww_s4lt ww_s4lu ww_s4lv ->
- $wshowsPrec_s4mG
- 0
- ww_s4lt
- ww_s4lu
- ww_s4lv
- (__letrec {
- showl1_s4p9 :: [Main.AlexPosn] -> [GHC.Base.Char]
- [Arity 1
- 0 -> *
- Str: DmdType S]
- showl1_s4p9 = \ (ds2_a3Hq :: [Main.AlexPosn]) ->
- case [GHC.Base.Char] ds2_a3Hq of wild1_a42z {
- [] -> GHC.Base.: @ GHC.Base.Char GHC.Show.lvl15 s_a3Hi;
- : y_a42x ys_a42y ->
- GHC.Base.:
- @ GHC.Base.Char
- GHC.Show.a1
- (case [GHC.Base.Char] y_a42x
- of w_X4o5 { Main.AlexPn ww_X4mX ww_X4mZ ww_X4n1 ->
- $wshowsPrec_s4mG 0 ww_X4mX ww_X4mZ ww_X4n1 (showl1_s4p9 ys_a42y)
- })
- };
- } in showl1_s4p9 xs_a3Ht)
- })
- }
-
-$dmshow_a3m7 :: Main.AlexPosn -> GHC.Base.String
-[Arity 1
- 0 -> *
- Str: DmdType U(LLL)]
-$dmshow_a3m7 = \ (x_a42G :: Main.AlexPosn) ->
- case GHC.Base.String x_a42G of w_X4mD { Main.AlexPn ww_s4lt ww_s4lu ww_s4lv ->
- $wshowsPrec_s4mG 0 ww_s4lt ww_s4lu ww_s4lv (GHC.Base.[] @ GHC.Base.Char)
- }
-
-==_a3c8 :: Main.AlexPosn -> Main.AlexPosn -> GHC.Base.Bool
-[T
- Worker $w==_s4mH
- Str: DmdType U(U(L)LL)U(U(L)LL)]
-==_a3c8 = __inline_me (\ (w_s4lB :: Main.AlexPosn) (w_s4lK :: Main.AlexPosn) ->
- case GHC.Base.Bool w_s4lB of w_X4mO { Main.AlexPn ww_s4lD ww_s4lH ww_s4lI ->
- case GHC.Base.Bool ww_s4lD of ww_X4mW { GHC.Base.I# ww_s4lF ->
- case GHC.Base.Bool w_s4lK of w_X4n7 { Main.AlexPn ww_s4lM ww_s4lQ ww_s4lR ->
- case GHC.Base.Bool ww_s4lM of ww_X4nf { GHC.Base.I# ww_s4lO ->
- $w==_s4mH ww_s4lF ww_s4lH ww_s4lI ww_s4lO ww_s4lQ ww_s4lR
- }
- }
- }
- })
-
-/=_a3cr :: Main.AlexPosn -> Main.AlexPosn -> GHC.Base.Bool
-[Arity 2
- 0 -> 0 -> *
- Str: DmdType U(U(L)LL)U(U(L)LL)]
-/=_a3cr = \ (a_a2jh :: Main.AlexPosn) (b_a2ji :: Main.AlexPosn) ->
- case GHC.Base.Bool a_a2jh of w_X4mO { Main.AlexPn ww_s4lD ww_s4lH ww_s4lI ->
- case GHC.Base.Bool ww_s4lD of ww_X4mW { GHC.Base.I# ww_s4lF ->
- case GHC.Base.Bool b_a2ji of w_X4n7 { Main.AlexPn ww_s4lM ww_s4lQ ww_s4lR ->
- case GHC.Base.Bool ww_s4lM of ww_X4nf { GHC.Base.I# ww_s4lO ->
- case GHC.Base.Bool GHC.Prim.==# ww_s4lF ww_s4lO of wild_X45N {
- GHC.Base.False -> GHC.Base.True;
- GHC.Base.True ->
- case GHC.Base.Bool ww_s4lH of wild_X45G { GHC.Base.I# x_X45H ->
- case GHC.Base.Bool ww_s4lQ of wild1_X45M { GHC.Base.I# y_X45Q ->
- case GHC.Base.Bool GHC.Prim.==# x_X45H y_X45Q of wild_X45X {
- GHC.Base.False -> GHC.Base.True;
- GHC.Base.True ->
- case GHC.Base.Bool ww_s4lI of wild_X47o { GHC.Base.I# x_X47r ->
- case GHC.Base.Bool ww_s4lR of wild1_X47y { GHC.Base.I# y_X47E ->
- case GHC.Base.Bool GHC.Prim.==# x_X47r y_X47E of wild_a43s {
- GHC.Base.False -> GHC.Base.True; GHC.Base.True -> GHC.Base.False
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-
-$fShowAlexPosn_a2iT :: {GHC.Show.Show Main.AlexPosn}
-[Exported]
-[*
- Str: DmdType m]
-$fShowAlexPosn_a2iT = GHC.Show.:DShow
- @ Main.AlexPosn showsPrec_a3cJ $dmshow_a3m7 showList_a3eh
-
-$fEqAlexPosn_a2iS :: {GHC.Base.Eq Main.AlexPosn}
-[Exported]
-[*
- Str: DmdType m]
-$fEqAlexPosn_a2iS = GHC.Base.:DEq @ Main.AlexPosn ==_a3c8 /=_a3cr
-
-Rec {
-$fMonadAlex_a2dQ :: {GHC.Base.Monad Main.Alex}
-[Exported]
-[*
- Str: DmdType m]
-$fMonadAlex_a2dQ = GHC.Base.:DMonad
- @ Main.Alex >>=_a3eM >>_a3fv return_a3fW fail_a3gq
-fail_a3gq :: forall a_a3eL. GHC.Base.String -> Main.Alex a_a3eL
-[Arity 1
- *
- Str: DmdType Sb]
-fail_a3gq = \ (@ a_a3gE) (eta_x1 :: GHC.Base.String) ->
- GHC.Base.$dmfail @ Main.Alex $fMonadAlex_a2dQ @ a_a3gE eta_x1
-end Rec }
-
-lvl_s4pX :: GHC.Base.Int
-[*]
-lvl_s4pX = GHC.Base.I# 3
-
-lvl_s4pU :: (Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]
-[Arity 2
- 0 -> 0 -> T]
-lvl_s4pU = \ (ds_d3nZ :: (Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char]))
- (len_a1Rn :: GHC.Base.Int) ->
- case (Main.Alex [GHC.Base.Char]) ds_d3nZ
- of wild_X3c { (ds_d3o0, ds_d3o1, input_a1Rm) ->
- let {
- a_s4pV :: [GHC.Base.Char]
- [*
- Str: DmdType]
- a_s4pV = GHC.List.take @ GHC.Base.Char len_a1Rn input_a1Rm
- } in
- \ (@ s_X3jq)
- (s_X2fe :: Main.AlexState s_X3jq)
- (s_a3ZV :: GHC.Prim.State# s_X3jq) ->
- (# s_a3ZV, a_s4pV #)
- }
-
-lvl_s4pT :: GHC.Base.Int
-[*]
-lvl_s4pT = GHC.Base.I# 1
-
-lvl_s4pS :: Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
-[*]
-lvl_s4pS = Main.AlexAcc
- @ ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
- lvl_s4pT
- lvl_s4pU
- (Data.Maybe.Nothing @ (GHC.Arr.Array GHC.Base.Char GHC.Base.Bool))
- (Data.Maybe.Nothing @ GHC.Base.Int)
-
-lvl_s4pR :: [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
-[*]
-lvl_s4pR = GHC.Base.:
- @ (Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- lvl_s4pS
- (GHC.Base.[]
- @ (Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])))
-
-lvl_s4pQ :: [[Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]]
-[*]
-lvl_s4pQ = GHC.Base.:
- @ [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- lvl_s4pR
- (GHC.Base.[]
- @ [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])])
-
-Rec {
-$wk_s4mM :: GHC.Prim.Int#
- -> forall s_a2bs.
- Main.AlexState s_a2bs
- -> GHC.Prim.State# s_a2bs
- -> (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #)
-[Arity 3
- 0 -> 0 -> 0 -> *
- Str: DmdType LS(U(L)U(L)U(L)L)L]
-$wk_s4mM = \ (ww_s4mz :: GHC.Prim.Int#)
- (@ s_a2bs)
- (w_s4mC :: Main.AlexState s_a2bs)
- (w_s4mD :: GHC.Prim.State# s_a2bs) ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) w_s4mC
- of wild_X2B { Main.AlexState pos_r_a21Q inp_r_a21S chr_r_a21R ds_d3od ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) inp_r_a21S
- of wild_a43y { GHC.STRef.STRef var#_a43z ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) GHC.Prim.readMutVar#
- @ s_a2bs @ GHC.Base.String var#_a43z w_s4mD
- of wild_a3ZB { (# new_s_a3Zz, r_a3ZA #) ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) chr_r_a21R
- of wild_X46u { GHC.STRef.STRef var#_X46x ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) GHC.Prim.readMutVar#
- @ s_a2bs @ GHC.Base.Char var#_X46x new_s_a3Zz
- of wild_X42B { (# new_s_X42A, r_X42C #) ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) pos_r_a21Q
- of wild_X46v { GHC.STRef.STRef var#_X46y ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) GHC.Prim.readMutVar#
- @ s_a2bs @ Main.AlexPosn var#_X46y new_s_X42A
- of wild_X45K { (# new_s_X48T, r_X42D #) ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) r_X42C
- of tpl_X4U { GHC.Base.C# a_s3Wm ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) alex_scan_tkn_a2zF
- tpl_X4U
- 0
- ww_s4mz
- (Main.AlexNone
- @ (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- @ s_a2bs
- wild_X2B
- new_s_X48T
- of wild_X42t { (# new_s_X42s, r_X42u #) ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) r_X42u of wild_X4V {
- Main.AlexNone ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) r_a3ZA of wild_X4y {
- [] -> (# new_s_X42s, lvl_s3Z6 #); : a_s3Tv a_s3Tw -> (# new_s_X42s, lvl_s3Z7 #)
- };
- Main.AlexLastAcc k_a23z input_a23A len_a23B ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) input_a23A
- of wild_X2D { (pos_a225, chr_a226, inp_a227) ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) GHC.Prim.writeMutVar#
- @ s_a2bs
- @ GHC.Base.String
- var#_a43z
- inp_a227
- new_s_X42s
- of s2#_a43F { __DEFAULT ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) GHC.Prim.writeMutVar#
- @ s_a2bs
- @ Main.AlexPosn
- var#_X46y
- pos_a225
- s2#_a43F
- of s2#_X46S { __DEFAULT ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) GHC.Prim.writeMutVar#
- @ s_a2bs
- @ GHC.Base.Char
- var#_X46x
- chr_a226
- s2#_X46S
- of s2#_X46O { __DEFAULT ->
- k_a23z (r_X42D, tpl_X4U, r_a3ZA) len_a23B @ s_a2bs wild_X2B s2#_X46O
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-lvl_s4pP :: (Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> forall s_a2bs.
- Main.AlexState s_a2bs
- -> GHC.Prim.State# s_a2bs
- -> (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #)
-[Arity 4
- T]
-lvl_s4pP = \ (input_a22z :: (Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char]))
- (len_a22A :: GHC.Base.Int)
- (@ s_a2bs)
- (eta_s47H :: Main.AlexState s_a2bs)
- (eta_s47I :: GHC.Prim.State# s_a2bs) ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) eta_s47H
- of wild_X34 { Main.AlexState ds_d3og ds_d3oh ds_d3oi scd_r_a22m ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) scd_r_a22m
- of wild_a43y { GHC.STRef.STRef var#_a43z ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) GHC.Prim.readMutVar#
- @ s_a2bs @ GHC.Base.Int var#_a43z eta_s47I
- of wild_a3ZB { (# new_s_a3Zz, r_a3ZA #) ->
- case (# GHC.Prim.State# s_a2bs, [GHC.Base.Char] #) r_a3ZA
- of w_X4o2 { GHC.Base.I# ww_s4mz ->
- $wk_s4mM ww_s4mz @ s_a2bs wild_X34 new_s_a3Zz
- }
- }
- }
- }
-lvl_s4pN :: Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
-[*]
-lvl_s4pN = Main.AlexAcc
- @ ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
- lit_a3m9
- lvl_s4pP
- (Data.Maybe.Nothing @ (GHC.Arr.Array GHC.Base.Char GHC.Base.Bool))
- (Data.Maybe.Nothing @ GHC.Base.Int)
-lvl_s4pM :: [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
-[*]
-lvl_s4pM = GHC.Base.:
- @ (Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- lvl_s4pN
- (GHC.Base.[]
- @ (Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])))
-lvl_s4pL :: [[Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]]
-[*]
-lvl_s4pL = GHC.Base.:
- @ [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- lvl_s4pM
- lvl_s4pQ
-lvl_s4pK :: [[Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]]
-[*]
-lvl_s4pK = GHC.Base.:
- @ [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- (GHC.Base.[]
- @ (Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])))
- lvl_s4pL
-lvl_s4pJ :: [[Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]]
-[*]
-lvl_s4pJ = GHC.Base.:
- @ [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- (GHC.Base.[]
- @ (Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])))
- lvl_s4pK
-alex_accept_a2Bg :: GHC.Arr.Array GHC.Base.Int
- [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
-[*
- Str: DmdType]
-alex_accept_a2Bg = case (GHC.Arr.Array GHC.Base.Int
- [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]) GHC.Prim.newArray#
- @ [Main.AlexAcc ((Main.AlexPosn,
- GHC.Base.Char,
- [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- @ GHC.Prim.RealWorld
- 4
- (GHC.Arr.arrEleBottom
- @ [Main.AlexAcc ((Main.AlexPosn,
- GHC.Base.Char,
- [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])])
- GHC.Prim.realWorld#
- of wild2_a3Up { (# s2#_a3Un, marr#_a3Uo #) ->
- __letrec {
- fillFromList_s4pc :: GHC.Prim.Int#
- -> [[Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]]
- -> GHC.Prim.State# GHC.Prim.RealWorld
- -> GHC.Prim.State# GHC.Prim.RealWorld
- [Arity 3
- 0 -> 0 -> 0 -> *
- Str: DmdType LLL]
- fillFromList_s4pc = \ (i#_a3Ul :: GHC.Prim.Int#)
- (xs_a3Uk :: [[Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]])
- (s3#_a3Uj :: GHC.Prim.State# GHC.Prim.RealWorld) ->
- case (GHC.Prim.State# GHC.Prim.RealWorld) i#_a3Ul of wild_X3y {
- __DEFAULT ->
- case (GHC.Prim.State# GHC.Prim.RealWorld) xs_a3Uk of wild4_a47j {
- [] -> s3#_a3Uj;
- : y_a47h ys_a47i ->
- case (GHC.Prim.State# GHC.Prim.RealWorld) GHC.Prim.writeArray#
- @ GHC.Prim.RealWorld
- @ [Main.AlexAcc ((Main.AlexPosn,
- GHC.Base.Char,
- [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- marr#_a3Uo
- wild_X3y
- y_a47h
- s3#_a3Uj
- of s4#_a47g { __DEFAULT ->
- fillFromList_s4pc (GHC.Prim.+# wild_X3y 1) ys_a47i s4#_a47g
- }
- };
- 4 -> s3#_a3Uj
- };
- } in
- case (GHC.Arr.Array GHC.Base.Int
- [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]) fillFromList_s4pc
- 0 lvl_s4pJ s2#_a3Un
- of s3#_a47k { __DEFAULT ->
- case (GHC.Arr.Array GHC.Base.Int
- [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]) GHC.Prim.unsafeFreezeArray#
- @ GHC.Prim.RealWorld
- @ [Main.AlexAcc ((Main.AlexPosn,
- GHC.Base.Char,
- [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- marr#_a3Uo
- s3#_a47k
- of wild_a488 { (# s2#_a48a, arr#_a48b #) ->
- GHC.Arr.Array
- @ GHC.Base.Int
- @ [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- lit_a3m9
- lvl_s4pX
- arr#_a48b
- }
- }
- }
-check_rctx_a2B6 :: ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
- -> Data.Maybe.Maybe GHC.Base.Int
- -> [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- -> GHC.Base.Char
- -> GHC.Prim.Int#
- -> Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
- -> Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
-[Arity 8
- 0 -> 0 -> 0 -> 0 -> 0 -> 0 -> 0 -> 0 -> *
- Str: DmdType LSLLLL]
-check_rctx_a2B6 = \ (a_a2aL :: (Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
- (rctx_a2aM :: Data.Maybe.Maybe GHC.Base.Int)
- (rest_a2aN :: [Main.AlexAcc ((Main.AlexPosn, GHC.Base.Char, [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])])
- (lc_a2aO :: GHC.Base.Char)
- (len_a2aP :: GHC.Prim.Int#)
- (last_acc_a2aQ :: Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- (@ s_a2bs)
- (eta_x1 :: Main.AlexState s_a2bs)
- (eta_x2 :: GHC.Prim.State# s_a2bs) ->
- (case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) rctx_a2aM
- of wild_X3t {
- Data.Maybe.Nothing ->
- \ (@ s_a2bs)
- (w_s4m0 :: Main.AlexState s_a2bs)
- (w_s4mg :: GHC.Prim.State# s_a2bs) ->
- case (# GHC.Prim.State# s_a2bs,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) w_s4m0
- of w_X4n1 { Main.AlexState ww_s4m2 ww_s4m6 ww_s4ma ww_s4me ->
- case (# GHC.Prim.State# s_a2bs,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) ww_s4m2
- of ww_X4na { GHC.STRef.STRef ww_s4m4 ->
- case (# GHC.Prim.State# s_a2bs,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) ww_s4m6
- of ww_X4ni { GHC.STRef.STRef ww_s4m8 ->
- case (# GHC.Prim.State# s_a2bs,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) ww_s4ma
- of ww_X4nq { GHC.STRef.STRef ww_s4mc ->
- case (# GHC.Prim.State# s_a2bs,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_a2bs
- @ GHC.Base.String
- ww_s4m8
- w_s4mg
- of wild_a3ZB { (# new_s_a3Zz, r_a3ZA #) ->
- case (# GHC.Prim.State# s_a2bs,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_a2bs
- @ GHC.Base.Char
- ww_s4mc
- new_s_a3Zz
- of wild_X42B { (# new_s_X42A, r_X42C #) ->
- case (# GHC.Prim.State# s_a2bs,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_a2bs
- @ Main.AlexPosn
- ww_s4m4
- new_s_X42A
- of wild_X45K { (# new_s_X48T, r_X42D #) ->
- (# new_s_X48T,
- (Main.AlexLastAcc
- @ (Main.AlexInput -> GHC.Base.Int -> Main.Alex [GHC.Base.Char])
- a_a2aL
- (r_X42D, r_X42C, r_a3ZA)
- (GHC.Base.I# len_a2aP)) #)
- }
- }
- }
- }
- }
- }
- };
- Data.Maybe.Just ds_d3nH ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) ds_d3nH
- of wild_X4X { GHC.Base.I# ds_d3nI ->
- let {
- lvl_s4pt :: Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- [*
- Str: DmdType]
- lvl_s4pt = check_accs1_a2B8 rest_a2aN lc_a2aO len_a2aP last_acc_a2aQ
- } in
- \ (@ s_X3iB)
- (s_X2fm :: Main.AlexState s_X3iB)
- (s_X436 :: GHC.Prim.State# s_X3iB) ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) s_X2fm
- of wild_X2B { Main.AlexState pos_r_a21Q inp_r_a21S chr_r_a21R ds_d3od ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) inp_r_a21S
- of wild_a43y { GHC.STRef.STRef var#_a43z ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_X3iB
- @ GHC.Base.String
- var#_a43z
- s_X436
- of wild_a3ZB { (# new_s_a3Zz, r_a3ZA #) ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) chr_r_a21R
- of wild_X46u { GHC.STRef.STRef var#_X46x ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_X3iB
- @ GHC.Base.Char
- var#_X46x
- new_s_a3Zz
- of wild_X42B { (# new_s_X42A, r_X42C #) ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) pos_r_a21Q
- of wild_X46v { GHC.STRef.STRef var#_X46y ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_X3iB
- @ Main.AlexPosn
- var#_X46y
- new_s_X42A
- of wild_X45K { (# new_s_X48T, r_X42D #) ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) r_X42C
- of tpl_X56 { GHC.Base.C# a_s3Wu ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) alex_scan_tkn_a2zF
- tpl_X56
- 0
- ds_d3nI
- (Main.AlexNone
- @ (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- @ s_X3iB
- wild_X2B
- new_s_X48T
- of wild_X42y { (# new_s_X42x, r_X42z #) ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.writeMutVar#
- @ s_X3iB
- @ GHC.Base.String
- var#_a43z
- r_a3ZA
- new_s_X42x
- of s2#_a43F { __DEFAULT ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.writeMutVar#
- @ s_X3iB
- @ Main.AlexPosn
- var#_X46y
- r_X42D
- s2#_a43F
- of s2#_X46S { __DEFAULT ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.writeMutVar#
- @ s_X3iB
- @ GHC.Base.Char
- var#_X46x
- tpl_X56
- s2#_X46S
- of s2#_X46O { __DEFAULT ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) r_X42z
- of wild_X57 {
- Main.AlexNone -> lvl_s4pt @ s_X3iB wild_X2B s2#_X46O;
- Main.AlexLastAcc ds_d3nK ds_d3nL ds_d3nM ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_X3iB
- @ GHC.Base.String
- var#_a43z
- s2#_X46O
- of wild_X42f { (# new_s_X42e, r_X42g #) ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_X3iB
- @ GHC.Base.Char
- var#_X46x
- new_s_X42e
- of wild_X45j { (# new_s_X482, r_X45m #) ->
- case (# GHC.Prim.State# s_X3iB,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_X3iB
- @ Main.AlexPosn
- var#_X46y
- new_s_X482
- of wild_X48w { (# new_s_X4bG, r_X45r #) ->
- (# new_s_X4bG,
- (Main.AlexLastAcc
- @ (Main.AlexInput -> GHC.Base.Int -> Main.Alex [GHC.Base.Char])
- a_a2aL
- (r_X45r, r_X45m, r_X42g)
- (GHC.Base.I# len_a2aP)) #)
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- })
- @ s_a2bs eta_x1 eta_x2
-check_accs1_a2B8 :: [Main.AlexAcc ((Main.AlexPosn,
- GHC.Base.Char,
- [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- -> GHC.Base.Char
- -> GHC.Prim.Int#
- -> Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
- -> Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
-[Arity 4
- 0 -> 0 -> 0 -> 0 -> *
- Str: DmdType SLLL]
-check_accs1_a2B8 = \ (accs_a24C :: [Main.AlexAcc ((Main.AlexPosn,
- GHC.Base.Char,
- [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])])
- (lc_a24D :: GHC.Base.Char)
- (len_a24E :: GHC.Prim.Int#)
- (last_acc_a24F :: Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])) ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) accs_a24C
- of wild_X3t {
- [] ->
- return_a3fW
- @ (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- last_acc_a24F;
- : ds_d3nO rest_a24P ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) ds_d3nO
- of wild_X4Y { Main.AlexAcc ds_d3nP a_a24M lctx_a24N rctx_a24O ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) lctx_a24N
- of wild_X54 {
- Data.Maybe.Nothing ->
- check_rctx_a2B6 a_a24M rctx_a24O rest_a24P lc_a24D len_a24E last_acc_a24F;
- Data.Maybe.Just arr_a24W ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) arr_a24W
- of wild_a48O { GHC.Arr.Array l_a48P u_a48Q ds_a48R ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) l_a48P
- of ww_a48V { GHC.Base.C# ww_a48X ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) u_a48Q
- of ww_a48Z { GHC.Base.C# ww_a491 ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) lc_a24D
- of w_a494 { GHC.Base.C# ww_a496 ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) GHC.Arr.$windex2
- ww_a48X
- ww_a491
- ww_a496
- of ww_a49b { __DEFAULT ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) GHC.Prim.indexArray#
- @ GHC.Base.Bool
- ds_a48R
- ww_a49b
- of wild2_a49K { (# e_a49M #) ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) e_a49M
- of wild_X57 {
- GHC.Base.False -> check_accs1_a2B8 rest_a24P w_a494 len_a24E last_acc_a24F;
- GHC.Base.True ->
- check_rctx_a2B6 a_a24M rctx_a24O rest_a24P w_a494 len_a24E last_acc_a24F
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-alex_scan_tkn_a2zF :: GHC.Base.Char
- -> GHC.Prim.Int#
- -> GHC.Prim.Int#
- -> Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])
- -> Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
-[Arity 4
- 0 -> 0 -> 0 -> 0 -> 0 -> 0 -> *
- Str: DmdType LLLL]
-alex_scan_tkn_a2zF = \ (lc_a23F :: GHC.Base.Char)
- (len_a23G :: GHC.Prim.Int#)
- (ds_d3n1 :: GHC.Prim.Int#)
- (last_acc_a23H :: Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])) ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) ds_d3n1
- of ds_X3rY {
- __DEFAULT ->
- let {
- ds_s4pv :: Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- [*
- Str: DmdType]
- ds_s4pv = case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) alex_accept_a2Bg
- of wild_a4cx { GHC.Arr.Array ds2_a4cu ds3_a4cv arr#_a4cw ->
- case (Main.Alex (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))) GHC.Prim.indexArray#
- @ [Main.AlexAcc ((Main.AlexPosn,
- GHC.Base.Char,
- [GHC.Base.Char])
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char])]
- arr#_a4cw
- ds_X3rY
- of wild2_a4cD { (# e_a4cF #) ->
- check_accs1_a2B8 e_a4cF lc_a23F len_a23G last_acc_a23H
- }
- }
- } in
- \ (@ s_X3iz)
- (s_X2fk :: Main.AlexState s_X3iz)
- (s_X434 :: GHC.Prim.State# s_X3iz) ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) ds_s4pv @ s_X3iz s_X2fk s_X434
- of wild_a3ZB { (# new_s_a3Zz, r_a3ZA #) ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) s_X2fk
- of wild_X2w { Main.AlexState pos_r_a21o inp_r_a21m chr_r_a21n ds_d3o7 ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) inp_r_a21m
- of wild_a43y { GHC.STRef.STRef var#_a43z ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_X3iz
- @ GHC.Base.String
- var#_a43z
- new_s_a3Zz
- of wild_X420 { (# new_s_X41Z, r_X421 #) ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) pos_r_a21o
- of wild_X46p { GHC.STRef.STRef var#_X46s ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.readMutVar#
- @ s_X3iz
- @ Main.AlexPosn
- var#_X46s
- new_s_X41Z
- of wild_X42w { (# new_s_X42v, r_X42x #) ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) r_X421
- of wild_X4j {
- [] -> (# new_s_X42v, r_a3ZA #);
- : c_a21B s_a21C ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.writeMutVar#
- @ s_X3iz
- @ GHC.Base.String
- var#_a43z
- s_a21C
- new_s_X42v
- of s2#_a43F { __DEFAULT ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) chr_r_a21n
- of wild_X46I { GHC.STRef.STRef var#_X46M ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.writeMutVar#
- @ s_X3iz
- @ GHC.Base.Char
- var#_X46M
- c_a21B
- s2#_a43F
- of s2#_X46N { __DEFAULT ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) r_X42x
- of wild_X4p { Main.AlexPn a_a1UD l_a1UE c_a1UF ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) c_a21B
- of wild_X3V { GHC.Base.C# ds_d3my ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) ds_d3my
- of ds_X3qv {
- __DEFAULT ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) a_a1UD
- of wild_a437 { GHC.Base.I# x_a436 ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) c_a1UF
- of wild_X469 { GHC.Base.I# x_X46a ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) l_a1UE
- of tpl_X3b { GHC.Base.I# a_s43O ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.writeMutVar#
- @ s_X3iz
- @ Main.AlexPosn
- var#_X46s
- (Main.AlexPn
- (GHC.Base.I#
- (GHC.Prim.+#
- x_a436 1))
- tpl_X3b
- (GHC.Base.I#
- (GHC.Prim.+#
- x_X46a 1)))
- s2#_X46N
- of s2#_X461 { __DEFAULT ->
- let {
- off'_s3XM :: GHC.Prim.Int#
- [*
- Str: DmdType]
- off'_s3XM = GHC.Prim.*# ds_X3rY 2 } in
- let {
- arr_a22R :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_a22R = "\248\255\253\255\STX\NULL\NUL" } in
- let {
- ds_d3nX :: GHC.Prim.Int#
- [*
- Str: DmdType]
- ds_d3nX = GHC.Prim.ord# ds_X3qv } in
- let {
- offset_s3XK :: GHC.Prim.Int#
- [*
- Str: DmdType]
- offset_s3XK = GHC.Prim.+#
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_a22R (GHC.Prim.+# off'_s3XM 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_a22R off'_s3XM))))))
- ds_d3nX } in
- let {
- $w$j_s4px :: GHC.Prim.State# GHC.Prim.RealWorld
- -> (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #)
- [Arity 1
- *
- Str: DmdType A]
- $w$j_s4px = \ (w_s4mk :: GHC.Prim.State# GHC.Prim.RealWorld) ->
- let {
- arr_X26b :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X26b = "\255\255\255\255\255\255\255\255"
- } in
- alex_scan_tkn_a2zF
- lc_a23F
- (GHC.Prim.+# len_a23G 1)
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X26b (GHC.Prim.+# off'_s3XM 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X26b off'_s3XM))))))
- r_a3ZA
- @ s_X3iz
- wild_X2w
- s2#_X461
- } in
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.>=#
- offset_s3XK 0
- of wild_a43m {
- GHC.Base.False -> $w$j_s4px GHC.Prim.realWorld#;
- GHC.Base.True ->
- let {
- off'_X40Z :: GHC.Prim.Int#
- [*
- Str: DmdType]
- off'_X40Z = GHC.Prim.*# offset_s3XK 2 } in
- let {
- arr_X262 :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X262 = "\255\255\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255 \NUL\255\255\255\255\255\255\255\255 \NUL\255\255'\NUL\255\255\255\255 \NUL\255\255\255\255-\NUL\255\255\255\255\&0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255A\NULB\NULC\NULD\NULE\NULF\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\255\255\255\255\255\255\255\255\255\255a\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULm\NULn\NULo\NULp\NULq\NULr\NULs\NULt\NULu\NULv\NULw\NULx\NULy\NULz\NUL'\NUL\255\255\255\255\255\255\255\255\255\255-\NUL\255\255\255\255\&0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255A\NULB\NULC\NULD\NULE\NULF\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\255\255\255\255\255\255\255\255\255\255a\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULm\NULn\NULo\NULp\NULq\NULr\NULs\NULt\NULu\NULv\NULw\NULx\NULy\NULz\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255"
- } in
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.==#
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X262
- (GHC.Prim.+#
- off'_X40Z
- 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X262
- off'_X40Z))))))
- ds_d3nX
- of wild_X8K {
- GHC.Base.False -> $w$j_s4px GHC.Prim.realWorld#;
- GHC.Base.True ->
- let {
- arr_X26c :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X26c = "\NUL\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL"
- } in
- alex_scan_tkn_a2zF
- lc_a23F
- (GHC.Prim.+# len_a23G 1)
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X26c (GHC.Prim.+# off'_X40Z 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X26c off'_X40Z))))))
- r_a3ZA
- @ s_X3iz
- wild_X2w
- s2#_X461
- }
- }
- }
- }
- }
- };
- '\t' ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) a_a1UD
- of wild_a437 { GHC.Base.I# x_a436 ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) c_a1UF
- of wild_X469 { GHC.Base.I# x_X46a ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Base.divInt#
- (GHC.Prim.+#
- x_X46a 7)
- 8
- of x_a44T { __DEFAULT ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) l_a1UE
- of tpl_X3c { GHC.Base.I# a_s452 ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.writeMutVar#
- @ s_X3iz
- @ Main.AlexPosn
- var#_X46s
- (Main.AlexPn
- (GHC.Base.I#
- (GHC.Prim.+#
- x_a436 1))
- tpl_X3c
- (GHC.Base.I#
- (GHC.Prim.+#
- (GHC.Prim.*#
- x_a44T
- 8)
- 1)))
- s2#_X46N
- of s2#_X461 { __DEFAULT ->
- let {
- off'_s3XM :: GHC.Prim.Int#
- [*
- Str: DmdType]
- off'_s3XM = GHC.Prim.*# ds_X3rY 2 } in
- let {
- arr_a22R :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_a22R = "\248\255\253\255\STX\NULL\NUL" } in
- let {
- offset_s3XK :: GHC.Prim.Int#
- [*
- Str: DmdType]
- offset_s3XK = GHC.Prim.+#
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_a22R (GHC.Prim.+# off'_s3XM 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_a22R off'_s3XM))))))
- 9 } in
- let {
- $w$j_s4pz :: GHC.Prim.State# GHC.Prim.RealWorld
- -> (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #)
- [Arity 1
- *
- Str: DmdType A]
- $w$j_s4pz = \ (w_s4mo :: GHC.Prim.State# GHC.Prim.RealWorld) ->
- let {
- arr_X26c :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X26c = "\255\255\255\255\255\255\255\255"
- } in
- alex_scan_tkn_a2zF
- lc_a23F
- (GHC.Prim.+# len_a23G 1)
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X26c (GHC.Prim.+# off'_s3XM 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X26c off'_s3XM))))))
- r_a3ZA
- @ s_X3iz
- wild_X2w
- s2#_X461
- } in
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.>=#
- offset_s3XK 0
- of wild_a43m {
- GHC.Base.False -> $w$j_s4pz GHC.Prim.realWorld#;
- GHC.Base.True ->
- let {
- off'_X410 :: GHC.Prim.Int#
- [*
- Str: DmdType]
- off'_X410 = GHC.Prim.*# offset_s3XK 2 } in
- let {
- arr_X263 :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X263 = "\255\255\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255 \NUL\255\255\255\255\255\255\255\255 \NUL\255\255'\NUL\255\255\255\255 \NUL\255\255\255\255-\NUL\255\255\255\255\&0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255A\NULB\NULC\NULD\NULE\NULF\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\255\255\255\255\255\255\255\255\255\255a\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULm\NULn\NULo\NULp\NULq\NULr\NULs\NULt\NULu\NULv\NULw\NULx\NULy\NULz\NUL'\NUL\255\255\255\255\255\255\255\255\255\255-\NUL\255\255\255\255\&0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255A\NULB\NULC\NULD\NULE\NULF\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\255\255\255\255\255\255\255\255\255\255a\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULm\NULn\NULo\NULp\NULq\NULr\NULs\NULt\NULu\NULv\NULw\NULx\NULy\NULz\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255"
- } in
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X263
- (GHC.Prim.+#
- off'_X410
- 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X263
- off'_X410)))))
- of wild_X3k {
- __DEFAULT -> $w$j_s4pz GHC.Prim.realWorld#;
- 9 ->
- let {
- arr_X26d :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X26d = "\NUL\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL"
- } in
- alex_scan_tkn_a2zF
- lc_a23F
- (GHC.Prim.+# len_a23G 1)
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X26d (GHC.Prim.+# off'_X410 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X26d off'_X410))))))
- r_a3ZA
- @ s_X3iz
- wild_X2w
- s2#_X461
- }
- }
- }
- }
- }
- }
- };
- '\n' ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) a_a1UD
- of wild_a437 { GHC.Base.I# x_a436 ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) l_a1UE
- of wild_X469 { GHC.Base.I# x_X46a ->
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.writeMutVar#
- @ s_X3iz
- @ Main.AlexPosn
- var#_X46s
- (Main.AlexPn
- (GHC.Base.I#
- (GHC.Prim.+#
- x_a436 1))
- (GHC.Base.I#
- (GHC.Prim.+#
- x_X46a 1))
- lvl_s4pT)
- s2#_X46N
- of s2#_X461 { __DEFAULT ->
- let {
- off'_s3XM :: GHC.Prim.Int#
- [*
- Str: DmdType]
- off'_s3XM = GHC.Prim.*# ds_X3rY 2 } in
- let {
- arr_a22R :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_a22R = "\248\255\253\255\STX\NULL\NUL" } in
- let {
- offset_s3XK :: GHC.Prim.Int#
- [*
- Str: DmdType]
- offset_s3XK = GHC.Prim.+#
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_a22R (GHC.Prim.+# off'_s3XM 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_a22R off'_s3XM))))))
- 10 } in
- let {
- $w$j_s4pC :: GHC.Prim.State# GHC.Prim.RealWorld
- -> (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #)
- [Arity 1
- *
- Str: DmdType A]
- $w$j_s4pC = \ (w_s4ms :: GHC.Prim.State# GHC.Prim.RealWorld) ->
- let {
- arr_X266 :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X266 = "\255\255\255\255\255\255\255\255"
- } in
- alex_scan_tkn_a2zF
- lc_a23F
- (GHC.Prim.+# len_a23G 1)
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X266 (GHC.Prim.+# off'_s3XM 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X266 off'_s3XM))))))
- r_a3ZA
- @ s_X3iz
- wild_X2w
- s2#_X461
- } in
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.>=#
- offset_s3XK 0
- of wild_a43m {
- GHC.Base.False -> $w$j_s4pC GHC.Prim.realWorld#;
- GHC.Base.True ->
- let {
- off'_X40U :: GHC.Prim.Int#
- [*
- Str: DmdType]
- off'_X40U = GHC.Prim.*# offset_s3XK 2 } in
- let {
- arr_X25X :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X25X = "\255\255\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\t\NUL\n\NUL\v\NUL\f\NUL\r\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255 \NUL\255\255\255\255\255\255\255\255 \NUL\255\255'\NUL\255\255\255\255 \NUL\255\255\255\255-\NUL\255\255\255\255\&0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255A\NULB\NULC\NULD\NULE\NULF\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\255\255\255\255\255\255\255\255\255\255a\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULm\NULn\NULo\NULp\NULq\NULr\NULs\NULt\NULu\NULv\NULw\NULx\NULy\NULz\NUL'\NUL\255\255\255\255\255\255\255\255\255\255-\NUL\255\255\255\255\&0\NUL1\NUL2\NUL3\NUL4\NUL5\NUL6\NUL7\NUL8\NUL9\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255A\NULB\NULC\NULD\NULE\NULF\NULG\NULH\NULI\NULJ\NULK\NULL\NULM\NULN\NULO\NULP\NULQ\NULR\NULS\NULT\NULU\NULV\NULW\NULX\NULY\NULZ\NUL\255\255\255\255\255\255\255\255\255\255\255\255a\NULb\NULc\NULd\NULe\NULf\NULg\NULh\NULi\NULj\NULk\NULl\NULm\NULn\NULo\NULp\NULq\NULr\NULs\NULt\NULu\NULv\NULw\NULx\NULy\NULz\NUL\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255"
- } in
- case (# GHC.Prim.State# s_X3iz,
- Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]) #) GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X25X
- (GHC.Prim.+#
- off'_X40U
- 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X25X
- off'_X40U)))))
- of wild_X3e {
- __DEFAULT -> $w$j_s4pC GHC.Prim.realWorld#;
- 10 ->
- let {
- arr_X267 :: GHC.Prim.Addr#
- [*
- Str: DmdType]
- arr_X267 = "\NUL\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\STX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\ETX\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL"
- } in
- alex_scan_tkn_a2zF
- lc_a23F
- (GHC.Prim.+# len_a23G 1)
- (GHC.Prim.narrow16Int#
- (GHC.Prim.word2Int#
- (GHC.Prim.or#
- (GHC.Prim.uncheckedShiftL#
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X267 (GHC.Prim.+# off'_X40U 1))))
- 8)
- (GHC.Prim.int2Word#
- (GHC.Prim.ord#
- (GHC.Prim.indexCharOffAddr#
- arr_X267 off'_X40U))))))
- r_a3ZA
- @ s_X3iz
- wild_X2w
- s2#_X461
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- };
- (-1) ->
- return_a3fW
- @ (Main.AlexLastAcc (Main.AlexInput
- -> GHC.Base.Int
- -> Main.Alex [GHC.Base.Char]))
- last_acc_a23H
- }
-end Rec }
-
-Rec {
-loop_s3YA :: GHC.Num.Integer -> Main.Alex GHC.Num.Integer
-[Arity 1
- 0 -> 0 -> 0 -> *
- Str: DmdType L]
-loop_s3YA = \ (i_a1Ry :: GHC.Num.Integer) ->
- let {
- lvl_s4pE :: Main.Alex GHC.Num.Integer
- [*
- Str: DmdType]
- lvl_s4pE = case (Main.Alex GHC.Num.Integer) GHC.Num.plusInteger i_a1Ry lit_s3Yy
- of tpl_X5k { __DEFAULT ->
- loop_s3YA tpl_X5k
- }
- } in
- \ (@ s_X3iH)
- (s_X2fs :: Main.AlexState s_X3iH)
- (s_X43c :: GHC.Prim.State# s_X3iH) ->
- case (# GHC.Prim.State# s_X3iH, GHC.Num.Integer #) s_X2fs
- of wild_X34 { Main.AlexState ds_d3og ds_d3oh ds_d3oi scd_r_a22m ->
- case (# GHC.Prim.State# s_X3iH, GHC.Num.Integer #) scd_r_a22m
- of wild_a43y { GHC.STRef.STRef var#_a43z ->
- case (# GHC.Prim.State# s_X3iH, GHC.Num.Integer #) GHC.Prim.readMutVar#
- @ s_X3iH @ GHC.Base.Int var#_a43z s_X43c
- of wild_a3ZB { (# new_s_a3Zz, r_a3ZA #) ->
- case (# GHC.Prim.State# s_X3iH, GHC.Num.Integer #) r_a3ZA
- of w_X4o2 { GHC.Base.I# ww_s4mz ->
- case (# GHC.Prim.State# s_X3iH, GHC.Num.Integer #) $wk_s4mM
- ww_s4mz @ s_X3iH wild_X34 new_s_a3Zz
- of wild_X43C { (# new_s_X43B, r_X43D #) ->
- case (# GHC.Prim.State# s_X3iH, GHC.Num.Integer #) GHC.Base.==1 r_X43D lvl_s3Z6
- of wild_a4d2 {
- GHC.Base.False ->
- case (# GHC.Prim.State# s_X3iH, GHC.Num.Integer #) GHC.Base.==1 r_X43D lvl_s3Z7
- of wild_X3O {
- GHC.Base.False -> lvl_s4pE @ s_X3iH wild_X34 new_s_X43B;
- GHC.Base.True -> (# new_s_X43B, i_a1Ry #)
- };
- GHC.Base.True -> (# new_s_X43B, i_a1Ry #)
- }
- }
- }
- }
- }
- }
-end Rec }
-
-lvl_s4pZ :: GHC.Num.Integer
-[*]
-lvl_s4pZ = GHC.Num.S# 0
-
-lvl_s3Z5 :: Main.Alex GHC.Num.Integer
-[0 -> 0 -> *
- Str: DmdType]
-lvl_s3Z5 = loop_s3YA lvl_s4pZ
-
-Main.alexStartPos :: Main.AlexPosn
-[*
- Str: DmdType m]
-Main.alexStartPos = Main.AlexPn lit_a3m9 lvl_s4pT lvl_s4pT
-
-lvl_s4q0 :: GHC.Base.Char
-[*]
-lvl_s4q0 = GHC.Base.C# '\n'
-
-k_a4es :: GHC.Base.String -> GHC.IOBase.IO ()
-[Arity 2
- 0 -> 0 -> *
- Str: DmdType LL]
-k_a4es = \ (s_a1Uq :: GHC.Base.String)
- (eta_s4ed :: GHC.Prim.State# GHC.Prim.RealWorld) ->
- case (# GHC.Prim.State# GHC.Prim.RealWorld, () #) GHC.IO.hPutStr
- GHC.Handle.stdout
- (case GHC.Base.String GHC.Prim.newMutVar#
- @ GHC.Base.String
- @ GHC.Prim.RealWorld
- s_a1Uq
- GHC.Prim.realWorld#
- of wild_a4cU { (# s2#_a4cV, var#_a4cW #) ->
- case GHC.Base.String GHC.Prim.newMutVar#
- @ GHC.Base.Char
- @ GHC.Prim.RealWorld
- lvl_s4q0
- s2#_a4cV
- of wild_X4fc { (# s2#_X4fe, var#_X4fg #) ->
- case GHC.Base.String GHC.Prim.newMutVar#
- @ Main.AlexPosn
- @ GHC.Prim.RealWorld
- Main.alexStartPos
- s2#_X4fe
- of wild_X4gU { (# s2#_X4gW, var#_X4gY #) ->
- case GHC.Base.String GHC.Prim.newMutVar#
- @ GHC.Base.Int
- @ GHC.Prim.RealWorld
- lit_a3m9
- s2#_X4gW
- of wild_X4gS { (# s2#_X4l2, var#_X4l5 #) ->
- case GHC.Base.String lvl_s3Z5
- @ GHC.Prim.RealWorld
- (Main.AlexState
- @ GHC.Prim.RealWorld
- (GHC.STRef.STRef
- @ GHC.Prim.RealWorld
- @ Main.AlexPosn
- var#_X4gY)
- (GHC.STRef.STRef
- @ GHC.Prim.RealWorld
- @ GHC.Base.String
- var#_a4cW)
- (GHC.STRef.STRef
- @ GHC.Prim.RealWorld
- @ GHC.Base.Char
- var#_X4fg)
- (GHC.STRef.STRef
- @ GHC.Prim.RealWorld
- @ GHC.Base.Int
- var#_X4l5))
- s2#_X4l2
- of wild_a4jy { (# ds_a4jz, r_a4jA #) ->
- GHC.Num.$wshowsPrec
- 0 r_a4jA (GHC.Base.[] @ GHC.Base.Char)
- }
- }
- }
- }
- })
- eta_s4ed
- of wild_a4dA { (# new_s_a4dB, a89_a4dC #) ->
- GHC.IO.$whPutChar GHC.Handle.stdout '\n' new_s_a4dB
- }
-
-Main.main :: GHC.IOBase.IO ()
-[Exported]
-[Arity 1
- 0 -> *
- Str: DmdType L]
-Main.main = \ (s_a4er :: GHC.Prim.State# GHC.Prim.RealWorld) ->
- case (# GHC.Prim.State# GHC.Prim.RealWorld, () #) GHC.IO.hGetContents
- GHC.Handle.stdin s_a4er
- of wild_a4eA { (# new_s_a4ey, a89_a4ez #) ->
- k_a4es a89_a4ez new_s_a4ey
- }
-
-lvl_s4q1 :: GHC.Prim.State# GHC.Prim.RealWorld
- -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-[Arity 1
- 0 -> *]
-lvl_s4q1 = \ (s_a3VF :: GHC.Prim.State# GHC.Prim.RealWorld) ->
- case (# GHC.Prim.State# GHC.Prim.RealWorld, () #) GHC.IO.hGetContents
- GHC.Handle.stdin s_a3VF
- of wild_a4eA { (# new_s_a4ey, a89_a4ez #) ->
- case (# GHC.Prim.State# GHC.Prim.RealWorld, () #) k_a4es a89_a4ez new_s_a4ey
- of wild_a4eD { (# new_s_a4eK, a89_a4eL #) ->
- case (# GHC.Prim.State# GHC.Prim.RealWorld, () #) GHC.Prim.catch#
- @ ()
- @ GHC.IOBase.Exception
- GHC.TopHandler.ds
- GHC.TopHandler.k
- new_s_a4eK
- of wild1_a4eE { (# new_s1_a4eI, a891_a4eJ #) ->
- case (# GHC.Prim.State# GHC.Prim.RealWorld, () #) GHC.Prim.catch#
- @ ()
- @ GHC.IOBase.Exception
- GHC.TopHandler.ds1
- GHC.TopHandler.k1
- new_s1_a4eI
- of wild2_a4eF { (# new_s2_a4eG, a892_a4eH #) ->
- (# new_s2_a4eG, a89_a4eL #)
- }
- }
- }
- }
-
-:Main.main :: GHC.IOBase.IO ()
-[Exported]
-[Arity 1
- 0 -> *
- Str: DmdType L]
-:Main.main = \ (eta_a3VG :: GHC.Prim.State# GHC.Prim.RealWorld) ->
- GHC.Prim.catch#
- @ () @ GHC.IOBase.Exception lvl_s4q1 (GHC.TopHandler.topHandler @ ()) eta_a3VG
-
-
-
diff --git a/testsuite/tests/arityanal/Makefile b/testsuite/tests/arityanal/Makefile
index e69de29bb2..9a36a1c5fe 100644
--- a/testsuite/tests/arityanal/Makefile
+++ b/testsuite/tests/arityanal/Makefile
@@ -0,0 +1,3 @@
+TOP=../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/test.mk
diff --git a/testsuite/tests/arityanal/f0.stderr b/testsuite/tests/arityanal/f0.stderr
deleted file mode 100644
index 29ce90589b..0000000000
--- a/testsuite/tests/arityanal/f0.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-
-==================== IdInfo ====================
-lvl_s1yb :: GHC.Base.Int :: [*
- Str: DmdType m]
-F0.f0 :: GHC.Base.Int
- -> GHC.Base.Int
- -> GHC.Base.Int
- -> GHC.Base.Int :: [Arity 3
- 0 -> 0 -> 0 -> *
- Str: DmdType U(L)LLm]
-
-
diff --git a/testsuite/tests/arityanal/f1.stderr b/testsuite/tests/arityanal/f1.stderr
deleted file mode 100644
index afafd7d71b..0000000000
--- a/testsuite/tests/arityanal/f1.stderr
+++ /dev/null
@@ -1,20 +0,0 @@
-***Arity is changed: h1{v a19i} 3 2
-
-==================== IdInfo ====================
-lvl_s1AI :: GHC.Num.Integer -> GHC.Num.Integer :: [Arity 1
- 0 -> *
- Str: DmdType S]
-lit_a1hu :: GHC.Num.Integer :: [*
- Str: DmdType]
-lit_a1ho :: GHC.Num.Integer :: [*
- Str: DmdType]
-h1_a19i :: GHC.Num.Integer
- -> GHC.Num.Integer
- -> GHC.Num.Integer
- -> GHC.Num.Integer :: [Arity 2
- 0 -> 0 -> 0 -> *
- Str: DmdType SS]
-F1.f1 :: GHC.Num.Integer :: [*
- Str: DmdType]
-
-
diff --git a/testsuite/tests/arityanal/f10.stderr b/testsuite/tests/arityanal/f10.stderr
deleted file mode 100644
index cd3a95fbe4..0000000000
--- a/testsuite/tests/arityanal/f10.stderr
+++ /dev/null
@@ -1,27 +0,0 @@
-***Arity is changed as occur many times: F10.f10f{v r155} 2 1
-
-==================== IdInfo ====================
-lit_s1Ll :: GHC.Num.Integer :: [*
- Str: DmdType]
-lit_s1Lj :: GHC.Num.Integer :: [*
- Str: DmdType]
-lit_s1Lh :: GHC.Num.Integer :: [*
- Str: DmdType]
-F10.f10g :: GHC.Num.Integer -> GHC.Num.Integer -> GHC.Num.Integer :: [Arity 2
- *
- Str: DmdType SS]
-F10.f10f :: forall a_a1fu.
- (GHC.Num.Integer -> GHC.Num.Integer -> a_a1fu)
- -> (a_a1fu, GHC.Num.Integer -> a_a1fu) :: [Arity 1
- 1 -> *
- Str: DmdType Lm]
-F10.f10h :: (GHC.Num.Integer, GHC.Num.Integer -> GHC.Num.Integer) :: [*
- Str: DmdType]
-F10.f10x1 :: GHC.Num.Integer :: [*
- Str: DmdType]
-F10.f10x2 :: GHC.Num.Integer -> GHC.Num.Integer :: [*
- Str: DmdType]
-F10.f10 :: GHC.Num.Integer :: [*
- Str: DmdType]
-
-
diff --git a/testsuite/tests/arityanal/f11.stderr b/testsuite/tests/arityanal/f11.stderr
deleted file mode 100644
index fc78dad48d..0000000000
--- a/testsuite/tests/arityanal/f11.stderr
+++ /dev/null
@@ -1,45 +0,0 @@
-***expensive e1 0
-***expensive e1 0
-***expensive e1 0
-***expensive e1 0
-***expensive e1 0
-
-==================== IdInfo ====================
-lvl_s1Fz :: GHC.Num.Integer :: [*
- Str: DmdType]
-lvl_s1Fv :: GHC.Num.Integer :: [*
- Str: DmdType]
-lvl_s1Fu :: GHC.Num.Integer :: [*
- Str: DmdType]
-fib_s1Fj :: GHC.Num.Integer -> GHC.Num.Integer :: [Arity 1
- 0 -> *
- Str: DmdType S]
-lvl_s1IP :: GHC.Num.Integer :: [*]
-x_s1Fr :: GHC.Num.Integer :: [*
- Str: DmdType]
-lvl_s1IQ :: GHC.Num.Integer :: [*]
-a_s1rF :: GHC.Num.Integer :: [*
- Str: DmdType]
-lvl_s1IR :: GHC.Num.Integer :: [*]
-a_s1rE :: GHC.Num.Integer :: [*
- Str: DmdType]
-F11.f11 :: (GHC.Num.Integer, GHC.Num.Integer) :: [*
- Str: DmdType m]
-F11.f11f :: forall t_a1gd.
- t_a1gd -> GHC.Num.Integer -> GHC.Num.Integer :: [Arity 2
- T
- Str: DmdType AS]
-F11.fib :: forall a_a19x a_a1eN.
- (GHC.Num.Num a_a1eN, GHC.Num.Num a_a19x) =>
- a_a19x -> a_a1eN :: [Arity 2
- 0 -> 0 -> 0 -> *
- Str: DmdType LL
- RULES: "SPEC F11.fib" __forall {$dNum_X1Fo :: {GHC.Num.Num GHC.Num.Integer}
- $dNum_X1Fq :: {GHC.Num.Num GHC.Num.Integer}}
- F11.fib @ GHC.Num.Integer
- @ GHC.Num.Integer
- $dNum_X1Fo
- $dNum_X1Fq
- = fib_s1Fj ;]
-
-
diff --git a/testsuite/tests/arityanal/f12.stderr b/testsuite/tests/arityanal/f12.stderr
deleted file mode 100644
index 9cd69ed7e2..0000000000
--- a/testsuite/tests/arityanal/f12.stderr
+++ /dev/null
@@ -1,8 +0,0 @@
-
-==================== IdInfo ====================
-lvl_s1Bx :: GHC.Num.Integer :: [*]
-lvl_s1By :: GHC.Num.Integer :: [*]
-F12.f12 :: GHC.Num.Integer :: [*
- Str: DmdType]
-
-
diff --git a/testsuite/tests/arityanal/f13.stderr b/testsuite/tests/arityanal/f13.stderr
deleted file mode 100644
index 37718205b0..0000000000
--- a/testsuite/tests/arityanal/f13.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-***expensive e1 0
-
-==================== IdInfo ====================
-lvl_s1AR :: GHC.Num.Integer :: [*
- Str: DmdType]
-lvl_s1AQ :: GHC.Num.Integer :: [*
- Str: DmdType]
-F13.f13 :: forall a_a19A a_a1gc.
- (GHC.Num.Num a_a19A,
- GHC.Base.Ord a_a19A,
- GHC.Num.Num a_a1gc,
- GHC.Num.Num (a_a19A -> a_a1gc -> a_a1gc)) =>
- a_a19A -> a_a1gc -> a_a1gc -> a_a1gc :: [Arity 6
- 0 -> 0 -> 0 -> 0 -> 0 -> 0 -> 0 -> *
- Str: DmdType LLLLLL]
-
-
diff --git a/testsuite/tests/arityanal/f14.stderr b/testsuite/tests/arityanal/f14.stderr
deleted file mode 100644
index 8a3e8382ba..0000000000
--- a/testsuite/tests/arityanal/f14.stderr
+++ /dev/null
@@ -1,26 +0,0 @@
-***expensive e1 0
-***Arity is changed as occur many times: F14.f14{v r16A} 4 0
-
-==================== IdInfo ====================
-lvl_s1zz :: forall a_a19p. a_a19p -> a_a19p :: [Arity 1
- 0 -> *
- Str: DmdType S]
-lvl_s1zy :: GHC.Num.Integer :: [*
- Str: DmdType]
-$wf14_s1Ak :: forall a_a19p.
- (a_a19p -> a_a19p -> GHC.Base.Bool)
- -> {GHC.Num.Num a_a19p}
- -> a_a19p
- -> a_a19p
- -> a_a19p
- -> a_a19p :: [Arity 4
- 2 -> 0 -> 0 -> 0 -> 0 -> *
- Str: DmdType C(C(S))LLL]
-F14.f14 :: forall a_a19p.
- (GHC.Base.Ord a_a19p, GHC.Num.Num a_a19p) =>
- a_a19p -> a_a19p -> a_a19p -> a_a19p :: [Arity 4
- T
- Worker $wf14_s1Ak
- Str: DmdType U(AAC(C(S))AAAAA)LLL]
-
-
diff --git a/testsuite/tests/arityanal/f15.stderr b/testsuite/tests/arityanal/f15.stderr
deleted file mode 100644
index a68ecb25e4..0000000000
--- a/testsuite/tests/arityanal/f15.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-
-==================== IdInfo ====================
-lit_s1zs :: GHC.Num.Integer :: [*
- Str: DmdType]
-F15.f15f :: forall t_a1fm. (GHC.Num.Integer -> t_a1fm) -> t_a1fm :: [Arity 1
- 1 -> *
- Str: DmdType C(S)]
-F15.f15g :: GHC.Num.Integer -> GHC.Num.Integer :: [Arity 1
- 0 -> *
- Str: DmdType S]
-F15.f15 :: GHC.Num.Integer :: [*
- Str: DmdType]
-
-
diff --git a/testsuite/tests/arityanal/f2.stderr b/testsuite/tests/arityanal/f2.stderr
deleted file mode 100644
index d3fe22cc80..0000000000
--- a/testsuite/tests/arityanal/f2.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-
-==================== IdInfo ====================
-lit_s1Bh :: GHC.Num.Integer :: [*
- Str: DmdType]
-F2.f2f :: forall t_a19s t_a19u.
- (t_a19u -> GHC.Num.Integer -> t_a19s) -> t_a19u -> t_a19s :: [Arity 2
- 2 -> 0 -> *
- Str: DmdType C(C(S))L]
-lit_a1i8 :: GHC.Num.Integer :: [*
- Str: DmdType]
-g_a1fp :: GHC.Num.Integer -> GHC.Num.Integer -> GHC.Num.Integer :: [Arity 2
- 0 -> 0 -> *
- Str: DmdType SS]
-lvl_s1DV :: GHC.Num.Integer :: [*]
-F2.f2 :: GHC.Num.Integer :: [*
- Str: DmdType]
-
-
diff --git a/testsuite/tests/arityanal/f3.stderr b/testsuite/tests/arityanal/f3.stderr
deleted file mode 100644
index 863713ebe4..0000000000
--- a/testsuite/tests/arityanal/f3.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-***Arity is changed as occur many times: F3.f3{v r157} 1 0
-
-==================== IdInfo ====================
-$wfac_s1Bz :: GHC.Prim.Int# -> GHC.Prim.Int# :: [Arity 1
- 0 -> *
- Str: DmdType L]
-F3.fac :: GHC.Base.Int -> GHC.Base.Int :: [Arity 1
- T
- Worker $wfac_s1Bz
- Str: DmdType U(L)m]
-F3.f3 :: GHC.Base.Int -> GHC.Base.Int :: [Arity 1
- T
- Str: DmdType U(L)m]
-
-
diff --git a/testsuite/tests/arityanal/f4.stderr b/testsuite/tests/arityanal/f4.stderr
deleted file mode 100644
index 48b617f3ae..0000000000
--- a/testsuite/tests/arityanal/f4.stderr
+++ /dev/null
@@ -1,22 +0,0 @@
-***Arity is changed as occur many times: F4.f4h{v r155} 2 0
-
-==================== IdInfo ====================
-F4.f4g :: GHC.Base.Int -> GHC.Base.Int :: [Arity 1
- 0 -> *
- Str: DmdType U(L)m]
-lvl_s1Cq :: GHC.Base.Int :: [*]
-$wf4h_s1C9 :: (GHC.Base.Int -> GHC.Base.Int)
- -> GHC.Prim.Int#
- -> GHC.Base.Int :: [Arity 2
- 0 -> 0 -> *
- Str: DmdType C(S)L]
-F4.f4h :: (GHC.Base.Int -> GHC.Base.Int)
- -> GHC.Base.Int
- -> GHC.Base.Int :: [Arity 2
- T
- Worker $wf4h_s1C9
- Str: DmdType C(S)U(L)]
-F4.f4 :: GHC.Base.Int :: [*
- Str: DmdType]
-
-
diff --git a/testsuite/tests/arityanal/f5.stderr b/testsuite/tests/arityanal/f5.stderr
deleted file mode 100644
index 757cd3d35e..0000000000
--- a/testsuite/tests/arityanal/f5.stderr
+++ /dev/null
@@ -1,47 +0,0 @@
-
-==================== IdInfo ====================
-lvl_s1B7 :: GHC.Num.Integer :: [*
- Str: DmdType]
-$sf5h_s1B2 :: forall t_a1gj.
- (t_a1gj -> GHC.Num.Integer)
- -> t_a1gj
- -> (t_a1gj -> GHC.Num.Integer)
- -> GHC.Num.Integer :: [Arity 3
- 1 -> 0 -> 1 -> *
- Str: DmdType C(S)LC(S)]
-$sf5g_s1B1 :: forall t_a1fy.
- (t_a1fy -> GHC.Num.Integer) -> t_a1fy -> GHC.Num.Integer :: [Arity 2
- 1 -> 0 -> *
- Str: DmdType C(S)L]
-eta_s1or :: GHC.Num.Integer :: [*
- Str: DmdType]
-F5.f5h :: forall a_a1gd t_a1gj.
- (GHC.Num.Num a_a1gd) =>
- (t_a1gj -> a_a1gd) -> t_a1gj -> (t_a1gj -> a_a1gd) -> a_a1gd :: [Arity 4
- 0 -> 1 -> 0 -> 1 -> *
- Str: DmdType U(AAC(C(S))AAAAAL)LLL
- RULES: "SPEC F5.f5h" __forall {@ t_a1gj
- $dNum_X1Bl :: {GHC.Num.Num GHC.Num.Integer}}
- F5.f5h @ GHC.Num.Integer
- @ t_a1gj
- $dNum_X1Bl
- = $sf5h_s1B2
- @ t_a1gj ;]
-F5.f5g :: forall t_a1fy a_a1fB.
- (GHC.Num.Num a_a1fB) =>
- (t_a1fy -> a_a1fB) -> t_a1fy -> a_a1fB :: [Arity 3
- 0 -> 1 -> 0 -> *
- Str: DmdType U(AAC(C(S))AAAAAL)LL
- RULES: "SPEC F5.f5g" __forall {@ t_a1fy
- $dNum_X1Bk :: {GHC.Num.Num GHC.Num.Integer}}
- F5.f5g @ t_a1fy @ GHC.Num.Integer $dNum_X1Bk
- = $sf5g_s1B1 @ t_a1fy ;]
-F5.f5y :: GHC.Num.Integer -> GHC.Num.Integer :: [Arity 1
- 0 -> *
- Str: DmdType S]
-lvl_s1DK :: GHC.Num.Integer :: [*]
-lvl_s1DL :: GHC.Num.Integer :: [*]
-F5.f5 :: GHC.Num.Integer :: [*
- Str: DmdType]
-
-
diff --git a/testsuite/tests/arityanal/f6.stderr b/testsuite/tests/arityanal/f6.stderr
deleted file mode 100644
index 68c03c44a3..0000000000
--- a/testsuite/tests/arityanal/f6.stderr
+++ /dev/null
@@ -1,16 +0,0 @@
-
-==================== IdInfo ====================
-lit_s1zR :: GHC.Num.Integer :: [*
- Str: DmdType]
-lvl_s1C2 :: GHC.Num.Integer :: [*]
-F6.f6 :: GHC.Num.Integer :: [*
- Str: DmdType]
-F6.f6t :: GHC.Num.Integer -> GHC.Num.Integer -> GHC.Num.Integer :: [Arity 2
- *
- Str: DmdType SS]
-F6.f6f :: forall t_a1fp t_a1fr.
- (t_a1fr -> GHC.Num.Integer -> t_a1fp) -> t_a1fr -> t_a1fp :: [Arity 2
- 2 -> 0 -> *
- Str: DmdType C(C(S))L]
-
-
diff --git a/testsuite/tests/arityanal/f7.stderr b/testsuite/tests/arityanal/f7.stderr
deleted file mode 100644
index 7cef2a7c36..0000000000
--- a/testsuite/tests/arityanal/f7.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-
-==================== IdInfo ====================
-lvl_s1BI :: GHC.Num.Integer :: [*]
-lvl_s1BJ :: GHC.Num.Integer :: [*]
-F7.f7 :: GHC.Num.Integer :: [*
- Str: DmdType]
-F7.f7g :: GHC.Num.Integer -> GHC.Num.Integer -> GHC.Num.Integer :: [Arity 2
- *
- Str: DmdType SS]
-F7.f7f :: forall t_a1fh. t_a1fh -> t_a1fh :: [Arity 1
- 0 -> *
- Str: DmdType S]
-
-
diff --git a/testsuite/tests/arityanal/f8.stderr b/testsuite/tests/arityanal/f8.stderr
deleted file mode 100644
index e297ceb722..0000000000
--- a/testsuite/tests/arityanal/f8.stderr
+++ /dev/null
@@ -1,20 +0,0 @@
-
-==================== IdInfo ====================
-$sf8f_s1zR :: GHC.Base.Bool
- -> GHC.Num.Integer
- -> GHC.Num.Integer
- -> GHC.Num.Integer :: [Arity 3
- 0 -> 0 -> 0 -> *
- Str: DmdType SLS]
-F8.f8 :: GHC.Num.Integer :: [*
- Str: DmdType]
-F8.f8f :: forall a_a1ex.
- (GHC.Num.Num a_a1ex) =>
- GHC.Base.Bool -> a_a1ex -> a_a1ex -> a_a1ex :: [Arity 4
- 0 -> 0 -> 0 -> 0 -> *
- Str: DmdType LSLL
- RULES: "SPEC F8.f8f" __forall {$dNum_X1zY :: {GHC.Num.Num GHC.Num.Integer}}
- F8.f8f @ GHC.Num.Integer $dNum_X1zY
- = $sf8f_s1zR ;]
-
-
diff --git a/testsuite/tests/arityanal/f9.stderr b/testsuite/tests/arityanal/f9.stderr
deleted file mode 100644
index 267b96b858..0000000000
--- a/testsuite/tests/arityanal/f9.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-
-==================== IdInfo ====================
-lit_a1hg :: GHC.Num.Integer :: [*
- Str: DmdType]
-lit_a1he :: GHC.Num.Integer :: [*
- Str: DmdType]
-lit_a1h9 :: GHC.Num.Integer :: [*
- Str: DmdType]
-f_a19b :: GHC.Num.Integer -> GHC.Num.Integer :: [Arity 1
- 0 -> *
- Str: DmdType S]
-F9.f91 :: GHC.Num.Integer :: [*
- Str: DmdType]
-
-
diff --git a/testsuite/tests/arityanal/prim.stderr b/testsuite/tests/arityanal/prim.stderr
deleted file mode 100644
index b5f76d493e..0000000000
--- a/testsuite/tests/arityanal/prim.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-***Arity is changed as occur in Lambda: polyzufail_s1tt{v} 1 0
-
-==================== IdInfo ====================
-poly_fail_s1tt :: forall a_a175. [a_a175] :: [*
- Str: DmdType b]
-Prim.zipWith2 :: forall a_a16Z a_a171 a_a175.
- (a_a16Z -> a_a171 -> a_a175) -> [a_a16Z] -> [a_a171] -> [a_a175] :: [Arity 3
- 0 -> 0 -> 0 -> *
- Str: DmdType LSS]
-Prim.map2 :: forall a_a17C a_a17G.
- (a_a17C -> a_a17G) -> [a_a17C] -> [a_a17G] :: [Arity 2
- 0 -> 0 -> *
- Str: DmdType LS]
-
-
diff --git a/testsuite/tests/arityanal/f0.hs b/testsuite/tests/arityanal/should_compile/Arity00.hs
index 2499aa6f2c..2499aa6f2c 100644
--- a/testsuite/tests/arityanal/f0.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity00.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity00.stderr b/testsuite/tests/arityanal/should_compile/Arity00.stderr
new file mode 100644
index 0000000000..392e1eebc5
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity00.stderr
@@ -0,0 +1,34 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 29, types: 15, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
+F0.f1 :: Int
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
+F0.f1 = GHC.Types.I# 1#
+
+-- RHS size: {terms: 25, types: 10, coercions: 0, joins: 0/0}
+f0 :: Int -> Int -> Int -> Int
+[GblId,
+ Arity=3,
+ Str=<S,1*U(U)><L,1*U(U)><L,1*U(U)>,
+ Cpr=m1,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=3,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (x [Occ=Once1!] :: Int) (y [Occ=Once1!] :: Int) (eta [Occ=Once1!] :: Int) ->
+ case x of { GHC.Types.I# x1 ->
+ case GHC.Prim.># x1 0# of {
+ __DEFAULT -> F0.f1;
+ 1# -> case y of { GHC.Types.I# y1 [Occ=Once1] -> case eta of { GHC.Types.I# y2 [Occ=Once1] -> GHC.Types.I# (GHC.Prim.+# (GHC.Prim.+# x1 y1) y2) } }
+ }
+ }}]
+f0
+ = \ (x :: Int) (y :: Int) (eta :: Int) ->
+ case x of { GHC.Types.I# x1 ->
+ case GHC.Prim.># x1 0# of {
+ __DEFAULT -> F0.f1;
+ 1# -> case y of { GHC.Types.I# y1 -> case eta of { GHC.Types.I# y2 -> GHC.Types.I# (GHC.Prim.+# (GHC.Prim.+# x1 y1) y2) } }
+ }
+ }
+
+
+
diff --git a/testsuite/tests/arityanal/f1.hs b/testsuite/tests/arityanal/should_compile/Arity01.hs
index 71ccfe4d16..71ccfe4d16 100644
--- a/testsuite/tests/arityanal/f1.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity01.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity01.stderr b/testsuite/tests/arityanal/should_compile/Arity01.stderr
new file mode 100644
index 0000000000..318fc799e0
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity01.stderr
@@ -0,0 +1,70 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 61, types: 45, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F1.f2 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F1.f2 = 1
+
+Rec {
+-- RHS size: {terms: 18, types: 4, coercions: 0, joins: 0/0}
+F1.f1_h1 [Occ=LoopBreaker] :: Integer -> Integer -> Integer -> Integer
+[GblId, Arity=3, Str=<S,U><S,U><S,U>, Unf=OtherCon []]
+F1.f1_h1
+ = \ (n :: Integer) (x :: Integer) (eta :: Integer) ->
+ case GHC.Num.Integer.integerCompare x n of {
+ __DEFAULT -> eta;
+ LT -> F1.f1_h1 n (GHC.Num.Integer.integerAdd x F1.f2) (GHC.Num.Integer.integerAdd x eta)
+ }
+end Rec }
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F1.f3 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F1.f3 = 5
+
+-- RHS size: {terms: 4, types: 0, coercions: 0, joins: 0/0}
+f1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 40 0}]
+f1 = F1.f1_h1 F1.f3 F1.f2 F1.f3
+
+-- RHS size: {terms: 14, types: 5, coercions: 0, joins: 0/0}
+g :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer
+[GblId,
+ Arity=5,
+ Str=<S,1*U><S,U><S,U><S,U><S,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=5,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (x1 [Occ=Once1] :: Integer) (x2 [Occ=Once1] :: Integer) (x3 [Occ=Once1] :: Integer) (x4 [Occ=Once1] :: Integer) (x5 [Occ=Once1] :: Integer) -> GHC.Num.Integer.integerAdd (GHC.Num.Integer.integerAdd (GHC.Num.Integer.integerAdd (GHC.Num.Integer.integerAdd x1 x2) x3) x4) x5}]
+g = \ (x1 :: Integer) (x2 :: Integer) (x3 :: Integer) (x4 :: Integer) (x5 :: Integer) -> GHC.Num.Integer.integerAdd (GHC.Num.Integer.integerAdd (GHC.Num.Integer.integerAdd (GHC.Num.Integer.integerAdd x1 x2) x3) x4) x5
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F1.s1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F1.s1 = 3
+
+-- RHS size: {terms: 8, types: 9, coercions: 0, joins: 0/0}
+s :: forall {t1} {t2}. Num t1 => (t1 -> t2) -> t2
+[GblId,
+ Arity=2,
+ Str=<L,1*U(A,A,A,A,A,A,1*C1(U))><C(S),1*C1(U)>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (@t) (@t1) ($dNum [Occ=Once1] :: Num t) (f [Occ=Once1!] :: t -> t1) -> f (fromInteger @t $dNum F1.s1)}]
+s = \ (@t) (@t1) ($dNum :: Num t) (f :: t -> t1) -> f (fromInteger @t $dNum F1.s1)
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F1.h1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F1.h1 = 24
+
+-- RHS size: {terms: 4, types: 1, coercions: 0, joins: 0/0}
+h :: Integer -> Integer
+[GblId,
+ Arity=1,
+ Str=<S,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (x5 [Occ=Once1] :: Integer) -> GHC.Num.Integer.integerAdd F1.h1 x5}]
+h = \ (x5 :: Integer) -> GHC.Num.Integer.integerAdd F1.h1 x5
+
+
+
diff --git a/testsuite/tests/arityanal/f2.hs b/testsuite/tests/arityanal/should_compile/Arity02.hs
index 39ddae0f06..39ddae0f06 100644
--- a/testsuite/tests/arityanal/f2.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity02.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity02.stderr b/testsuite/tests/arityanal/should_compile/Arity02.stderr
new file mode 100644
index 0000000000..3bcac9aacc
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity02.stderr
@@ -0,0 +1,47 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 35, types: 27, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F2.f1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F2.f1 = 0
+
+-- RHS size: {terms: 7, types: 8, coercions: 0, joins: 0/0}
+f2f :: forall {t1} {t2}. (t1 -> Integer -> t2) -> t1 -> t2
+[GblId,
+ Arity=2,
+ Str=<C(C(S)),1*C1(C1(U))><L,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=True)
+ Tmpl= \ (@t) (@t1) (h [Occ=Once1!] :: t -> Integer -> t1) (x [Occ=Once1] :: t) -> h x F2.f1}]
+f2f = \ (@t) (@t1) (h :: t -> Integer -> t1) (x :: t) -> h x F2.f1
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+lvl :: Integer
+[GblId, Unf=OtherCon []]
+lvl = 1
+
+Rec {
+-- RHS size: {terms: 16, types: 3, coercions: 0, joins: 0/0}
+F2.f2_g [Occ=LoopBreaker] :: Integer -> Integer -> Integer
+[GblId, Arity=2, Str=<S,U><S,U>, Unf=OtherCon []]
+F2.f2_g
+ = \ (x :: Integer) (y :: Integer) ->
+ case GHC.Num.Integer.integerCompare x F2.f1 of {
+ __DEFAULT -> y;
+ GT -> F2.f2_g (GHC.Num.Integer.integerSub x lvl) (GHC.Num.Integer.integerAdd x y)
+ }
+end Rec }
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F2.f3 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F2.f3 = 5
+
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
+f2 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
+f2 = F2.f2_g F2.f3 F2.f1
+
+
+
diff --git a/testsuite/tests/arityanal/f3.hs b/testsuite/tests/arityanal/should_compile/Arity03.hs
index a54f25b78e..a54f25b78e 100644
--- a/testsuite/tests/arityanal/f3.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity03.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity03.stderr b/testsuite/tests/arityanal/should_compile/Arity03.stderr
new file mode 100644
index 0000000000..29432b7307
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity03.stderr
@@ -0,0 +1,38 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 29, types: 13, coercions: 0, joins: 0/0}
+
+Rec {
+-- RHS size: {terms: 15, types: 3, coercions: 0, joins: 0/0}
+F3.$wfac [InlPrag=NOUSERINLINE[2], Occ=LoopBreaker] :: GHC.Prim.Int# -> GHC.Prim.Int#
+[GblId, Arity=1, Str=<S,1*U>, Unf=OtherCon []]
+F3.$wfac
+ = \ (ww :: GHC.Prim.Int#) ->
+ case ww of wild {
+ __DEFAULT -> case F3.$wfac (GHC.Prim.-# wild 1#) of ww1 { __DEFAULT -> GHC.Prim.*# wild ww1 };
+ 0# -> 1#
+ }
+end Rec }
+
+-- RHS size: {terms: 10, types: 4, coercions: 0, joins: 0/0}
+fac [InlPrag=NOUSERINLINE[2]] :: Int -> Int
+[GblId,
+ Arity=1,
+ Str=<S(S),1*U(1*U)>,
+ Cpr=m1,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (w [Occ=Once1!] :: Int) -> case w of { GHC.Types.I# ww1 [Occ=Once1] -> case F3.$wfac ww1 of ww2 [Occ=Once1] { __DEFAULT -> GHC.Types.I# ww2 } }}]
+fac = \ (w :: Int) -> case w of { GHC.Types.I# ww1 -> case F3.$wfac ww1 of ww2 { __DEFAULT -> GHC.Types.I# ww2 } }
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f3 :: Int -> Int
+[GblId,
+ Arity=1,
+ Str=<S(S),1*U(1*U)>,
+ Cpr=m1,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
+ Tmpl= fac}]
+f3 = fac
+
+
+
diff --git a/testsuite/tests/arityanal/f4.hs b/testsuite/tests/arityanal/should_compile/Arity04.hs
index 3c70acae4a..3c70acae4a 100644
--- a/testsuite/tests/arityanal/f4.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity04.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity04.stderr b/testsuite/tests/arityanal/should_compile/Arity04.stderr
new file mode 100644
index 0000000000..5e05c7407d
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity04.stderr
@@ -0,0 +1,47 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 39, types: 24, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 8, types: 3, coercions: 0, joins: 0/0}
+f4g :: Int -> Int
+[GblId,
+ Arity=1,
+ Str=<S,1*U(U)>,
+ Cpr=m1,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (y [Occ=Once1!] :: Int) -> case y of { GHC.Types.I# x [Occ=Once1] -> GHC.Types.I# (GHC.Prim.+# x 1#) }}]
+f4g = \ (y :: Int) -> case y of { GHC.Types.I# x -> GHC.Types.I# (GHC.Prim.+# x 1#) }
+
+-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
+lvl :: Int
+[GblId, Unf=OtherCon []]
+lvl = GHC.Types.I# 0#
+
+Rec {
+-- RHS size: {terms: 13, types: 4, coercions: 0, joins: 0/0}
+F4.$wf4h [InlPrag=NOUSERINLINE[2], Occ=LoopBreaker] :: (Int -> Int) -> GHC.Prim.Int# -> Int
+[GblId, Arity=2, Str=<C(S),1*C1(U)><S,1*U>, Unf=OtherCon []]
+F4.$wf4h
+ = \ (w :: Int -> Int) (ww :: GHC.Prim.Int#) ->
+ case ww of wild {
+ __DEFAULT -> F4.$wf4h w (GHC.Prim.-# wild 1#);
+ 0# -> w lvl
+ }
+end Rec }
+
+-- RHS size: {terms: 8, types: 5, coercions: 0, joins: 0/0}
+f4h [InlPrag=NOUSERINLINE[2]] :: (Int -> Int) -> Int -> Int
+[GblId,
+ Arity=2,
+ Str=<C(S),1*C1(U)><S(S),1*U(1*U)>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (w [Occ=Once1] :: Int -> Int) (w1 [Occ=Once1!] :: Int) -> case w1 of { GHC.Types.I# ww1 [Occ=Once1] -> F4.$wf4h w ww1 }}]
+f4h = \ (w :: Int -> Int) (w1 :: Int) -> case w1 of { GHC.Types.I# ww1 -> F4.$wf4h w ww1 }
+
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
+f4 :: Int
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
+f4 = F4.$wf4h f4g 9#
+
+
+
diff --git a/testsuite/tests/arityanal/f5.hs b/testsuite/tests/arityanal/should_compile/Arity05.hs
index 7595866195..7595866195 100644
--- a/testsuite/tests/arityanal/f5.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity05.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity05.stderr b/testsuite/tests/arityanal/should_compile/Arity05.stderr
new file mode 100644
index 0000000000..ccdba513af
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity05.stderr
@@ -0,0 +1,48 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 54, types: 99, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F5.f5g1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F5.f5g1 = 1
+
+-- RHS size: {terms: 12, types: 11, coercions: 0, joins: 0/0}
+f5g :: forall {a} {t}. Num a => (t -> a) -> t -> a
+[GblId,
+ Arity=3,
+ Str=<S(C(C(S))LLLLLL),U(1*C1(C1(U)),A,A,A,A,A,1*C1(U))><L,1*C1(U)><L,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=3,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (@a) (@t) ($dNum :: Num a) (h [Occ=Once1!] :: t -> a) (z [Occ=Once1] :: t) -> + @a $dNum (h z) (fromInteger @a $dNum F5.f5g1)}]
+f5g = \ (@a) (@t) ($dNum :: Num a) (h :: t -> a) (z :: t) -> + @a $dNum (h z) (fromInteger @a $dNum F5.f5g1)
+
+-- RHS size: {terms: 15, types: 14, coercions: 0, joins: 0/0}
+F5.$wf5h [InlPrag=NOUSERINLINE[2]] :: forall {a} {t}. (a -> a -> a) -> (Integer -> a) -> (t -> a) -> t -> (t -> a) -> a
+[GblId, Arity=5, Str=<C(C(S)),C(C1(U))><L,1*C1(U)><L,1*C1(U)><L,U><L,1*C1(U)>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [60 60 60 0 60] 120 0}]
+F5.$wf5h = \ (@a) (@t) (ww :: a -> a -> a) (ww1 :: Integer -> a) (w :: t -> a) (w1 :: t) (w2 :: t -> a) -> ww (w w1) (ww (w2 w1) (ww1 F5.f5g1))
+
+-- RHS size: {terms: 15, types: 32, coercions: 0, joins: 0/0}
+f5h [InlPrag=NOUSERINLINE[2]] :: forall {a} {t}. Num a => (t -> a) -> t -> (t -> a) -> a
+[GblId,
+ Arity=4,
+ Str=<S(C(C(S))LLLLLL),1*U(C(C1(U)),A,A,A,A,A,1*C1(U))><L,1*C1(U)><L,U><L,1*C1(U)>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=4,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (@a) (@t) (w [Occ=Once1!] :: Num a) (w1 [Occ=Once1] :: t -> a) (w2 [Occ=Once1] :: t) (w3 [Occ=Once1] :: t -> a) -> case w of { GHC.Num.C:Num ww1 [Occ=Once1] _ [Occ=Dead] _ [Occ=Dead] _ [Occ=Dead] _ [Occ=Dead] _ [Occ=Dead] ww7 [Occ=Once1] -> F5.$wf5h @a @t ww1 ww7 w1 w2 w3 }}]
+f5h = \ (@a) (@t) (w :: Num a) (w1 :: t -> a) (w2 :: t) (w3 :: t -> a) -> case w of { GHC.Num.C:Num ww1 ww2 ww3 ww4 ww5 ww6 ww7 -> F5.$wf5h @a @t ww1 ww7 w1 w2 w3 }
+
+-- RHS size: {terms: 4, types: 1, coercions: 0, joins: 0/0}
+f5y :: Integer -> Integer
+[GblId,
+ Arity=1,
+ Str=<S,1*U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (y [Occ=Once1] :: Integer) -> GHC.Num.Integer.integerAdd y F5.f5g1}]
+f5y = \ (y :: Integer) -> GHC.Num.Integer.integerAdd y F5.f5g1
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f5 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+f5 = 3
+
+
+
diff --git a/testsuite/tests/arityanal/f6.hs b/testsuite/tests/arityanal/should_compile/Arity06.hs
index b45951d6a2..b45951d6a2 100644
--- a/testsuite/tests/arityanal/f6.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity06.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity06.stderr b/testsuite/tests/arityanal/should_compile/Arity06.stderr
new file mode 100644
index 0000000000..50a1ddc76b
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity06.stderr
@@ -0,0 +1,34 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 14, types: 22, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F6.f6f1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F6.f6f1 = 0
+
+-- RHS size: {terms: 7, types: 8, coercions: 0, joins: 0/0}
+f6f :: forall {t1} {t2}. (t1 -> Integer -> t2) -> t1 -> t2
+[GblId,
+ Arity=2,
+ Str=<C(C(S)),1*C1(C1(U))><L,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=True)
+ Tmpl= \ (@t) (@t1) (h [Occ=Once1!] :: t -> Integer -> t1) (x [Occ=Once1] :: t) -> h x F6.f6f1}]
+f6f = \ (@t) (@t1) (h :: t -> Integer -> t1) (x :: t) -> h x F6.f6f1
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f6t :: Integer -> Integer -> Integer
+[GblId,
+ Arity=2,
+ Str=<S,1*U><S,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
+ Tmpl= GHC.Num.Integer.integerAdd}]
+f6t = GHC.Num.Integer.integerAdd
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f6 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+f6 = 3
+
+
+
diff --git a/testsuite/tests/arityanal/f7.hs b/testsuite/tests/arityanal/should_compile/Arity07.hs
index fb68ada9c2..fb68ada9c2 100644
--- a/testsuite/tests/arityanal/f7.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity07.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity07.stderr b/testsuite/tests/arityanal/should_compile/Arity07.stderr
new file mode 100644
index 0000000000..3a1852e017
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity07.stderr
@@ -0,0 +1,29 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 8, types: 11, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 3, types: 3, coercions: 0, joins: 0/0}
+f7f :: forall {p}. p -> p
+[GblId,
+ Arity=1,
+ Str=<S,1*U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
+ Tmpl= \ (@p) (x [Occ=Once1] :: p) -> x}]
+f7f = \ (@p) (x :: p) -> x
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f7g :: Integer -> Integer -> Integer
+[GblId,
+ Arity=2,
+ Str=<S,1*U><S,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
+ Tmpl= GHC.Num.Integer.integerAdd}]
+f7g = GHC.Num.Integer.integerAdd
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f7 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+f7 = 5
+
+
+
diff --git a/testsuite/tests/arityanal/f8.hs b/testsuite/tests/arityanal/should_compile/Arity08.hs
index 6abb2b87e9..6abb2b87e9 100644
--- a/testsuite/tests/arityanal/f8.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity08.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity08.stderr b/testsuite/tests/arityanal/should_compile/Arity08.stderr
new file mode 100644
index 0000000000..1f2f6c0fa4
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity08.stderr
@@ -0,0 +1,29 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 23, types: 20, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 20, types: 11, coercions: 0, joins: 0/0}
+f8f :: forall {p}. Num p => Bool -> p -> p -> p
+[GblId,
+ Arity=4,
+ Str=<L,U(C(C1(U)),A,1*C1(C1(U)),A,A,A,A)><S,1*U><L,U><L,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=4,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (@p) ($dNum :: Num p) (b [Occ=Once1!] :: Bool) (x :: p) (y [Occ=Once2] :: p) ->
+ case b of {
+ False -> + @p $dNum (+ @p $dNum x y) (* @p $dNum x x);
+ True -> y
+ }}]
+f8f
+ = \ (@p) ($dNum :: Num p) (b :: Bool) (x :: p) (y :: p) ->
+ case b of {
+ False -> + @p $dNum (+ @p $dNum x y) (* @p $dNum x x);
+ True -> y
+ }
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f8 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+f8 = 2
+
+
+
diff --git a/testsuite/tests/arityanal/f9.hs b/testsuite/tests/arityanal/should_compile/Arity09.hs
index 1d53d89174..1d53d89174 100644
--- a/testsuite/tests/arityanal/f9.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity09.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity09.stderr b/testsuite/tests/arityanal/should_compile/Arity09.stderr
new file mode 100644
index 0000000000..580483309f
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity09.stderr
@@ -0,0 +1,38 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 25, types: 8, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+lvl :: Integer
+[GblId, Unf=OtherCon []]
+lvl = 100
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+lvl1 :: Integer
+[GblId, Unf=OtherCon []]
+lvl1 = 11
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F9.f1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F9.f1 = 10
+
+Rec {
+-- RHS size: {terms: 15, types: 2, coercions: 0, joins: 0/0}
+F9.f91_f [Occ=LoopBreaker] :: Integer -> Integer
+[GblId, Arity=1, Str=<S,U>, Unf=OtherCon []]
+F9.f91_f
+ = \ (n :: Integer) ->
+ case GHC.Num.Integer.integerCompare n lvl of {
+ __DEFAULT -> F9.f91_f (F9.f91_f (GHC.Num.Integer.integerAdd n lvl1));
+ GT -> GHC.Num.Integer.integerSub n F9.f1
+ }
+end Rec }
+
+-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
+f91 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
+f91 = F9.f91_f F9.f1
+
+
+
diff --git a/testsuite/tests/arityanal/f10.hs b/testsuite/tests/arityanal/should_compile/Arity10.hs
index 12d4009a53..12d4009a53 100644
--- a/testsuite/tests/arityanal/f10.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity10.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity10.stderr b/testsuite/tests/arityanal/should_compile/Arity10.stderr
new file mode 100644
index 0000000000..3c527026ec
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity10.stderr
@@ -0,0 +1,64 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 28, types: 34, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F10.f10f3 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F10.f10f3 = 1
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F10.f10f2 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F10.f10f2 = 2
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F10.f10f1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F10.f10f1 = 3
+
+-- RHS size: {terms: 8, types: 8, coercions: 0, joins: 0/0}
+f10f :: forall {a}. (Integer -> Integer -> a) -> (a, Integer -> a)
+[GblId,
+ Arity=1,
+ Str=<L,C(U)>,
+ Cpr=m1,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (@a) (h :: Integer -> Integer -> a) -> (h F10.f10f3 F10.f10f2, h F10.f10f1)}]
+f10f = \ (@a) (h :: Integer -> Integer -> a) -> (h F10.f10f3 F10.f10f2, h F10.f10f1)
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f10g :: Integer -> Integer -> Integer
+[GblId,
+ Arity=2,
+ Str=<S,1*U><S,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
+ Tmpl= GHC.Num.Integer.integerAdd}]
+f10g = GHC.Num.Integer.integerAdd
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f10x1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
+f10x1 = F10.f10f1
+
+-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
+f10x2 :: Integer -> Integer
+[GblId,
+ Arity=1,
+ Str=<S,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (eta [Occ=Once1] :: Integer) -> GHC.Num.Integer.integerAdd F10.f10f1 eta}]
+f10x2 = GHC.Num.Integer.integerAdd F10.f10f1
+
+-- RHS size: {terms: 3, types: 3, coercions: 0, joins: 0/0}
+f10h :: (Integer, Integer -> Integer)
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
+f10h = (F10.f10f1, f10x2)
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f10 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+f10 = 6
+
+
+
diff --git a/testsuite/tests/arityanal/f11.hs b/testsuite/tests/arityanal/should_compile/Arity11.hs
index 9fd32c2fb5..9fd32c2fb5 100644
--- a/testsuite/tests/arityanal/f11.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity11.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity11.stderr b/testsuite/tests/arityanal/should_compile/Arity11.stderr
new file mode 100644
index 0000000000..243632ea06
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity11.stderr
@@ -0,0 +1,135 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 129, types: 104, coercions: 0, joins: 0/5}
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F11.fib1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F11.fib1 = 0
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F11.fib3 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F11.fib3 = 1
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F11.fib2 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F11.fib2 = 2
+
+Rec {
+-- RHS size: {terms: 24, types: 3, coercions: 0, joins: 0/0}
+F11.f11_fib [Occ=LoopBreaker] :: Integer -> Integer
+[GblId, Arity=1, Str=<S,U>, Unf=OtherCon []]
+F11.f11_fib
+ = \ (ds :: Integer) ->
+ case GHC.Num.Integer.integerEq# ds F11.fib1 of {
+ __DEFAULT ->
+ case GHC.Num.Integer.integerEq# ds F11.fib3 of {
+ __DEFAULT -> GHC.Num.Integer.integerAdd (F11.f11_fib (GHC.Num.Integer.integerSub ds F11.fib3)) (F11.f11_fib (GHC.Num.Integer.integerSub ds F11.fib2));
+ 1# -> F11.fib3
+ };
+ 1# -> F11.fib3
+ }
+end Rec }
+
+-- RHS size: {terms: 52, types: 28, coercions: 0, joins: 0/5}
+F11.$wfib [InlPrag=NOUSERINLINE[2]] :: forall {a} {p}. (a -> a -> Bool) -> (Num a, Num p) => a -> p
+[GblId, Arity=4, Str=<C(C(S)),C(C1(U))><L,U(A,C(C1(U)),A,A,A,A,C(U))><L,U(C(C1(U)),A,A,A,A,A,1*C1(U))><L,U>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [60 150 60 0] 460 0}]
+F11.$wfib
+ = \ (@a) (@p) (ww :: a -> a -> Bool) (w :: Num a) (w1 :: Num p) (w2 :: a) ->
+ let {
+ lvl :: a
+ [LclId]
+ lvl = fromInteger @a w F11.fib3 } in
+ let {
+ lvl1 :: a
+ [LclId]
+ lvl1 = fromInteger @a w F11.fib2 } in
+ let {
+ lvl2 :: p
+ [LclId]
+ lvl2 = fromInteger @p w1 F11.fib3 } in
+ let {
+ lvl3 :: a
+ [LclId]
+ lvl3 = fromInteger @a w F11.fib1 } in
+ letrec {
+ fib4 [Occ=LoopBreaker] :: a -> p
+ [LclId, Arity=1, Str=<L,U>, Unf=OtherCon []]
+ fib4
+ = \ (ds :: a) ->
+ case ww ds lvl3 of {
+ False ->
+ case ww ds lvl of {
+ False -> + @p w1 (fib4 (- @a w ds lvl)) (fib4 (- @a w ds lvl1));
+ True -> lvl2
+ };
+ True -> lvl2
+ }; } in
+ fib4 w2
+
+-- RHS size: {terms: 14, types: 21, coercions: 0, joins: 0/0}
+fib [InlPrag=NOUSERINLINE[2]] :: forall {a} {p}. (Eq a, Num a, Num p) => a -> p
+[GblId,
+ Arity=4,
+ Str=<S(C(C(S))L),1*U(C(C1(U)),A)><L,U(A,C(C1(U)),A,A,A,A,C(U))><L,U(C(C1(U)),A,A,A,A,A,C(U))><L,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=4,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (@a) (@p) (w [Occ=Once1!] :: Eq a) (w1 [Occ=Once1] :: Num a) (w2 [Occ=Once1] :: Num p) (w3 [Occ=Once1] :: a) -> case w of { GHC.Classes.C:Eq ww1 [Occ=Once1] _ [Occ=Dead] -> F11.$wfib @a @p ww1 w1 w2 w3 }}]
+fib = \ (@a) (@p) (w :: Eq a) (w1 :: Num a) (w2 :: Num p) (w3 :: a) -> case w of { GHC.Classes.C:Eq ww1 ww2 -> F11.$wfib @a @p ww1 w1 w2 w3 }
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F11.f3 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F11.f3 = 1000
+
+-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
+F11.f11_x :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
+F11.f11_x = F11.f11_fib F11.f3
+
+-- RHS size: {terms: 4, types: 1, coercions: 0, joins: 0/0}
+F11.f11f1 :: Integer -> Integer
+[GblId,
+ Arity=1,
+ Str=<S,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (y [Occ=Once1] :: Integer) -> GHC.Num.Integer.integerAdd F11.f11_x y}]
+F11.f11f1 = \ (y :: Integer) -> GHC.Num.Integer.integerAdd F11.f11_x y
+
+-- RHS size: {terms: 3, types: 3, coercions: 0, joins: 0/0}
+f11f :: forall {p}. p -> Integer -> Integer
+[GblId,
+ Arity=2,
+ Str=<L,A><S,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
+ Tmpl= \ (@p) _ [Occ=Dead] (eta [Occ=Once1] :: Integer) -> F11.f11f1 eta}]
+f11f = \ (@p) _ [Occ=Dead] -> F11.f11f1
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F11.f5 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F11.f5 = 6
+
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
+F11.f4 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
+F11.f4 = GHC.Num.Integer.integerAdd F11.f11_x F11.f5
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F11.f2 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F11.f2 = 8
+
+-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
+F11.f1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
+F11.f1 = GHC.Num.Integer.integerAdd F11.f11_x F11.f2
+
+-- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
+f11 :: (Integer, Integer)
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
+f11 = (F11.f4, F11.f1)
+
+
+
diff --git a/testsuite/tests/arityanal/f12.hs b/testsuite/tests/arityanal/should_compile/Arity12.hs
index dfc043b84c..dfc043b84c 100644
--- a/testsuite/tests/arityanal/f12.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity12.hs
diff --git a/testsuite/tests/arityanal/f13.hs b/testsuite/tests/arityanal/should_compile/Arity13.hs
index 5ab7823b0d..bcf87f53e4 100644
--- a/testsuite/tests/arityanal/f13.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity13.hs
@@ -1,8 +1,9 @@
module F13 where
+f13 :: Int -> Int -> Int -> Int
f13 x y = let f13f = if (x>0) then \z -> z x y
else \z -> y
- f13h = let v = f13f 5
+ f13h = let v = f13f (*)
in \w -> w + v
in \u -> f13h u
diff --git a/testsuite/tests/arityanal/should_compile/Arity13.stderr b/testsuite/tests/arityanal/should_compile/Arity13.stderr
new file mode 100644
index 0000000000..88f55bda2d
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity13.stderr
@@ -0,0 +1,33 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 32, types: 16, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 31, types: 12, coercions: 0, joins: 0/0}
+f13 :: Int -> Int -> Int -> Int
+[GblId,
+ Arity=3,
+ Str=<S,1*U(U)><S,1*U(U)><S,1*U(U)>,
+ Cpr=m1,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=3,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (x [Occ=Once1!] :: Int) (y [Occ=Once2!] :: Int) (eta [Occ=Once1!] :: Int) ->
+ case eta of { GHC.Types.I# x1 [Occ=Once2] ->
+ case x of { GHC.Types.I# x2 ->
+ case GHC.Prim.># x2 0# of {
+ __DEFAULT -> case y of { GHC.Types.I# y1 [Occ=Once1] -> GHC.Types.I# (GHC.Prim.+# x1 y1) };
+ 1# -> case y of { GHC.Types.I# y1 [Occ=Once1] -> GHC.Types.I# (GHC.Prim.+# x1 (GHC.Prim.*# x2 y1)) }
+ }
+ }
+ }}]
+f13
+ = \ (x :: Int) (y :: Int) (eta :: Int) ->
+ case eta of { GHC.Types.I# x1 ->
+ case x of { GHC.Types.I# x2 ->
+ case GHC.Prim.># x2 0# of {
+ __DEFAULT -> case y of { GHC.Types.I# y1 -> GHC.Types.I# (GHC.Prim.+# x1 y1) };
+ 1# -> case y of { GHC.Types.I# y1 -> GHC.Types.I# (GHC.Prim.+# x1 (GHC.Prim.*# x2 y1)) }
+ }
+ }
+ }
+
+
+
diff --git a/testsuite/tests/arityanal/f14.hs b/testsuite/tests/arityanal/should_compile/Arity14.hs
index 1f2c19ed92..1f2c19ed92 100644
--- a/testsuite/tests/arityanal/f14.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity14.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity14.stderr b/testsuite/tests/arityanal/should_compile/Arity14.stderr
new file mode 100644
index 0000000000..1d4ea800e6
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity14.stderr
@@ -0,0 +1,54 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 56, types: 87, coercions: 0, joins: 0/3}
+
+-- RHS size: {terms: 3, types: 3, coercions: 0, joins: 0/0}
+F14.f1 :: forall {t}. t -> t
+[GblId,
+ Arity=1,
+ Str=<S,1*U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
+ Tmpl= \ (@t) (y [Occ=Once1] :: t) -> y}]
+F14.f1 = \ (@t) (y :: t) -> y
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F14.f2 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F14.f2 = 1
+
+-- RHS size: {terms: 35, types: 24, coercions: 0, joins: 0/3}
+F14.$wf14 [InlPrag=NOUSERINLINE[2]] :: forall {t}. (t -> t -> Bool) -> Num t => t -> t -> t -> t
+[GblId, Arity=4, Str=<C(C(S)),C(C1(U))><L,U(C(C1(U)),A,A,A,A,A,1*C1(U))><L,U><L,U>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [60 90 0 0] 300 0}]
+F14.$wf14
+ = \ (@t) (ww :: t -> t -> Bool) (w :: Num t) (w1 :: t) (w2 :: t) ->
+ let {
+ lvl :: t
+ [LclId]
+ lvl = fromInteger @t w F14.f2 } in
+ letrec {
+ f3 [Occ=LoopBreaker] :: t -> t -> t -> t
+ [LclId, Arity=2, Str=<L,U><L,U>, Unf=OtherCon []]
+ f3
+ = \ (n :: t) (x :: t) ->
+ case ww x n of {
+ False -> F14.f1 @t;
+ True ->
+ let {
+ v [Dmd=<L,C(U)>] :: t -> t
+ [LclId]
+ v = f3 n (+ @t w x lvl) } in
+ \ (y :: t) -> v (+ @t w x y)
+ }; } in
+ f3 w1 w2
+
+-- RHS size: {terms: 13, types: 34, coercions: 0, joins: 0/0}
+f14 [InlPrag=NOUSERINLINE[2]] :: forall {t}. (Ord t, Num t) => t -> t -> t -> t
+[GblId,
+ Arity=4,
+ Str=<S(LLC(C(S))LLLLL),1*U(A,A,C(C1(U)),A,A,A,A,A)><L,U(C(C1(U)),A,A,A,A,A,C(U))><L,U><L,U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=4,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (@t) (w [Occ=Once1!] :: Ord t) (w1 [Occ=Once1] :: Num t) (w2 [Occ=Once1] :: t) (w3 [Occ=Once1] :: t) -> case w of { GHC.Classes.C:Ord _ [Occ=Dead] _ [Occ=Dead] ww3 [Occ=Once1] _ [Occ=Dead] _ [Occ=Dead] _ [Occ=Dead] _ [Occ=Dead] _ [Occ=Dead] -> F14.$wf14 @t ww3 w1 w2 w3 }}]
+f14 = \ (@t) (w :: Ord t) (w1 :: Num t) (w2 :: t) (w3 :: t) -> case w of { GHC.Classes.C:Ord ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 -> F14.$wf14 @t ww3 w1 w2 w3 }
+
+
+
diff --git a/testsuite/tests/arityanal/f15.hs b/testsuite/tests/arityanal/should_compile/Arity15.hs
index 0ad77e3a3f..0ad77e3a3f 100644
--- a/testsuite/tests/arityanal/f15.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity15.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity15.stderr b/testsuite/tests/arityanal/should_compile/Arity15.stderr
new file mode 100644
index 0000000000..4034be6198
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity15.stderr
@@ -0,0 +1,34 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 14, types: 14, coercions: 0, joins: 0/0}
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+F15.f15f1 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+F15.f15f1 = 1
+
+-- RHS size: {terms: 4, types: 4, coercions: 0, joins: 0/0}
+f15f :: forall {t}. (Integer -> t) -> t
+[GblId,
+ Arity=1,
+ Str=<C(S),1*C1(U)>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
+ Tmpl= \ (@t) (h [Occ=Once1!] :: Integer -> t) -> h F15.f15f1}]
+f15f = \ (@t) (h :: Integer -> t) -> h F15.f15f1
+
+-- RHS size: {terms: 4, types: 1, coercions: 0, joins: 0/0}
+f15g :: Integer -> Integer
+[GblId,
+ Arity=1,
+ Str=<S,1*U>,
+ Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
+ Tmpl= \ (x [Occ=Once1] :: Integer) -> GHC.Num.Integer.integerAdd x F15.f15f1}]
+f15g = \ (x :: Integer) -> GHC.Num.Integer.integerAdd x F15.f15f1
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+f15 :: Integer
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
+f15 = 2
+
+
+
diff --git a/testsuite/tests/arityanal/prim.hs b/testsuite/tests/arityanal/should_compile/Arity16.hs
index b5a854cb4d..b5a854cb4d 100644
--- a/testsuite/tests/arityanal/prim.hs
+++ b/testsuite/tests/arityanal/should_compile/Arity16.hs
diff --git a/testsuite/tests/arityanal/should_compile/Arity16.stderr b/testsuite/tests/arityanal/should_compile/Arity16.stderr
new file mode 100644
index 0000000000..6c9d7f61f8
--- /dev/null
+++ b/testsuite/tests/arityanal/should_compile/Arity16.stderr
@@ -0,0 +1,48 @@
+
+==================== Tidy Core ====================
+Result size of Tidy Core = {terms: 52, types: 87, coercions: 0, joins: 0/0}
+
+Rec {
+-- RHS size: {terms: 15, types: 17, coercions: 0, joins: 0/0}
+map2 [Occ=LoopBreaker] :: forall {t} {a}. (t -> a) -> [t] -> [a]
+[GblId, Arity=2, Str=<L,C(U)><S,1*U>, Unf=OtherCon []]
+map2
+ = \ (@t) (@a) (f :: t -> a) (ds :: [t]) ->
+ case ds of {
+ [] -> GHC.Types.[] @a;
+ : x xs -> GHC.Types.: @a (f x) (map2 @t @a f xs)
+ }
+end Rec }
+
+-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
+lvl :: GHC.Prim.Addr#
+[GblId, Unf=OtherCon []]
+lvl = "Arity16.hs:(6,1)-(7,47)|function zipWith2"#
+
+-- RHS size: {terms: 3, types: 5, coercions: 0, joins: 0/0}
+lvl1 :: forall {a}. [a]
+[GblId, Str=b, Cpr=b]
+lvl1 = \ (@a) -> Control.Exception.Base.patError @'GHC.Types.LiftedRep @[a] lvl
+
+Rec {
+-- RHS size: {terms: 29, types: 35, coercions: 0, joins: 0/0}
+zipWith2 [Occ=LoopBreaker] :: forall {t1} {t2} {a}. (t1 -> t2 -> a) -> [t1] -> [t2] -> [a]
+[GblId, Arity=3, Str=<L,C(C1(U))><S,1*U><S,1*U>, Unf=OtherCon []]
+zipWith2
+ = \ (@t) (@t1) (@a) (f :: t -> t1 -> a) (ds :: [t]) (ds1 :: [t1]) ->
+ case ds of {
+ [] ->
+ case ds1 of {
+ [] -> GHC.Types.[] @a;
+ : ipv ipv1 -> lvl1 @a
+ };
+ : a1 x ->
+ case ds1 of {
+ [] -> lvl1 @a;
+ : b y -> GHC.Types.: @a (f a1 b) (zipWith2 @t @t1 @a f x y)
+ }
+ }
+end Rec }
+
+
+
diff --git a/testsuite/tests/arityanal/should_compile/T18793.stderr b/testsuite/tests/arityanal/should_compile/T18793.stderr
index 72fc5e4e19..60b2fd784d 100644
--- a/testsuite/tests/arityanal/should_compile/T18793.stderr
+++ b/testsuite/tests/arityanal/should_compile/T18793.stderr
@@ -1,31 +1,6 @@
==================== Tidy Core ====================
-Result size of Tidy Core = {terms: 95, types: 79, coercions: 0, joins: 0/0}
-
--- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
-T18793.$trModule4 :: GHC.Prim.Addr#
-[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
-T18793.$trModule4 = "main"#
-
--- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-T18793.$trModule3 :: GHC.Types.TrName
-[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
-T18793.$trModule3 = GHC.Types.TrNameS T18793.$trModule4
-
--- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
-T18793.$trModule2 :: GHC.Prim.Addr#
-[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
-T18793.$trModule2 = "T18793"#
-
--- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-T18793.$trModule1 :: GHC.Types.TrName
-[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
-T18793.$trModule1 = GHC.Types.TrNameS T18793.$trModule2
-
--- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-T18793.$trModule :: GHC.Types.Module
-[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
-T18793.$trModule = GHC.Types.Module T18793.$trModule3 T18793.$trModule1
+Result size of Tidy Core = {terms: 81, types: 74, coercions: 0, joins: 0/0}
-- RHS size: {terms: 20, types: 13, coercions: 0, joins: 0/0}
T18793.$wstuff [InlPrag=NOINLINE] :: Int -> (# Int, [Int] #)
diff --git a/testsuite/tests/arityanal/should_compile/all.T b/testsuite/tests/arityanal/should_compile/all.T
index ed1047ba00..3413a3270c 100644
--- a/testsuite/tests/arityanal/should_compile/all.T
+++ b/testsuite/tests/arityanal/should_compile/all.T
@@ -1 +1,21 @@
-test('T18793', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+# "Unit tests"
+test('Arity00', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity01', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity02', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity03', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity04', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity05', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity06', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity07', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity08', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity09', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity10', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity11', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity12', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity13', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity14', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity15', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+test('Arity16', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])
+
+# Regression tests
+test('T18793', [ only_ways(['optasm']), grep_errmsg('Arity=') ], compile, ['-dno-typeable-binds -ddump-simpl -dppr-cols=99999 -dsuppress-uniques'])