packages feed

liquidhaskell-0.8.2.0: tests/gradual/pos/Gradual.hs

module Gradual where
 
{-@ LIQUID "--gradual"        @-}
{-@ LIQUID "--savequery"      @-}
{-@ LIQUID "--ginteractive"   @-}
 
{-@ safe :: {v:Int | ?? } -> Int @-}
safe   :: Int ->  Int
safe x = if foo () then bar1 x else bar2 x
 
{-@ foo :: () -> {v:Bool | true } @-} 
foo :: () -> Bool 
foo = undefined 

{-@ bar1 :: {v:Int | v < 0 } -> Int @-}
bar1   :: Int -> Int 
bar1 x = x 

{-@ bar2 :: {v:Int | v = 0} -> Int @-}
bar2 :: Int -> Int 
bar2 x = x