Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data NThunkF m v = Thunk (ThunkId m) (ThunkRef m) (ThunkValueRef m v)
- data Deferred m v
- deferred :: (v -> b) -> (m v -> b) -> Deferred m v -> b
- type MonadBasicThunk m = (MonadThunkId m, MonadAtomicRef m)
Documentation
The type of very basic thunks
Instances
(Eq v, Eq (ThunkId m)) => Eq (NThunkF m v) Source # | |
Show (NThunkF m v) Source # | |
(MonadBasicThunk m, MonadCatch m) => MonadThunkF (NThunkF m v) m v Source # | |
(MonadBasicThunk m, MonadCatch m) => MonadThunk (NThunkF m v) m v Source # | |
Data is computed OR in a lazy thunk state which is still not evaluated.
Instances
Functor m => Functor (Deferred m) Source # | |
Foldable m => Foldable (Deferred m) Source # | |
Defined in Nix.Thunk.Basic fold :: Monoid m0 => Deferred m m0 -> m0 # foldMap :: Monoid m0 => (a -> m0) -> Deferred m a -> m0 # foldMap' :: Monoid m0 => (a -> m0) -> Deferred m a -> m0 # foldr :: (a -> b -> b) -> b -> Deferred m a -> b # foldr' :: (a -> b -> b) -> b -> Deferred m a -> b # foldl :: (b -> a -> b) -> b -> Deferred m a -> b # foldl' :: (b -> a -> b) -> b -> Deferred m a -> b # foldr1 :: (a -> a -> a) -> Deferred m a -> a # foldl1 :: (a -> a -> a) -> Deferred m a -> a # toList :: Deferred m a -> [a] # null :: Deferred m a -> Bool # length :: Deferred m a -> Int # elem :: Eq a => a -> Deferred m a -> Bool # maximum :: Ord a => Deferred m a -> a # minimum :: Ord a => Deferred m a -> a # | |
Traversable m => Traversable (Deferred m) Source # | |
Defined in Nix.Thunk.Basic |
deferred :: (v -> b) -> (m v -> b) -> Deferred m v -> b Source #
Apply second if Deferred
, otherwise (Computed
) - apply first.
Analog of either
for Deferred = Computed|Deferred
.
type MonadBasicThunk m = (MonadThunkId m, MonadAtomicRef m) Source #