packages feed

liquidhaskell-boot-0.9.8.2: tests/specfiles/pos/T788.spec

module spec T788 where

import GHC.Base

measure mvlen     :: Data.Vector.MVector s a -> Int

invariant         {v:Data.Vector.MVector s a | 0 <= mvlen v }

assume length     :: forall a. x:(Data.Vector.MVector s a) -> {v : Nat | v = mvlen x }

assume unsafeRead :: Control.Monad.Primitive.PrimMonad m
                  => x:(Data.Vector.MVector (Control.Monad.Primitive.PrimState m) a)
                  -> ix:{v:Nat | v < mvlen x }
		  -> m a

assume unsafeWrite :: Control.Monad.Primitive.PrimMonad m
                   => x:(Data.Vector.MVector (Control.Monad.Primitive.PrimState m) a)
                   -> ix:{v:Nat | v < mvlen x }
		   -> a
		   -> m ()

assume unsafeSwap :: Control.Monad.Primitive.PrimMonad m
                  => x:(Data.Vector.MVector (Control.Monad.Primitive.PrimState m) a)
                  -> i:{v:Nat | v < mvlen x }
                  -> j:{v:Nat | v < mvlen x }
		  -> m ()