packages feed

liquidhaskell-0.8.10.7: tests/pattern/pos/contra0.hs

{-@ LIQUID "--no-termination"    @-}
{-@ LIQUID "--short-names"       @-}

module Foo () where

import Language.Haskell.Liquid.Prelude (liquidAssert)
import Data.IORef


{-@ data variance IO bivariant @-}
{-@ data variance IORef bivariant @-}

job :: IO () 
job = do
  p <- newIORef (0 :: Int)
  writeIORef p 10
  v <- readIORef p
  liquidAssert (v >= 0) $ return ()