summaryrefslogtreecommitdiff
path: root/testsuite/tests/arityanal
diff options
context:
space:
mode:
authorDavid Terei <davidterei@gmail.com>2011-07-20 11:09:03 -0700
committerDavid Terei <davidterei@gmail.com>2011-07-20 11:26:35 -0700
commit16514f272fb42af6e9c7674a9bd6c9dce369231f (patch)
treee4f332b45fe65e2a7a2451be5674f887b42bf199 /testsuite/tests/arityanal
parentebd422aed41048476aa61dd4c520d43becd78682 (diff)
downloadhaskell-16514f272fb42af6e9c7674a9bd6c9dce369231f.tar.gz
Move tests from tests/ghc-regress/* to just tests/*
Diffstat (limited to 'testsuite/tests/arityanal')
-rw-r--r--testsuite/tests/arityanal/Main.hs303
-rw-r--r--testsuite/tests/arityanal/Main.stderr1874
-rw-r--r--testsuite/tests/arityanal/Makefile0
-rw-r--r--testsuite/tests/arityanal/f0.hs6
-rw-r--r--testsuite/tests/arityanal/f0.stderr12
-rw-r--r--testsuite/tests/arityanal/f1.hs10
-rw-r--r--testsuite/tests/arityanal/f1.stderr20
-rw-r--r--testsuite/tests/arityanal/f10.hs8
-rw-r--r--testsuite/tests/arityanal/f10.stderr27
-rw-r--r--testsuite/tests/arityanal/f11.hs10
-rw-r--r--testsuite/tests/arityanal/f11.stderr45
-rw-r--r--testsuite/tests/arityanal/f12.hs5
-rw-r--r--testsuite/tests/arityanal/f12.stderr8
-rw-r--r--testsuite/tests/arityanal/f13.hs8
-rw-r--r--testsuite/tests/arityanal/f13.stderr17
-rw-r--r--testsuite/tests/arityanal/f14.hs5
-rw-r--r--testsuite/tests/arityanal/f14.stderr26
-rw-r--r--testsuite/tests/arityanal/f15.hs5
-rw-r--r--testsuite/tests/arityanal/f15.stderr14
-rw-r--r--testsuite/tests/arityanal/f2.hs7
-rw-r--r--testsuite/tests/arityanal/f2.stderr18
-rw-r--r--testsuite/tests/arityanal/f3.hs8
-rw-r--r--testsuite/tests/arityanal/f3.stderr15
-rw-r--r--testsuite/tests/arityanal/f4.hs7
-rw-r--r--testsuite/tests/arityanal/f4.stderr22
-rw-r--r--testsuite/tests/arityanal/f5.hs7
-rw-r--r--testsuite/tests/arityanal/f5.stderr47
-rw-r--r--testsuite/tests/arityanal/f6.hs5
-rw-r--r--testsuite/tests/arityanal/f6.stderr16
-rw-r--r--testsuite/tests/arityanal/f7.hs5
-rw-r--r--testsuite/tests/arityanal/f7.stderr14
-rw-r--r--testsuite/tests/arityanal/f8.hs5
-rw-r--r--testsuite/tests/arityanal/f8.stderr20
-rw-r--r--testsuite/tests/arityanal/f9.hs4
-rw-r--r--testsuite/tests/arityanal/f9.stderr15
-rw-r--r--testsuite/tests/arityanal/prim.hs7
-rw-r--r--testsuite/tests/arityanal/prim.stderr15
37 files changed, 2640 insertions, 0 deletions
diff --git a/testsuite/tests/arityanal/Main.hs b/testsuite/tests/arityanal/Main.hs
new file mode 100644
index 0000000000..25419fbc65
--- /dev/null
+++ b/testsuite/tests/arityanal/Main.hs
@@ -0,0 +1,303 @@
+{-# 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
+#if __GLASGOW_HASKELL__ >= 503
+import Data.Array
+import Data.Char (ord)
+import Data.Array.Base (unsafeAt)
+#else
+import Array
+import Char (ord)
+#endif
+#if __GLASGOW_HASKELL__ >= 503
+import GHC.Exts
+#else
+import GlaExts
+#endif
+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 =
+#if __GLASGOW_HASKELL__ > 500
+ narrow16Int# i
+#elif __GLASGOW_HASKELL__ == 500
+ intToInt16# i
+#else
+ (i `iShiftL#` 16#) `iShiftRA#` 16#
+#endif
+ where
+#if __GLASGOW_HASKELL__ >= 503
+ i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
+#else
+ i = word2Int# ((high `shiftL#` 8#) `or#` low)
+#endif
+ 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
new file mode 100644
index 0000000000..5a816d67a6
--- /dev/null
+++ b/testsuite/tests/arityanal/Main.stderr
@@ -0,0 +1,1874 @@
+
+==================== 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
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testsuite/tests/arityanal/Makefile
diff --git a/testsuite/tests/arityanal/f0.hs b/testsuite/tests/arityanal/f0.hs
new file mode 100644
index 0000000000..f2b7794b99
--- /dev/null
+++ b/testsuite/tests/arityanal/f0.hs
@@ -0,0 +1,6 @@
+module F0 where
+
+f0 :: Int -> Int -> Int -> Int
+f0 x y = if (x>0) then let v = x + y
+ in \z -> v+z
+ else \z-> 1 \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f0.stderr b/testsuite/tests/arityanal/f0.stderr
new file mode 100644
index 0000000000..29ce90589b
--- /dev/null
+++ b/testsuite/tests/arityanal/f0.stderr
@@ -0,0 +1,12 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/f1.hs
new file mode 100644
index 0000000000..5de291945e
--- /dev/null
+++ b/testsuite/tests/arityanal/f1.hs
@@ -0,0 +1,10 @@
+module F1 where
+
+f1 = let h1 n x = if x<n then let v = h1 n (x+1)
+ in \y -> v (x+y)
+ else \y -> y
+ in h1 5 1 5
+
+g = \x1-> \x2-> \x3-> \x4-> \x5-> x1+x2+x3+x4+x5
+s f = f 3
+h = s g 6 7 8 \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f1.stderr b/testsuite/tests/arityanal/f1.stderr
new file mode 100644
index 0000000000..afafd7d71b
--- /dev/null
+++ b/testsuite/tests/arityanal/f1.stderr
@@ -0,0 +1,20 @@
+***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.hs b/testsuite/tests/arityanal/f10.hs
new file mode 100644
index 0000000000..bee91d7820
--- /dev/null
+++ b/testsuite/tests/arityanal/f10.hs
@@ -0,0 +1,8 @@
+module F10 where
+
+f10f = \h -> (h 1 2, h 3)
+f10g = \x -> \y -> x+y
+f10h = f10f f10g
+f10x1 = fst f10h
+f10x2 = snd f10h
+f10 = f10x2 f10x1
diff --git a/testsuite/tests/arityanal/f10.stderr b/testsuite/tests/arityanal/f10.stderr
new file mode 100644
index 0000000000..cd3a95fbe4
--- /dev/null
+++ b/testsuite/tests/arityanal/f10.stderr
@@ -0,0 +1,27 @@
+***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.hs b/testsuite/tests/arityanal/f11.hs
new file mode 100644
index 0000000000..f94d3adec0
--- /dev/null
+++ b/testsuite/tests/arityanal/f11.hs
@@ -0,0 +1,10 @@
+module F11 where
+
+fib 0 = 1
+fib 1 = 1
+fib n = fib (n-1) + fib (n-2)
+
+f11f = \z -> let x = fib 1000
+ in \y -> x+y
+
+f11 = (f11f 5 6, f11f 7 8)
diff --git a/testsuite/tests/arityanal/f11.stderr b/testsuite/tests/arityanal/f11.stderr
new file mode 100644
index 0000000000..fc78dad48d
--- /dev/null
+++ b/testsuite/tests/arityanal/f11.stderr
@@ -0,0 +1,45 @@
+***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.hs b/testsuite/tests/arityanal/f12.hs
new file mode 100644
index 0000000000..35e82edc9f
--- /dev/null
+++ b/testsuite/tests/arityanal/f12.hs
@@ -0,0 +1,5 @@
+module F12 where
+
+f12 = let f g x = g x
+ h = (+)
+ in f h 4 5
diff --git a/testsuite/tests/arityanal/f12.stderr b/testsuite/tests/arityanal/f12.stderr
new file mode 100644
index 0000000000..9cd69ed7e2
--- /dev/null
+++ b/testsuite/tests/arityanal/f12.stderr
@@ -0,0 +1,8 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/f13.hs
new file mode 100644
index 0000000000..1b7a779c37
--- /dev/null
+++ b/testsuite/tests/arityanal/f13.hs
@@ -0,0 +1,8 @@
+module F13 where
+
+f13 x y = let f13f = if (x>0) then \z -> z x y
+ else \z -> y
+ f13h = let v = f13f 5
+ in \w -> w + v
+ in \u -> f13h u
+
diff --git a/testsuite/tests/arityanal/f13.stderr b/testsuite/tests/arityanal/f13.stderr
new file mode 100644
index 0000000000..37718205b0
--- /dev/null
+++ b/testsuite/tests/arityanal/f13.stderr
@@ -0,0 +1,17 @@
+***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.hs b/testsuite/tests/arityanal/f14.hs
new file mode 100644
index 0000000000..a908b6622b
--- /dev/null
+++ b/testsuite/tests/arityanal/f14.hs
@@ -0,0 +1,5 @@
+module F14 where
+
+f14 n x = if x<n then let v = f14 n (x+1)
+ in \y -> v (x+y)
+ else \y -> y
diff --git a/testsuite/tests/arityanal/f14.stderr b/testsuite/tests/arityanal/f14.stderr
new file mode 100644
index 0000000000..8a3e8382ba
--- /dev/null
+++ b/testsuite/tests/arityanal/f14.stderr
@@ -0,0 +1,26 @@
+***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.hs b/testsuite/tests/arityanal/f15.hs
new file mode 100644
index 0000000000..7e1d5dfa16
--- /dev/null
+++ b/testsuite/tests/arityanal/f15.hs
@@ -0,0 +1,5 @@
+module F15 where
+
+f15f = \h -> h 1
+f15g = \x -> x+1
+f15 = f15f f15g \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f15.stderr b/testsuite/tests/arityanal/f15.stderr
new file mode 100644
index 0000000000..a68ecb25e4
--- /dev/null
+++ b/testsuite/tests/arityanal/f15.stderr
@@ -0,0 +1,14 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/f2.hs
new file mode 100644
index 0000000000..bdc06e45f2
--- /dev/null
+++ b/testsuite/tests/arityanal/f2.hs
@@ -0,0 +1,7 @@
+module F2 where
+
+f2f = \h -> \x -> h x 0
+f2 = let g = \x -> \y -> if (x > 0)
+ then g (x-1) (x+y)
+ else y
+ in f2f g 5 \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f2.stderr b/testsuite/tests/arityanal/f2.stderr
new file mode 100644
index 0000000000..d3fe22cc80
--- /dev/null
+++ b/testsuite/tests/arityanal/f2.stderr
@@ -0,0 +1,18 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/f3.hs
new file mode 100644
index 0000000000..f8210e6f0f
--- /dev/null
+++ b/testsuite/tests/arityanal/f3.hs
@@ -0,0 +1,8 @@
+module F3 where
+
+fac :: Int -> Int
+fac x = if (x==0) then 1
+ else x*fac (x-1)
+
+f3 = let v = fac
+ in \y -> v y \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f3.stderr b/testsuite/tests/arityanal/f3.stderr
new file mode 100644
index 0000000000..863713ebe4
--- /dev/null
+++ b/testsuite/tests/arityanal/f3.stderr
@@ -0,0 +1,15 @@
+***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.hs b/testsuite/tests/arityanal/f4.hs
new file mode 100644
index 0000000000..29c3e8d4ab
--- /dev/null
+++ b/testsuite/tests/arityanal/f4.hs
@@ -0,0 +1,7 @@
+module F4 where
+
+f4h :: (Int -> Int) -> Int -> Int
+f4h f x = if x==0 then (f x)
+ else f4h f (x-1) -- + (f x)
+f4g = \y->y+1
+f4 = f4h f4g 9 \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f4.stderr b/testsuite/tests/arityanal/f4.stderr
new file mode 100644
index 0000000000..48b617f3ae
--- /dev/null
+++ b/testsuite/tests/arityanal/f4.stderr
@@ -0,0 +1,22 @@
+***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.hs b/testsuite/tests/arityanal/f5.hs
new file mode 100644
index 0000000000..96c8450270
--- /dev/null
+++ b/testsuite/tests/arityanal/f5.hs
@@ -0,0 +1,7 @@
+module F5 where
+
+-- result not satisfiable
+f5g h z = (h z) + 1
+f5h f x g = f x + f5g g x -- + (f (x+1))
+f5y = (\y -> y+1)
+f5 = f5h f5y 0 f5y \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f5.stderr b/testsuite/tests/arityanal/f5.stderr
new file mode 100644
index 0000000000..757cd3d35e
--- /dev/null
+++ b/testsuite/tests/arityanal/f5.stderr
@@ -0,0 +1,47 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/f6.hs
new file mode 100644
index 0000000000..ba1e453c3f
--- /dev/null
+++ b/testsuite/tests/arityanal/f6.hs
@@ -0,0 +1,5 @@
+module F6 where
+
+f6f = \h -> \x -> h x 0
+f6t = \y -> \z -> y + z
+f6 = f6f f6t 3 \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f6.stderr b/testsuite/tests/arityanal/f6.stderr
new file mode 100644
index 0000000000..68c03c44a3
--- /dev/null
+++ b/testsuite/tests/arityanal/f6.stderr
@@ -0,0 +1,16 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/f7.hs
new file mode 100644
index 0000000000..44241c5ae1
--- /dev/null
+++ b/testsuite/tests/arityanal/f7.hs
@@ -0,0 +1,5 @@
+module F7 where
+
+f7f = \x -> x
+f7g = \z -> \y -> z+y
+f7 = f7f f7g 2 3
diff --git a/testsuite/tests/arityanal/f7.stderr b/testsuite/tests/arityanal/f7.stderr
new file mode 100644
index 0000000000..7cef2a7c36
--- /dev/null
+++ b/testsuite/tests/arityanal/f7.stderr
@@ -0,0 +1,14 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/f8.hs
new file mode 100644
index 0000000000..1c960556b5
--- /dev/null
+++ b/testsuite/tests/arityanal/f8.hs
@@ -0,0 +1,5 @@
+module F8 where
+
+f8f b x y = let g = \z -> x+y+z
+ in if b then y else g (x*x)
+f8 = f8f True 1 2 \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f8.stderr b/testsuite/tests/arityanal/f8.stderr
new file mode 100644
index 0000000000..e297ceb722
--- /dev/null
+++ b/testsuite/tests/arityanal/f8.stderr
@@ -0,0 +1,20 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/f9.hs
new file mode 100644
index 0000000000..e991cfd478
--- /dev/null
+++ b/testsuite/tests/arityanal/f9.hs
@@ -0,0 +1,4 @@
+module F9 where
+
+f91 = let f = \n -> if n<=100 then f (f (n+11)) else n-10
+ in f 10 \ No newline at end of file
diff --git a/testsuite/tests/arityanal/f9.stderr b/testsuite/tests/arityanal/f9.stderr
new file mode 100644
index 0000000000..267b96b858
--- /dev/null
+++ b/testsuite/tests/arityanal/f9.stderr
@@ -0,0 +1,15 @@
+
+==================== 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.hs b/testsuite/tests/arityanal/prim.hs
new file mode 100644
index 0000000000..5b91ad24f2
--- /dev/null
+++ b/testsuite/tests/arityanal/prim.hs
@@ -0,0 +1,7 @@
+module Prim where
+
+map2 f [] = []
+map2 f (x:xs) = f x : map2 f xs
+
+zipWith2 f [] [] = []
+zipWith2 f (a:x) (b:y) = (f a b):zipWith2 f x y \ No newline at end of file
diff --git a/testsuite/tests/arityanal/prim.stderr b/testsuite/tests/arityanal/prim.stderr
new file mode 100644
index 0000000000..b5f76d493e
--- /dev/null
+++ b/testsuite/tests/arityanal/prim.stderr
@@ -0,0 +1,15 @@
+***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]
+
+