- class Unpackable arg where
- data UnpackedReaderT arg :: (* -> *) -> * -> *
- runUnpackedReaderT :: UnpackedReaderT arg m a -> arg -> m a
- unpackedReaderT :: (arg -> m a) -> UnpackedReaderT arg m a
- ask :: (Monad m, Unpackable arg) => UnpackedReaderT arg m arg
- local :: (Monad m, Unpackable arg) => (arg -> arg) -> UnpackedReaderT arg m a -> UnpackedReaderT arg m a
- type :~> arg = UnpackedReaderT arg Identity
- unpack :: Unpackable arg => (arg -> a) -> arg :~> a
- ($~) :: Unpackable arg => (arg :~> a) -> arg -> a
- unpack1Instance :: Name -> Q [Dec]
- unpackInstance :: Name -> Q [Dec]
- noUnpackInstance :: Name -> Q [Dec]
Documentation
class Unpackable arg whereSource
data UnpackedReaderT arg :: (* -> *) -> * -> *Source
runUnpackedReaderT :: UnpackedReaderT arg m a -> arg -> m aSource
unpackedReaderT :: (arg -> m a) -> UnpackedReaderT arg m aSource
Unpackable Bool | |
Unpackable Char | |
Unpackable Int | |
Unpackable Int8 | |
Unpackable Int16 | |
Unpackable Int32 | |
Unpackable Int64 | |
Unpackable Word | |
Unpackable Word8 | |
Unpackable Word16 | |
Unpackable Word32 | |
Unpackable Word64 | |
Unpackable () | |
Unpackable ByteString | |
Unpackable ByteArray | |
Unpackable Addr | |
Unpackable (Ptr a[a6H3]) | |
Unpackable (ForeignPtr a[a6Mu]) | |
Unpackable (Maybe a[a396]) | |
Unpackable (MutableByteArray s[a6Ft]) | |
Unpackable (Array a[a6Cz]) | |
Unpackable (Vector a[a6cx]) | |
Unpackable (Vector a[a6Si]) | |
Unpackable (Vector a[a6ct]) | |
Unpackable (Either a[a719] b[a718]) | |
(Unpackable a[a783], Unpackable b[a784]) => Unpackable (a[a783], b[a784]) | |
Unpackable (MutableArray s[a6Dy] a[a6Dx]) | |
Unpackable (MVector s[a6TU] a[a6TT]) | |
Unpackable (MVector s[a6Xm] a[a6Xl]) | |
Unpackable (MVector s[a6VD] a[a6VC]) | |
(Unpackable a[a78b], Unpackable b[a78c], Unpackable c[a78d]) => Unpackable (a[a78b], b[a78c], c[a78d]) | |
(Unpackable a[a78l], Unpackable b[a78m], Unpackable c[a78n], Unpackable d[a78o]) => Unpackable (a[a78l], b[a78m], c[a78n], d[a78o]) | |
(Unpackable a[a78x], Unpackable b[a78y], Unpackable c[a78z], Unpackable d[a78A], Unpackable e[a78B]) => Unpackable (a[a78x], b[a78y], c[a78z], d[a78A], e[a78B]) | |
(Unpackable a[a78L], Unpackable b[a78M], Unpackable c[a78N], Unpackable d[a78O], Unpackable e[a78P], Unpackable f[a78Q]) => Unpackable (a[a78L], b[a78M], c[a78N], d[a78O], e[a78P], f[a78Q]) | |
(Unpackable a[a791], Unpackable b[a792], Unpackable c[a793], Unpackable d[a794], Unpackable e[a795], Unpackable f[a796], Unpackable g[a797]) => Unpackable (a[a791], b[a792], c[a793], d[a794], e[a795], f[a796], g[a797]) | |
(Unpackable a[a79j], Unpackable b[a79k], Unpackable c[a79l], Unpackable d[a79m], Unpackable e[a79n], Unpackable f[a79o], Unpackable g[a79p], Unpackable h[a79q]) => Unpackable (a[a79j], b[a79k], c[a79l], d[a79m], e[a79n], f[a79o], g[a79p], h[a79q]) | |
(Unpackable a[a79D], Unpackable b[a79E], Unpackable c[a79F], Unpackable d[a79G], Unpackable e[a79H], Unpackable f[a79I], Unpackable g[a79J], Unpackable h[a79K], Unpackable i[a79L]) => Unpackable (a[a79D], b[a79E], c[a79F], d[a79G], e[a79H], f[a79I], g[a79J], h[a79K], i[a79L]) | |
(Unpackable a[a79Z], Unpackable b[a7a0], Unpackable c[a7a1], Unpackable d[a7a2], Unpackable e[a7a3], Unpackable f[a7a4], Unpackable g[a7a5], Unpackable h[a7a6], Unpackable i[a7a7], Unpackable j[a7a8]) => Unpackable (a[a79Z], b[a7a0], c[a7a1], d[a7a2], e[a7a3], f[a7a4], g[a7a5], h[a7a6], i[a7a7], j[a7a8]) |
ask :: (Monad m, Unpackable arg) => UnpackedReaderT arg m argSource
local :: (Monad m, Unpackable arg) => (arg -> arg) -> UnpackedReaderT arg m a -> UnpackedReaderT arg m aSource
type :~> arg = UnpackedReaderT arg IdentitySource
unpack :: Unpackable arg => (arg -> a) -> arg :~> aSource
($~) :: Unpackable arg => (arg :~> a) -> arg -> aSource
unpackInstance :: Name -> Q [Dec]Source
Unpack complicated but single-constructor types.
noUnpackInstance :: Name -> Q [Dec]Source
Do no unpacking at all.