packages feed

liquidhaskell-0.8.10.7: tests/absref/pos/deppair2.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