liquidhaskell-0.7.0.0: tests/elim/ElimApply.hs
-- | A simple depth test for `--eliminate`. The size of the max KInfo depth is
-- about 2x the number of calls to `incr`.
module ElimMonad (prop) where
{-@ prop :: x:Nat -> {v:Int | v = x + 30} @-}
prop :: Int -> Int
prop x = incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr
$ incr x
{-@ incr :: dog:Int -> {v:Int | v == dog + 1} @-}
incr :: Int -> Int
incr cat = cat + 1