{-# OPTIONS_GHC -dno-typeable-binds -O2 -fno-worker-wrapper #-}

module T19969 where

-- Three mutually recursive functions
-- We want to inline g, h, keeping f as the loop breaker

f x = reverse (g (x:: [Int])) :: [Int]

{-# INLINE g #-}

g x = reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (h x))))))))))))

{-# INLINE h #-}
h x = reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (reverse (f x))))))))))))
