We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
With a module like this
module DependentPairs where -- a :: String -- a = "Hello, world!" {-@ f :: (Int, Int)<\a -> {b:Int | b > a}> -> {b:Bool | b} @-} f :: (Int, Int) -> Bool f (a,b) = b > a
Liquid Haskell works as expected, but uncommenting the definition of variable a results in an error:
a
Illegal type specification for `DependentPairs.f` DependentPairs.f :: lq_tmp$db##0:(GHC.Types.Int, GHC.Types.Int)<\a VV -> {b : GHC.Types.Int | b > DependentPairs.a}> -> {b : GHC.Types.Bool | b} Sort Error in Refinement: {b : int | b > DependentPairs.a} Unbound symbol DependentPairs.a --- perhaps you meant: tail ?
The error goes away when qualifying the name of a in the refinement:
{-@ f :: (Int, Int)<\DependentPairs.a -> {b:Int | b > a}> -> {b:Bool | b} @-}
but only as long as variable a is there; if I remove it again the Unbound symbol error comes back.
Unbound symbol
The text was updated successfully, but these errors were encountered:
No branches or pull requests
With a module like this
Liquid Haskell works as expected, but uncommenting the definition of variable
a
results in an error:The error goes away when qualifying the name of
a
in the refinement:but only as long as variable
a
is there; if I remove it again theUnbound symbol
error comes back.The text was updated successfully, but these errors were encountered: