packages feed

liquidhaskell-0.8.0.2: tests/todo/SubType.hs

module HOSubtype where

{-@ foo :: f:(x:{v:Int | false} -> {v:Int | v = x}) -> () @-}
foo    :: (Int -> Int) -> ()
foo pf = ()

test0 :: ()
test0  = foo useless_proof

{-@ generic_accept_stable ::
                    f:(x:a -> {v:a | (v = x)}) ->
                    ()
                    @-}
generic_accept_stable :: (a -> a) -> ()
generic_accept_stable pf = ()

{-@ useless_proof :: x:{v:Int | v > 0} -> {v:Int | v > 0} @-}
useless_proof :: Int -> Int
useless_proof _ = 5

test :: ()
test = generic_accept_stable useless_proof