-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Mutable variables and tuples
--
-- This package defines the classes Var and MTuple of
-- variables and tuples mutable within appropriate monads, as well as
-- some instances of these classes.
@package var
@version 0.2.0.0
module Data.Var.Class
class Monad m => Var var a m where newVar = lift . newVar readVar = lift . readVar writeVar var = lift . writeVar var modifyVar var f = readVar var >>= writeVar var . f modifyVar' var f = readVar var >>= \ a -> writeVar var $! f a
newVar :: Var var a m => a -> m (var a)
readVar :: Var var a m => var a -> m a
writeVar :: Var var a m => var a -> a -> m ()
modifyVar :: Var var a m => var a -> (a -> a) -> m ()
modifyVar' :: Var var a m => var a -> (a -> a) -> m ()
instance Var TVar a STM
instance Var (STVar s) a (ST s)
instance Var (STVar s) a (ST s)
instance Var IOVar a IO
module Data.Var.Storable
data StorableVar a
withStorableVar :: StorableVar a -> (Ptr a -> IO b) -> IO b
touchStorableVar :: StorableVar a -> IO ()
instance Typeable1 StorableVar
instance Show (StorableVar a)
instance Eq (StorableVar a)
instance Ord (StorableVar a)
instance Storable a => Var StorableVar a IO
instance Typeable a => Data (StorableVar a)
module Data.Var
module Data.Tuple.ITuple
data List a
Nil :: List a
(:|) :: a -> List a -> List a
class ITuple t where type family ListRep t :: List * type instance ListRep t = ListRepDefault t toTuple = toTupleDefault fromTuple = fromTupleDefault
toTuple :: ITuple t => t -> Tuple (ListRep t)
fromTuple :: ITuple t => Tuple (ListRep t) -> t
type ListRepDefault t = GCons (Rep t) Nil
toTupleDefault :: (Generic t, GITuple (Rep t)) => t -> Tuple (ListRepDefault t)
fromTupleDefault :: (Generic t, GITuple (Rep t)) => Tuple (ListRepDefault t) -> t
data Tuple xs
U :: Tuple Nil
(:*) :: x -> Tuple xs -> Tuple (x :| xs)
type Field1 a = Find N0 (ToList a)
type Field2 a = Find N1 (ToList a)
type Field3 a = Find N2 (ToList a)
type Field4 a = Find N3 (ToList a)
type Field5 a = Find N4 (ToList a)
type Field6 a = Find N5 (ToList a)
type Field7 a = Find N6 (ToList a)
type Field8 a = Find N7 (ToList a)
type Field9 a = Find N8 (ToList a)
instance ITuple (a, b, c, d, e, f, g)
instance ITuple (a, b, c, d, e, f)
instance ITuple (a, b, c, d, e)
instance ITuple (a, b, c, d)
instance ITuple (a, b, c)
instance ITuple (a, b)
instance ITuple ()
instance (GITuple a, GITuple b) => GITuple (a :*: b)
instance GITuple f => GITuple (M1 i c f)
instance GITuple (K1 i c)
instance GITuple U1
instance ITuple (Identity a)
instance ITuple (Tuple xs)
module Data.Tuple.ITuple.Lens
_1 :: (Functor f, ITuple s, ListRep s ~ (a :| as), ITuple t, ListRep t ~ (b :| as)) => (a -> f b) -> s -> f t
_2 :: (Functor f, ITuple s, ListRep s ~ (a1 :| (a :| as)), ITuple t, ListRep t ~ (a1 :| (b :| as))) => (a -> f b) -> s -> f t
_3 :: (Functor f, ITuple s, ListRep s ~ (a1 :| (a2 :| (a :| as))), ITuple t, ListRep t ~ (a1 :| (a2 :| (b :| as)))) => (a -> f b) -> s -> f t
_4 :: (Functor f, ITuple s, ListRep s ~ (a1 :| (a2 :| (a3 :| (a :| as)))), ITuple t, ListRep t ~ (a1 :| (a2 :| (a3 :| (b :| as))))) => (a -> f b) -> s -> f t
_5 :: (Functor f, ITuple s, ListRep s ~ (a1 :| (a2 :| (a3 :| (a4 :| (a :| as))))), ITuple t, ListRep t ~ (a1 :| (a2 :| (a3 :| (a4 :| (b :| as)))))) => (a -> f b) -> s -> f t
_6 :: (Functor f, ITuple s, ListRep s ~ (a1 :| (a2 :| (a3 :| (a4 :| (a5 :| (a :| as)))))), ITuple t, ListRep t ~ (a1 :| (a2 :| (a3 :| (a4 :| (a5 :| (b :| as))))))) => (a -> f b) -> s -> f t
_7 :: (Functor f, ITuple s, ListRep s ~ (a1 :| (a2 :| (a3 :| (a4 :| (a5 :| (a6 :| (a :| as))))))), ITuple t, ListRep t ~ (a1 :| (a2 :| (a3 :| (a4 :| (a5 :| (a6 :| (b :| as)))))))) => (a -> f b) -> s -> f t
_8 :: (Functor f, ITuple s, ListRep s ~ (a1 :| (a2 :| (a3 :| (a4 :| (a5 :| (a6 :| (a7 :| (a :| as)))))))), ITuple t, ListRep t ~ (a1 :| (a2 :| (a3 :| (a4 :| (a5 :| (a6 :| (a7 :| (b :| as))))))))) => (a -> f b) -> s -> f t
_9 :: (Functor f, ITuple s, ListRep s ~ (a1 :| (a2 :| (a3 :| (a4 :| (a5 :| (a6 :| (a7 :| (a8 :| (a :| as))))))))), ITuple t, ListRep t ~ (a1 :| (a2 :| (a3 :| (a4 :| (a5 :| (a6 :| (a7 :| (a8 :| (b :| as)))))))))) => (a -> f b) -> s -> f t
tuple :: (Functor f, ITuple s, ITuple t) => (Tuple (ListRep s) -> f (Tuple (ListRep t))) -> s -> f t
_head :: Functor f => (x -> f y) -> Tuple (x :| xs) -> f (Tuple (y :| xs))
_tail :: Functor f => (Tuple xs -> f (Tuple ys)) -> Tuple (x :| xs) -> f (Tuple (x :| ys))
module Data.Tuple.MTuple
class (Monad m, ITuple t) => MTuple var t m where thawTuple = lift . thawTuple freezeTuple = lift . freezeTuple
thawTuple :: MTuple var t m => t -> m (var t)
freezeTuple :: MTuple var t m => var t -> m t
class MTuple var t m => MField1 var t m where read1 = lift . read1 write1 var = lift . write1 var modify1 var f = write1 var . f =<< read1 var modify1' var f = read1 var >>= \ a -> write1 var $! f a
read1 :: MField1 var t m => var t -> m (Field1 t)
write1 :: MField1 var t m => var t -> Field1 t -> m ()
modify1 :: MField1 var t m => var t -> (Field1 t -> Field1 t) -> m ()
modify1' :: MField1 var t m => var t -> (Field1 t -> Field1 t) -> m ()
class MField1 var t m => MField2 var t m where read2 = lift . read2 write2 var = lift . write2 var modify2 var f = write2 var . f =<< read2 var modify2' var f = read2 var >>= \ a -> write2 var $! f a
read2 :: MField2 var t m => var t -> m (Field2 t)
write2 :: MField2 var t m => var t -> Field2 t -> m ()
modify2 :: MField2 var t m => var t -> (Field2 t -> Field2 t) -> m ()
modify2' :: MField2 var t m => var t -> (Field2 t -> Field2 t) -> m ()
class MField2 var t m => MField3 var t m where read3 = lift . read3 write3 var = lift . write3 var modify3 var f = write3 var . f =<< read3 var modify3' var f = read3 var >>= \ a -> write3 var $! f a
read3 :: MField3 var t m => var t -> m (Field3 t)
write3 :: MField3 var t m => var t -> Field3 t -> m ()
modify3 :: MField3 var t m => var t -> (Field3 t -> Field3 t) -> m ()
modify3' :: MField3 var t m => var t -> (Field3 t -> Field3 t) -> m ()
class MField3 var t m => MField4 var t m where read4 = lift . read4 write4 var = lift . write4 var modify4 var f = write4 var . f =<< read4 var modify4' var f = read4 var >>= \ a -> write4 var $! f a
read4 :: MField4 var t m => var t -> m (Field4 t)
write4 :: MField4 var t m => var t -> Field4 t -> m ()
modify4 :: MField4 var t m => var t -> (Field4 t -> Field4 t) -> m ()
modify4' :: MField4 var t m => var t -> (Field4 t -> Field4 t) -> m ()
class MField4 var t m => MField5 var t m where read5 = lift . read5 write5 var = lift . write5 var modify5 var f = write5 var . f =<< read5 var modify5' var f = read5 var >>= \ a -> write5 var $! f a
read5 :: MField5 var t m => var t -> m (Field5 t)
write5 :: MField5 var t m => var t -> Field5 t -> m ()
modify5 :: MField5 var t m => var t -> (Field5 t -> Field5 t) -> m ()
modify5' :: MField5 var t m => var t -> (Field5 t -> Field5 t) -> m ()
class MField5 var t m => MField6 var t m where read6 = lift . read6 write6 var = lift . write6 var modify6 var f = write6 var . f =<< read6 var modify6' var f = read6 var >>= \ a -> write6 var $! f a
read6 :: MField6 var t m => var t -> m (Field6 t)
write6 :: MField6 var t m => var t -> Field6 t -> m ()
modify6 :: MField6 var t m => var t -> (Field6 t -> Field6 t) -> m ()
modify6' :: MField6 var t m => var t -> (Field6 t -> Field6 t) -> m ()
class MField6 var t m => MField7 var t m where read7 = lift . read7 write7 var = lift . write7 var modify7 var f = write7 var . f =<< read7 var modify7' var f = read7 var >>= \ a -> write7 var $! f a
read7 :: MField7 var t m => var t -> m (Field7 t)
write7 :: MField7 var t m => var t -> Field7 t -> m ()
modify7 :: MField7 var t m => var t -> (Field7 t -> Field7 t) -> m ()
modify7' :: MField7 var t m => var t -> (Field7 t -> Field7 t) -> m ()
class MField7 var t m => MField8 var t m where read8 = lift . read8 write8 var = lift . write8 var modify8 var f = write8 var . f =<< read8 var modify8' var f = read8 var >>= \ a -> write8 var $! f a
read8 :: MField8 var t m => var t -> m (Field8 t)
write8 :: MField8 var t m => var t -> Field8 t -> m ()
modify8 :: MField8 var t m => var t -> (Field8 t -> Field8 t) -> m ()
modify8' :: MField8 var t m => var t -> (Field8 t -> Field8 t) -> m ()
class MField8 var t m => MField9 var t m where read9 = lift . read9 write9 var = lift . write9 var modify9 var f = write9 var . f =<< read9 var modify9' var f = read9 var >>= \ a -> write9 var $! f a
read9 :: MField9 var t m => var t -> m (Field9 t)
write9 :: MField9 var t m => var t -> Field9 t -> m ()
modify9 :: MField9 var t m => var t -> (Field9 t -> Field9 t) -> m ()
modify9' :: MField9 var t m => var t -> (Field9 t -> Field9 t) -> m ()
module Data.Tuple.Storable
data StorableTuple a
class StorableList xs
withStorableTuple :: StorableTuple a -> (forall e. Ptr e -> IO b) -> IO b
touchStorableTuple :: StorableTuple a -> IO ()
instance Typeable1 StorableTuple
instance Show (StorableTuple a)
instance Eq (StorableTuple a)
instance Ord (StorableTuple a)
instance (Storable x, StorableList xs) => StorableList ((':|) * x xs)
instance StorableList ('Nil *)
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t), Storable (Field2 t), Storable (Field3 t), Storable (Field4 t), Storable (Field5 t), Storable (Field6 t), Storable (Field7 t), Storable (Field8 t), Storable (Field9 t)) => MField9 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t), Storable (Field2 t), Storable (Field3 t), Storable (Field4 t), Storable (Field5 t), Storable (Field6 t), Storable (Field7 t), Storable (Field8 t)) => MField8 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t), Storable (Field2 t), Storable (Field3 t), Storable (Field4 t), Storable (Field5 t), Storable (Field6 t), Storable (Field7 t)) => MField7 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t), Storable (Field2 t), Storable (Field3 t), Storable (Field4 t), Storable (Field5 t), Storable (Field6 t)) => MField6 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t), Storable (Field2 t), Storable (Field3 t), Storable (Field4 t), Storable (Field5 t)) => MField5 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t), Storable (Field2 t), Storable (Field3 t), Storable (Field4 t)) => MField4 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t), Storable (Field2 t), Storable (Field3 t)) => MField3 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t), Storable (Field2 t)) => MField2 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t), Storable (Field1 t)) => MField1 StorableTuple t IO
instance (ITuple t, StorableList (ListRep t)) => MTuple StorableTuple t IO
instance Typeable a => Data (StorableTuple a)
module Data.ByteArraySlice.Unsafe
data MutableByteArray s
class Monad m => MonadPrim m where type family World m
prim :: MonadPrim m => (State# (World m) -> (# State# (World m), a #)) -> m a
data Prim s a
runPrim :: MonadPrim m => Prim (World m) a -> m a
class ByteArraySlice a where plusByteSize = plusByteSizeDefault readByteOff = readByteOffDefault writeByteOff = writeByteOffDefault
plusByteSize :: ByteArraySlice a => Int -> t a -> Int
readByteOff :: ByteArraySlice a => MutableByteArray s -> Int -> Prim s a
writeByteOff :: ByteArraySlice a => MutableByteArray s -> Int -> a -> Prim s ()
plusByteSizeDefault :: (Generic a, GByteArraySlice (Rep a)) => Int -> t a -> Int
readByteOffDefault :: (Generic a, GByteArraySlice (Rep a)) => MutableByteArray s -> Int -> Prim s a
writeByteOffDefault :: (Generic a, GByteArraySlice (Rep a)) => MutableByteArray s -> Int -> a -> Prim s ()
byteSizeOf :: ByteArraySlice a => a -> Int
instance (ByteArraySlice x, ByteArraySlice (Tuple xs)) => ByteArraySlice (Tuple ((':|) * x xs))
instance ByteArraySlice (Tuple ('Nil *))
instance ByteArraySlice (Ptr a)
instance ByteArraySlice (FunPtr a)
instance ByteArraySlice (StablePtr a)
instance ByteArraySlice Word64
instance ByteArraySlice Word32
instance ByteArraySlice Word16
instance ByteArraySlice Word8
instance ByteArraySlice Int64
instance ByteArraySlice Int32
instance ByteArraySlice Int16
instance ByteArraySlice Int8
instance ByteArraySlice Double
instance ByteArraySlice Float
instance ByteArraySlice Word
instance ByteArraySlice Int
instance ByteArraySlice Char
instance ByteArraySlice Bool
instance (ByteArraySlice a, ByteArraySlice b, ByteArraySlice c, ByteArraySlice d, ByteArraySlice e, ByteArraySlice f, ByteArraySlice g) => ByteArraySlice (a, b, c, d, e, f, g)
instance (ByteArraySlice a, ByteArraySlice b, ByteArraySlice c, ByteArraySlice d, ByteArraySlice e, ByteArraySlice f) => ByteArraySlice (a, b, c, d, e, f)
instance (ByteArraySlice a, ByteArraySlice b, ByteArraySlice c, ByteArraySlice d, ByteArraySlice e) => ByteArraySlice (a, b, c, d, e)
instance (ByteArraySlice a, ByteArraySlice b, ByteArraySlice c, ByteArraySlice d) => ByteArraySlice (a, b, c, d)
instance (ByteArraySlice a, ByteArraySlice b, ByteArraySlice c) => ByteArraySlice (a, b, c)
instance (ByteArraySlice a, ByteArraySlice b) => ByteArraySlice (a, b)
instance ByteArraySlice ()
instance (GByteArraySlice a, GByteArraySlice b) => GByteArraySlice (a :*: b)
instance GByteArraySlice f => GByteArraySlice (M1 i c f)
instance ByteArraySlice c => GByteArraySlice (K1 i c)
instance GByteArraySlice U1
module Data.ByteArraySlice
class ByteArraySlice a where plusByteSize = plusByteSizeDefault readByteOff = readByteOffDefault writeByteOff = writeByteOffDefault
module Data.Tuple.IO
data IOTuple a
class ArraySlice a
data IOUTuple a
instance Typeable1 IOTuple
instance Typeable1 IOUTuple
instance Eq (IOTuple a)
instance Eq (IOUTuple a)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t), ByteArraySlice (Field8 t), ByteArraySlice (Field9 t)) => MField9 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t), ByteArraySlice (Field8 t)) => MField8 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t)) => MField7 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t)) => MField6 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t)) => MField5 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t)) => MField4 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t)) => MField3 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t)) => MField2 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t)) => MField1 IOUTuple t IO
instance (ITuple t, ByteArraySlice (Tuple (ListRep t))) => MTuple IOUTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField9 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField8 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField7 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField6 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField5 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField4 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField3 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField2 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField1 IOTuple t IO
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MTuple IOTuple t IO
module Data.Tuple.ST
data STTuple s a
class ArraySlice a
data STUTuple s a
instance Typeable2 STTuple
instance Typeable2 STUTuple
instance Eq (STTuple s a)
instance Eq (STUTuple s a)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t), ByteArraySlice (Field8 t), ByteArraySlice (Field9 t)) => MField9 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t), ByteArraySlice (Field8 t)) => MField8 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t)) => MField7 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t)) => MField6 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t)) => MField5 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t)) => MField4 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t)) => MField3 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t)) => MField2 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t)) => MField1 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t))) => MTuple (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t), ByteArraySlice (Field8 t), ByteArraySlice (Field9 t)) => MField9 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t), ByteArraySlice (Field8 t)) => MField8 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t), ByteArraySlice (Field7 t)) => MField7 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t), ByteArraySlice (Field6 t)) => MField6 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t), ByteArraySlice (Field5 t)) => MField5 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t), ByteArraySlice (Field4 t)) => MField4 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t), ByteArraySlice (Field3 t)) => MField3 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t), ByteArraySlice (Field2 t)) => MField2 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t)), ByteArraySlice (Field1 t)) => MField1 (STUTuple s) t (ST s)
instance (ITuple t, ByteArraySlice (Tuple (ListRep t))) => MTuple (STUTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField9 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField8 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField7 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField6 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField5 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField4 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField3 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField2 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField1 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MTuple (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField9 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField8 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField7 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField6 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField5 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField4 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField3 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField2 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MField1 (STTuple s) t (ST s)
instance (ITuple t, ArraySlice (Tuple (ListRep t))) => MTuple (STTuple s) t (ST s)
module Data.Var.IO
-- | A mutable variable in the IO monad
type IOVar = IORef
-- | A mutable variable containing an unboxed value of type a in
-- the IO monad
data IOUVar a
instance Typeable1 IOUVar
instance Eq (IOUVar a)
instance ByteArraySlice a => Var IOUVar a IO
module Data.Var.ST
-- | a value of type STVar s a is a mutable variable in
-- state thread s, containing a value of type a
type STVar = STRef
-- | a value of type STUVar s a is a mutable variable in
-- state thread s, containing an unboxed value of type
-- a
data STUVar s a
instance Typeable2 STUVar
instance Eq (STUVar s a)
instance ByteArraySlice a => Var (STUVar s) a (ST s)
instance ByteArraySlice a => Var (STUVar s) a (ST s)