liquidhaskell-0.4.0.0: tests/pos/deppair1.hs
module Niki () where
import Language.Haskell.Liquid.Prelude
incr :: Int -> Int
incr x = x + 1
-- THIS DOES NOT WORK: baz :: Int -> (y: Int, {v: Int | v > y}) @-}
-- BUT THIS DOES
{-@ baz :: Int -> (Int, Int)<{\fld v -> fld < v }> @-}
baz x = (x, incr x)
{-@ goo :: Int -> (Int, Int, Int)<{\x v -> x < v}, {\x y v -> true}> @-}
goo x = (x, y, z)
where
y = incr x
z = incr y