- 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[a6vC]) | |
Unpackable (ForeignPtr a[a6B0]) | |
Unpackable (Maybe a[a35H]) | |
Unpackable (MutableByteArray s[a6u3]) | |
Unpackable (Array a[a6r9]) | |
Unpackable (Vector a[a61N]) | |
Unpackable (Vector a[a6GL]) | |
Unpackable (Vector a[a61J]) | |
Unpackable (Either a[a6PA] b[a6Pz]) | |
(Unpackable a[a6Ws], Unpackable b[a6Wt]) => Unpackable (a[a6Ws], b[a6Wt]) | |
Unpackable (MutableArray s[a6s8] a[a6s7]) | |
Unpackable (MVector s[a6In] a[a6Im]) | |
Unpackable (MVector s[a6LP] a[a6LO]) | |
Unpackable (MVector s[a6K6] a[a6K5]) | |
(Unpackable a[a6WA], Unpackable b[a6WB], Unpackable c[a6WC]) => Unpackable (a[a6WA], b[a6WB], c[a6WC]) | |
(Unpackable a[a6WK], Unpackable b[a6WL], Unpackable c[a6WM], Unpackable d[a6WN]) => Unpackable (a[a6WK], b[a6WL], c[a6WM], d[a6WN]) | |
(Unpackable a[a6WW], Unpackable b[a6WX], Unpackable c[a6WY], Unpackable d[a6WZ], Unpackable e[a6X0]) => Unpackable (a[a6WW], b[a6WX], c[a6WY], d[a6WZ], e[a6X0]) | |
(Unpackable a[a6Xa], Unpackable b[a6Xb], Unpackable c[a6Xc], Unpackable d[a6Xd], Unpackable e[a6Xe], Unpackable f[a6Xf]) => Unpackable (a[a6Xa], b[a6Xb], c[a6Xc], d[a6Xd], e[a6Xe], f[a6Xf]) | |
(Unpackable a[a6Xq], Unpackable b[a6Xr], Unpackable c[a6Xs], Unpackable d[a6Xt], Unpackable e[a6Xu], Unpackable f[a6Xv], Unpackable g[a6Xw]) => Unpackable (a[a6Xq], b[a6Xr], c[a6Xs], d[a6Xt], e[a6Xu], f[a6Xv], g[a6Xw]) | |
(Unpackable a[a6XI], Unpackable b[a6XJ], Unpackable c[a6XK], Unpackable d[a6XL], Unpackable e[a6XM], Unpackable f[a6XN], Unpackable g[a6XO], Unpackable h[a6XP]) => Unpackable (a[a6XI], b[a6XJ], c[a6XK], d[a6XL], e[a6XM], f[a6XN], g[a6XO], h[a6XP]) | |
(Unpackable a[a6Y2], Unpackable b[a6Y3], Unpackable c[a6Y4], Unpackable d[a6Y5], Unpackable e[a6Y6], Unpackable f[a6Y7], Unpackable g[a6Y8], Unpackable h[a6Y9], Unpackable i[a6Ya]) => Unpackable (a[a6Y2], b[a6Y3], c[a6Y4], d[a6Y5], e[a6Y6], f[a6Y7], g[a6Y8], h[a6Y9], i[a6Ya]) | |
(Unpackable a[a6Yo], Unpackable b[a6Yp], Unpackable c[a6Yq], Unpackable d[a6Yr], Unpackable e[a6Ys], Unpackable f[a6Yt], Unpackable g[a6Yu], Unpackable h[a6Yv], Unpackable i[a6Yw], Unpackable j[a6Yx]) => Unpackable (a[a6Yo], b[a6Yp], c[a6Yq], d[a6Yr], e[a6Ys], f[a6Yt], g[a6Yu], h[a6Yv], i[a6Yw], j[a6Yx]) |
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.