Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Nix.Thunk
Synopsis
- class (Monad m, Eq (ThunkId m), Ord (ThunkId m), Show (ThunkId m), Typeable (ThunkId m)) => MonadThunkId m where
- class MonadThunkId m => MonadThunk t m a | t -> m, t -> a where
- class MonadThunkF t m a | t -> m, t -> a where
- newtype ThunkLoop = ThunkLoop Text
- thunkStubText :: Text
class MonadThunkId
& instances
class (Monad m, Eq (ThunkId m), Ord (ThunkId m), Show (ThunkId m), Typeable (ThunkId m)) => MonadThunkId m where Source #
Minimal complete definition
Nothing
Methods
freshId :: m (ThunkId m) Source #
default freshId :: (MonadThunkId m', MonadTrans t, m ~ t m', ThunkId m ~ ThunkId m') => m (ThunkId m) Source #
Instances
MonadThunkId (Lint s) Source # | |
MonadThunkId m => MonadThunkId (StandardT m) Source # | |
(MonadAtomicRef m, Eq i, Ord i, Show i, Enum i, Typeable i) => MonadThunkId (FreshIdT i m) Source # | |
MonadThunkId m => MonadThunkId (ExceptT e m) Source # | |
MonadThunkId m => MonadThunkId (ReaderT r m) Source # | |
MonadThunkId m => MonadThunkId (StateT s m) Source # | |
(Monoid w, MonadThunkId m) => MonadThunkId (WriterT w m) Source # | |
Instances
class MonadThunk
class MonadThunkId m => MonadThunk t m a | t -> m, t -> a where Source #
Methods
thunkId :: t -> ThunkId m Source #
Return thunk ID.
Create new thunk
query :: m a -> t -> m a Source #
Non-blocking query. If thunk got computed then return its value otherwise return default value (1st arg).
Modify the action to be performed by the thunk. For some implicits this modifies the thunk, for others it may create a new thunk.
Instances
(Typeable m, MonadThunkId m, MonadAtomicRef m, MonadCatch m, MonadReader (Context m (StdValue m)) m) => MonadThunk (StdThunk m) m (StdValue m) Source # | |
(MonadBasicThunk m, MonadCatch m) => MonadThunk (NThunkF m v) m v Source # | |
(Has e Options, Framed e m, MonadThunk t m v, Typeable m, Typeable f, Typeable u, MonadCatch m) => MonadThunk (Cited u f m t) m v Source # | |
Defined in Nix.Cited.Basic |
class MonadThunk
class MonadThunkF t m a | t -> m, t -> a where Source #
Class of Kleisli functors for easiness of customized implementation developlemnt.
Methods
queryF :: (a -> m r) -> m r -> t -> m r Source #
forceF :: (a -> m r) -> t -> m r Source #
Instances
(Typeable m, MonadThunkId m, MonadAtomicRef m, MonadCatch m, MonadReader (Context m (StdValue m)) m) => MonadThunkF (StdThunk m) m (StdValue m) Source # | This is a functorized version in CPS. |
Defined in Nix.Standard | |
(MonadBasicThunk m, MonadCatch m) => MonadThunkF (NThunkF m v) m v Source # | |
(Has e Options, Framed e m, MonadThunkF t m v, Typeable m, Typeable f, Typeable u, MonadCatch m) => MonadThunkF (Cited u f m t) m v Source # | |
newtype ThunkLoop
Instances
Exception ThunkLoop Source # | |
Defined in Nix.Thunk Methods toException :: ThunkLoop -> SomeException # fromException :: SomeException -> Maybe ThunkLoop # displayException :: ThunkLoop -> String # | |
Show ThunkLoop Source # | |
Utils
thunkStubText :: Text Source #