{-# LANGUAGE MagicHash #-}
module Data.HList (
module Data.HList.CommonMain,
module Data.STRef,
module Data.IORef,
module Data.Typeable,
module Control.Monad,
module Control.Monad.ST,
module Control.Monad.Fix,
concrete,
(#)
) where
import Data.HList.CommonMain hiding ( HDeleteMany
, hDeleteMany
)
import Data.STRef
import Data.IORef
import Data.Typeable
import Control.Monad
import Control.Monad.ST
import Control.Monad.Fix
infixr 9 #
(#) :: HasField l r v => r -> Label l -> v
r
m # :: r -> Label l -> v
# Label l
field = (r
m r -> Label l -> v
forall k (l :: k) r v. HasField l r v => r -> Label l -> v
.!. Label l
field)
concrete :: (MonadFix m) => (a -> m a) -> a -> m a
concrete :: (a -> m a) -> a -> m a
concrete a -> m a
generator a
self = a -> m a
generator a
self
where
m a
_ = (a -> m a) -> m a
forall (m :: * -> *) a. MonadFix m => (a -> m a) -> m a
mfix a -> m a
generator