import Prelude hiding (null, head, tail, notElem, empty) import Data.Vector hiding (singleton, empty) import qualified Data.Vector.Mutable as M import Control.Monad.Primitive import qualified Data.Vector as V minimal1 mickey = create (M.new 0 >>= go) {-@ go :: {v:MVector (PrimState m) a | false } -> m (MVector (PrimState m) a) @-} go :: (PrimMonad m) => MVector (PrimState m) a -> m (MVector (PrimState m) a) go mv = pure mv