liquidhaskell icon indicating copy to clipboard operation
liquidhaskell copied to clipboard

Question about Dependent Sums

Open theodoretliu opened this issue 5 years ago • 9 comments

Hi, I'm trying to represent a function that returns a dependent sum like below

{-@ measure isLeft :: Either a b -> Bool @-}
isLeft (Left _) = True
isLeft (Right _) = False

{-@ example :: x:Int -> {v : Either Int String | (isLeft v && x > 0) || (not (isLeft v) && x <= 0)} @-}
example x =
    if x <= 0 then Right "hello" else Left 1

but am running into issues with liquid. Am I representing this correctly? Even without generics, this still doesn't seem to work in the way I might expect.

theodoretliu avatar Feb 14 '20 20:02 theodoretliu