- 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
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.