liquidhaskell-0.7.0.0: tests/pos/MultipleInvariants.hs
module Blank where
import Data.Word
import GHC.Ptr
{-@ measure sizeOf :: forall a . Ptr a -> Int @-}
{-@ invariant {v:Ptr Word16 | sizeOf v = 2} @-}
{-@ invariant {v:Ptr Word32 | sizeOf v = 4} @-}
{-@ bar :: p:_ -> {v:_ | sizeOf p == 4 }@-}
bar :: Ptr Word32 -> ()
bar (Ptr _) = ()
{-@ foo :: p:_ -> {v:_ | sizeOf p == 2 }@-}
foo :: Ptr Word16 -> ()
foo (Ptr _) = ()