record Callbacks : Type -> (Type -> Type) -> Type -> TypeMkCallbacks : (a -> m ()) -> (e -> m ()) -> Callbacks e m a.onSucceded : Callbacks e m a -> a -> m ()onSucceded : Callbacks e m a -> a -> m ().onFailed : Callbacks e m a -> e -> m ()onFailed : Callbacks e m a -> e -> m ()record Promise : Type -> (Type -> Type) -> Type -> Type.continuation : Promise e m a -> Callbacks e m a -> m ()continuation : Promise e m a -> Callbacks e m a -> m ()runPromise : (a -> m ()) -> (e -> m ()) -> Promise e m a -> m ()succeed : a -> Promise e m afail : e -> Promise e m amapFailure : (e -> e') -> Promise e m a -> Promise e' m ainterface MonadPromise : Type -> (Type -> Type) -> (Type -> Type) -> Typepromise : ((a -> n ()) -> (e -> n ()) -> n ()) -> m aMonad n => MonadPromise e n (Promise e n)MonadPromise e n m => MonadPromise e n (EitherT e' m)MonadPromise e n m => MonadPromise e n (MaybeT m)MonadPromise e n m => MonadPromise e n (RWST r w s m)MonadPromise e n m => MonadPromise e n (ReaderT r m)MonadPromise e n m => MonadPromise e n (StateT s m)MonadPromise e n m => MonadPromise e n (WriterT w m)promise : MonadPromise e n m => ((a -> n ()) -> (e -> n ()) -> n ()) -> m aresolve : MonadPromise e n m => a -> m areject : MonadPromise e n m => e -> m aliftPromise : MonadPromise e n m => Promise e n a -> m a