packages feed

liquidhaskell-0.8.10.7: tests/names/pos/local01.hs

module LocalSig where 

{-@ foo :: Nat @-} 
foo = incr 10 20 
  where 
    {-@ incr :: Nat -> Nat -> Nat @-}
    incr :: Int -> Int -> Int 
    incr 0 x = x + 1
    incr n x = incr (n-1) x

{-@ bar :: {v:Int | v < 0} @-} 
bar = decr 0 
  where 
    {-@ decr :: x:Int -> {v:Int | v < x} @-}
    decr :: Int -> Int 
    decr x = x - 1