packages feed

incipit-core 0.2.0.0 → 0.3.0.0

raw patch · 7 files changed

+203/−177 lines, 7 filesdep ~basedep ~incipit-basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, incipit-base

API changes (from Hackage documentation)

- Incipit: (.@) :: forall m (r :: [Effect]) (e :: Effect) z. Monad m => (forall x. () => Sem r x -> m x) -> (forall y. () => (forall x. () => Sem r x -> m x) -> Sem (e : r) y -> Sem r y) -> Sem (e : r) z -> m z
- Incipit: (.@@) :: forall m (r :: [Effect]) (e :: Effect) f z. Monad m => (forall x. () => Sem r x -> m x) -> (forall y. () => (forall x. () => Sem r x -> m x) -> Sem (e : r) y -> Sem r (f y)) -> Sem (e : r) z -> m (f z)
- Incipit: Inspector :: (forall x. () => f x -> Maybe x) -> Inspector (f :: Type -> Type)
- Incipit: [Embed] :: forall (m :: Type -> Type) a (z :: Type -> Type). {unEmbed :: m a} -> Embed m z a
- Incipit: [inspect] :: Inspector (f :: Type -> Type) -> forall x. () => f x -> Maybe x
- Incipit: ask :: forall i (r :: [Effect]). MemberWithError (Reader i) r => Sem r i
- Incipit: asks :: forall i j (r :: [(Type -> Type) -> Type -> Type]). Member (Reader i) r => (i -> j) -> Sem r j
- Incipit: async :: forall (r :: [Effect]) a. MemberWithError Async r => Sem r a -> Sem r (Async (Maybe a))
- Incipit: asyncToIO :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => Sem (Async : r) a -> Sem r a
- Incipit: asyncToIOFinal :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Final IO) r => Sem (Async : r) a -> Sem r a
- Incipit: atomicGet :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => Sem r s
- Incipit: atomicGets :: forall s s' (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> s') -> Sem r s'
- Incipit: atomicModify :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> s) -> Sem r ()
- Incipit: atomicModify' :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> s) -> Sem r ()
- Incipit: atomicPut :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => s -> Sem r ()
- Incipit: atomicState :: forall s a (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> (s, a)) -> Sem r a
- Incipit: atomicState' :: forall s a (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> (s, a)) -> Sem r a
- Incipit: atomicStateToIO :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => s -> Sem ((AtomicState s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
- Incipit: atomicStateToState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (State s :: (Type -> Type) -> Type -> Type) r => Sem ((AtomicState s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: await :: forall (r :: [Effect]) a. MemberWithError Async r => Async a -> Sem r a
- Incipit: bindT :: forall a m b (e :: Effect) f (r :: [Effect]). (a -> m b) -> Sem (WithTactics e f m r) (f a -> Sem (e : r) (f b))
- Incipit: bindTSimple :: forall m f (r :: [Effect]) (e :: Effect) a b. (a -> m b) -> f a -> Sem (WithTactics e f m r) (f b)
- Incipit: bracket :: forall (r :: [Effect]) a c b. MemberWithError Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r b) -> Sem r b
- Incipit: bracketOnError :: forall (r :: [Effect]) a c b. MemberWithError Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r b) -> Sem r b
- Incipit: bracket_ :: forall (r :: [(Type -> Type) -> Type -> Type]) a b c. Member Resource r => Sem r a -> Sem r b -> Sem r c -> Sem r c
- Incipit: cancel :: forall (r :: [Effect]) a. MemberWithError Async r => Async a -> Sem r ()
- Incipit: catch :: forall e (r :: [Effect]) a. MemberWithError (Error e :: (Type -> Type) -> Type -> Type) r => Sem r a -> (e -> Sem r a) -> Sem r a
- Incipit: catchJust :: forall e (r :: [(Type -> Type) -> Type -> Type]) b a. Member (Error e :: (Type -> Type) -> Type -> Type) r => (e -> Maybe b) -> Sem r a -> (b -> Sem r a) -> Sem r a
- Incipit: censor :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Member (Writer o) r => (o -> o) -> Sem r a -> Sem r a
- Incipit: data Async (m :: Type -> Type) a
- Incipit: data AtomicState s (m :: k) a
- Incipit: data Error e (m :: k -> Type) (a :: k)
- Incipit: data Fail (m :: k) (a :: k1)
- Incipit: data Final (m :: Type -> Type) (z :: Type -> Type) a
- Incipit: data Input (i :: k) (m :: k1) (a :: k)
- Incipit: data Output o (m :: k) a
- Incipit: data Reader i (m :: Type -> Type) a
- Incipit: data Resource (m :: Type -> Type) a
- Incipit: data Sem (r :: EffectRow) a
- Incipit: data State s (m :: k) a
- Incipit: data Tagged (k3 :: k) (e :: k1 -> k2 -> Type) (m :: k1) (a :: k2)
- Incipit: data Writer o (m :: Type -> Type) a
- Incipit: embed :: forall m (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed m) r => m a -> Sem r a
- Incipit: embedFinal :: forall m (r :: [(Type -> Type) -> Type -> Type]) a. (Member (Final m) r, Functor m) => m a -> Sem r a
- Incipit: embedToFinal :: forall (m :: Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. (Member (Final m) r, Functor m) => Sem (Embed m : r) a -> Sem r a
- Incipit: errorToIOFinal :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. (Typeable e, Member (Final IO) r) => Sem ((Error e :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (Either e a)
- Incipit: evalLazyState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: evalState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: execLazyState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r s
- Incipit: execState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r s
- Incipit: failToEmbed :: forall (m :: Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. (Member (Embed m) r, MonadFail m) => Sem ((Fail :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: failToError :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e :: (Type -> Type) -> Type -> Type) r => (String -> e) -> Sem ((Fail :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: failToNonDet :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member NonDet r => Sem ((Fail :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: finally :: forall (r :: [(Type -> Type) -> Type -> Type]) a b. Member Resource r => Sem r a -> Sem r b -> Sem r a
- Incipit: fromEither :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e :: (Type -> Type) -> Type -> Type) r => Either e a -> Sem r a
- Incipit: fromEitherM :: forall e m (r :: [(Type -> Type) -> Type -> Type]) a. (Member (Error e :: (Type -> Type) -> Type -> Type) r, Member (Embed m) r) => m (Either e a) -> Sem r a
- Incipit: fromException :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. (Exception e, Member (Error e :: (Type -> Type) -> Type -> Type) r, Member (Embed IO) r) => IO a -> Sem r a
- Incipit: fromExceptionSem :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. (Exception e, Member (Error e :: (Type -> Type) -> Type -> Type) r, Member (Final IO) r) => Sem r a -> Sem r a
- Incipit: fromExceptionSemVia :: forall exc err (r :: [(Type -> Type) -> Type -> Type]) a. (Exception exc, Member (Error err :: (Type -> Type) -> Type -> Type) r, Member (Final IO) r) => (exc -> err) -> Sem r a -> Sem r a
- Incipit: fromExceptionVia :: forall exc err (r :: [(Type -> Type) -> Type -> Type]) a. (Exception exc, Member (Error err :: (Type -> Type) -> Type -> Type) r, Member (Embed IO) r) => (exc -> err) -> IO a -> Sem r a
- Incipit: get :: forall s (r :: [Effect]). MemberWithError (State s :: (Type -> Type) -> Type -> Type) r => Sem r s
- Incipit: getInitialStateT :: forall f (m :: Type -> Type) (r :: [Effect]) (e :: Effect). Sem (WithTactics e f m r) (f ())
- Incipit: getInspectorT :: forall (e :: Effect) (f :: Type -> Type) (m :: Type -> Type) (r :: [Effect]). Sem (WithTactics e f m r) (Inspector f)
- Incipit: gets :: forall s a (r :: [(Type -> Type) -> Type -> Type]). Member (State s :: (Type -> Type) -> Type -> Type) r => (s -> a) -> Sem r a
- Incipit: hoistStateIntoStateT :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> StateT s (Sem r) a
- Incipit: ignoreException :: Member (Embed IO) r => IO () -> Sem r ()
- Incipit: ignoreOutput :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: infixl 8 .@
- Incipit: infixr 5 ++
- Incipit: input :: forall i (r :: [Effect]). MemberWithError (Input i :: (Type -> Type) -> Type -> Type) r => Sem r i
- Incipit: inputToReader :: forall i (r :: [(Type -> Type) -> Type -> Type]) a. Member (Reader i) r => Sem ((Input i :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: inputs :: forall i j (r :: [(Type -> Type) -> Type -> Type]). Member (Input i :: (Type -> Type) -> Type -> Type) r => (i -> j) -> Sem r j
- Incipit: insertAt :: forall (index :: Nat) (inserted :: [Effect]) (head :: [Effect]) (oldTail :: [Effect]) (tail :: [Effect]) (old :: [Effect]) (full :: [Effect]) a. (ListOfLength index head, WhenStuck index (InsertAtUnprovidedIndex :: Constraint), old ~ Append head oldTail, tail ~ Append inserted oldTail, full ~ Append head tail, InsertAtIndex index head tail oldTail full inserted) => Sem old a -> Sem full a
- Incipit: intercept :: forall e (r :: [Effect]) a. (Member e r, FirstOrder e "intercept") => (forall x (rInitial :: EffectRow). () => e (Sem rInitial) x -> Sem r x) -> Sem r a -> Sem r a
- Incipit: interceptH :: forall e (r :: [Effect]) a. Member e r => (forall x (rInitial :: EffectRow). () => e (Sem rInitial) x -> Tactical e (Sem rInitial) r x) -> Sem r a -> Sem r a
- Incipit: interpret :: forall e (r :: [Effect]) a. FirstOrder e "interpret" => (forall (rInitial :: EffectRow) x. () => e (Sem rInitial) x -> Sem r x) -> Sem (e : r) a -> Sem r a
- Incipit: interpretH :: forall e (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e (Sem rInitial) x -> Tactical e (Sem rInitial) r x) -> Sem (e : r) a -> Sem r a
- Incipit: listen :: forall o (r :: [Effect]) a. MemberWithError (Writer o) r => Sem r a -> Sem r (o, a)
- Incipit: local :: forall i (r :: [Effect]) a. MemberWithError (Reader i) r => (i -> i) -> Sem r a -> Sem r a
- Incipit: lowerAsync :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => (forall x. () => Sem r x -> IO x) -> Sem (Async : r) a -> Sem r a
- Incipit: lowerError :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. (Typeable e, Member (Embed IO) r) => (forall x. () => Sem r x -> IO x) -> Sem ((Error e :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (Either e a)
- Incipit: lowerResource :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => (forall x. () => Sem r x -> IO x) -> Sem (Resource : r) a -> Sem r a
- Incipit: makeSem :: Name -> Q [Dec]
- Incipit: makeSem_ :: Name -> Q [Dec]
- Incipit: mapError :: forall e1 e2 (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e2 :: (Type -> Type) -> Type -> Type) r => (e1 -> e2) -> Sem ((Error e1 :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: modify :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (State s :: (Type -> Type) -> Type -> Type) r => (s -> s) -> Sem r ()
- Incipit: modify' :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (State s :: (Type -> Type) -> Type -> Type) r => (s -> s) -> Sem r ()
- Incipit: newtype Embed (m :: Type -> Type) (z :: Type -> Type) a
- Incipit: newtype Inspector (f :: Type -> Type)
- Incipit: note :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e :: (Type -> Type) -> Type -> Type) r => e -> Maybe a -> Sem r a
- Incipit: onException :: forall (r :: [(Type -> Type) -> Type -> Type]) a b. Member Resource r => Sem r a -> Sem r b -> Sem r a
- Incipit: output :: forall o (r :: [Effect]). MemberWithError (Output o :: (Type -> Type) -> Type -> Type) r => o -> Sem r ()
- Incipit: outputToIOMonoid :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid m, Member (Embed IO) r) => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
- Incipit: outputToIOMonoidAssocR :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid m, Member (Embed IO) r) => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
- Incipit: outputToWriter :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Member (Writer o) r => Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: pass :: forall o (r :: [Effect]) a. MemberWithError (Writer o) r => Sem r (o -> o, a) -> Sem r a
- Incipit: pureT :: forall f a (e :: Effect) (m :: Type -> Type) (r :: [Effect]). Functor f => a -> Sem (WithTactics e f m r) (f a)
- Incipit: put :: forall s (r :: [Effect]). MemberWithError (State s :: (Type -> Type) -> Type -> Type) r => s -> Sem r ()
- Incipit: raise :: forall (e :: Effect) (r :: EffectRow) a. Sem r a -> Sem (e : r) a
- Incipit: raise2Under :: forall (e3 :: Effect) (e1 :: Effect) (e2 :: Effect) (r :: [Effect]) a. Sem (e1 : (e2 : r)) a -> Sem (e1 : (e2 : (e3 : r))) a
- Incipit: raise3Under :: forall (e4 :: Effect) (e1 :: Effect) (e2 :: Effect) (e3 :: Effect) (r :: [Effect]) a. Sem (e1 : (e2 : (e3 : r))) a -> Sem (e1 : (e2 : (e3 : (e4 : r)))) a
- Incipit: raiseUnder :: forall (e2 :: Effect) (e1 :: Effect) (r :: [Effect]) a. Sem (e1 : r) a -> Sem (e1 : (e2 : r)) a
- Incipit: raiseUnder2 :: forall (e2 :: Effect) (e3 :: Effect) (e1 :: Effect) (r :: [Effect]) a. Sem (e1 : r) a -> Sem (e1 : (e2 : (e3 : r))) a
- Incipit: raiseUnder3 :: forall (e2 :: Effect) (e3 :: Effect) (e4 :: Effect) (e1 :: Effect) (r :: [Effect]) a. Sem (e1 : r) a -> Sem (e1 : (e2 : (e3 : (e4 : r)))) a
- Incipit: raise_ :: forall (r :: EffectRow) (r' :: EffectRow) a. Raise r r' => Sem r a -> Sem r' a
- Incipit: reinterpret :: forall e1 (e2 :: Effect) (r :: [Effect]) a. FirstOrder e1 "reinterpret" => (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Sem (e2 : r) x) -> Sem (e1 : r) a -> Sem (e2 : r) a
- Incipit: reinterpret2 :: forall e1 (e2 :: Effect) (e3 :: Effect) (r :: [Effect]) a. FirstOrder e1 "reinterpret2" => (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Sem (e2 : (e3 : r)) x) -> Sem (e1 : r) a -> Sem (e2 : (e3 : r)) a
- Incipit: reinterpret2H :: forall e1 (e2 :: Effect) (e3 :: Effect) (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Tactical e1 (Sem rInitial) (e2 : (e3 : r)) x) -> Sem (e1 : r) a -> Sem (e2 : (e3 : r)) a
- Incipit: reinterpret3 :: forall e1 (e2 :: Effect) (e3 :: Effect) (e4 :: Effect) (r :: [Effect]) a. FirstOrder e1 "reinterpret3" => (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Sem (e2 : (e3 : (e4 : r))) x) -> Sem (e1 : r) a -> Sem (e2 : (e3 : (e4 : r))) a
- Incipit: reinterpret3H :: forall e1 (e2 :: Effect) (e3 :: Effect) (e4 :: Effect) (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Tactical e1 (Sem rInitial) (e2 : (e3 : (e4 : r))) x) -> Sem (e1 : r) a -> Sem (e2 : (e3 : (e4 : r))) a
- Incipit: reinterpretH :: forall e1 (e2 :: Effect) (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Tactical e1 (Sem rInitial) (e2 : r) x) -> Sem (e1 : r) a -> Sem (e2 : r) a
- Incipit: resourceToIO :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => Sem (Resource : r) a -> Sem r a
- Incipit: resourceToIOFinal :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Final IO) r => Sem (Resource : r) a -> Sem r a
- Incipit: retag :: forall {k1} {k2} (k3 :: k1) (k4 :: k2) (e :: (Type -> Type) -> Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. Member (Tagged k4 e) r => Sem (Tagged k3 e : r) a -> Sem r a
- Incipit: rewrite :: forall e1 e2 (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> e2 (Sem rInitial) x) -> Sem (e1 : r) a -> Sem (e2 : r) a
- Incipit: runAtomicStateIORef :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => IORef s -> Sem ((AtomicState s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runAtomicStateTVar :: forall (r :: [(Type -> Type) -> Type -> Type]) s a. Member (Embed IO) r => TVar s -> Sem ((AtomicState s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runError :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Error e :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (Either e a)
- Incipit: runFail :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Fail :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (Either String a)
- Incipit: runFinal :: Monad m => Sem '[Final m] a -> m a
- Incipit: runInputConst :: forall i (r :: [(Type -> Type) -> Type -> Type]) a. i -> Sem ((Input i :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runInputList :: forall i (r :: [(Type -> Type) -> Type -> Type]) a. [i] -> Sem ((Input (Maybe i) :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runInputSem :: forall i (r :: EffectRow) a. Sem r i -> Sem ((Input i :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runLazyOutputList :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r ([o], a)
- Incipit: runLazyOutputMonoid :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. Monoid m => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
- Incipit: runLazyOutputMonoidAssocR :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. Monoid m => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
- Incipit: runLazyState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
- Incipit: runLazyWriter :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Monoid o => Sem (Writer o : r) a -> Sem r (o, a)
- Incipit: runLazyWriterAssocR :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Monoid o => Sem (Writer o : r) a -> Sem r (o, a)
- Incipit: runM :: Monad m => Sem '[Embed m] a -> m a
- Incipit: runOutputBatched :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Member (Output [o] :: (Type -> Type) -> Type -> Type) r => Int -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runOutputList :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r ([o], a)
- Incipit: runOutputMonoid :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. Monoid m => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
- Incipit: runOutputMonoidAssocR :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. Monoid m => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
- Incipit: runOutputMonoidIORef :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid m, Member (Embed IO) r) => IORef m -> (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runOutputMonoidTVar :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid m, Member (Embed IO) r) => TVar m -> (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runOutputSem :: forall o (r :: EffectRow) a. (o -> Sem r ()) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runReader :: forall i (r :: [(Type -> Type) -> Type -> Type]) a. i -> Sem (Reader i : r) a -> Sem r a
- Incipit: runResource :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Sem (Resource : r) a -> Sem r a
- Incipit: runState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
- Incipit: runStateIORef :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => IORef s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runStateSTRef :: forall s st (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed (ST st)) r => STRef st s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
- Incipit: runT :: forall m a (e :: Effect) f (r :: [Effect]). m a -> Sem (WithTactics e f m r) (Sem (e : r) (f a))
- Incipit: runTSimple :: forall m a (e :: Effect) (r :: [Effect]). m a -> Tactical e m r a
- Incipit: runWriter :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Monoid o => Sem (Writer o : r) a -> Sem r (o, a)
- Incipit: runWriterAssocR :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Monoid o => Sem (Writer o : r) a -> Sem r (o, a)
- Incipit: runWriterTVar :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid o, Member (Final IO) r) => TVar o -> Sem (Writer o : r) a -> Sem r a
- Incipit: send :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member e r => e (Sem r) a -> Sem r a
- Incipit: sequenceConcurrently :: forall t (r :: [(Type -> Type) -> Type -> Type]) a. (Traversable t, Member Async r) => t (Sem r a) -> Sem r (t (Maybe a))
- Incipit: stateToIO :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
- Incipit: stateToST :: forall s st (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed (ST st)) r => s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
- Incipit: subsume :: forall (e :: Effect) (r :: [Effect]) a. Member e r => Sem (e : r) a -> Sem r a
- Incipit: subsume_ :: forall (r :: EffectRow) (r' :: EffectRow) a. Subsume r r' => Sem r a -> Sem r' a
- Incipit: tag :: forall {k1} (k2 :: k1) (e :: (Type -> Type) -> Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. Member (Tagged k2 e) r => Sem (e : r) a -> Sem r a
- Incipit: tagged :: forall {k1} (k2 :: k1) (e :: Effect) (r :: [Effect]) a. Sem (e : r) a -> Sem (Tagged k2 e : r) a
- Incipit: tell :: forall o (r :: [Effect]). MemberWithError (Writer o) r => o -> Sem r ()
- Incipit: throw :: forall e (r :: [Effect]) a. MemberWithError (Error e :: (Type -> Type) -> Type -> Type) r => e -> Sem r a
- Incipit: transform :: forall e1 e2 (r :: [Effect]) a. Member e2 r => (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> e2 (Sem rInitial) x) -> Sem (e1 : r) a -> Sem r a
- Incipit: try :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e :: (Type -> Type) -> Type -> Type) r => Sem r a -> Sem r (Either e a)
- Incipit: tryAny :: Member (Embed IO) r => IO a -> Sem r (Either Text a)
- Incipit: tryJust :: forall e (r :: [(Type -> Type) -> Type -> Type]) b a. Member (Error e :: (Type -> Type) -> Type -> Type) r => (e -> Maybe b) -> Sem r a -> Sem r (Either b a)
- Incipit: tryMaybe :: Member (Embed IO) r => IO a -> Sem r (Maybe a)
- Incipit: type Effect = Type -> Type -> Type -> Type
- Incipit: type EffectRow = [Effect]
- Incipit: type Member (e :: k) (r :: [k]) = MemberNoError e r
- Incipit: type MemberWithError (e :: Effect) (r :: [Effect]) = (MemberNoError e r, WhenStuck LocateEffect e r AmbiguousSend e r :: Constraint)
- Incipit: type InterpretersFor (es :: [Effect]) (r :: [Effect]) = forall a. () => Sem Append es r a -> Sem r a
- Incipit: type WithTactics (e :: Effect) (f :: Type -> Type) (m :: Type -> Type) (r :: [Effect]) = Tactics f m e : r :: Type -> Type -> Type -> Type : r
- Incipit: type a ++ b = Append a b
- Incipit: type family Members (es :: [k]) (r :: [k])
- Incipit: unitT :: Functor f => Sem (WithTactics e f m r) (f ())
- Incipit: untag :: forall {k1} (k2 :: k1) (e :: (Type -> Type) -> Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. Sem (Tagged k2 e : r) a -> Sem (e : r) a
- Incipit: withLowerToIO :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => ((forall x. () => Sem r x -> IO x) -> IO () -> IO a) -> Sem r a
- Incipit: writerToEndoWriter :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid o, Member (Writer (Endo o)) r) => Sem (Writer o : r) a -> Sem r a
- Incipit: writerToIOAssocRFinal :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid o, Member (Final IO) r) => Sem (Writer o : r) a -> Sem r (o, a)
- Incipit: writerToIOFinal :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid o, Member (Final IO) r) => Sem (Writer o : r) a -> Sem r (o, a)
+ Incipit.Exception: ignoreException :: Member (Embed IO) r => IO () -> Sem r ()
+ Incipit.Exception: tryAny :: forall r a. Member (Embed IO) r => IO a -> Sem r (Either Text a)
+ Incipit.Exception: tryAny_ :: forall r. Member (Embed IO) r => IO () -> Sem r ()
+ Incipit.Exception: tryIO :: forall e r a. Exception e => Member (Embed IO) r => IO a -> Sem r (Either Text a)
+ Incipit.Exception: tryIOE :: forall e r a. Exception e => Member (Embed IO) r => IO a -> Sem r (Either e a)
+ Incipit.Exception: tryIOError :: forall r a. Member (Embed IO) r => IO a -> Sem r (Either Text a)
+ Incipit.Exception: tryIOErrorMaybe :: forall r a. Member (Embed IO) r => IO a -> Sem r (Maybe a)
+ Incipit.Exception: tryIOError_ :: forall r. Member (Embed IO) r => IO () -> Sem r ()
+ Incipit.Exception: tryIOMaybe :: forall e r a. Exception e => Member (Embed IO) r => IO a -> Sem r (Maybe a)
+ Incipit.Exception: tryIO_ :: forall e r. Exception e => Member (Embed IO) r => IO () -> Sem r ()
+ Incipit.Exception: tryMaybe :: forall r a. Member (Embed IO) r => IO a -> Sem r (Maybe a)
+ IncipitCore: (.@) :: forall m (r :: [Effect]) (e :: Effect) z. Monad m => (forall x. () => Sem r x -> m x) -> (forall y. () => (forall x. () => Sem r x -> m x) -> Sem (e : r) y -> Sem r y) -> Sem (e : r) z -> m z
+ IncipitCore: (.@@) :: forall m (r :: [Effect]) (e :: Effect) f z. Monad m => (forall x. () => Sem r x -> m x) -> (forall y. () => (forall x. () => Sem r x -> m x) -> Sem (e : r) y -> Sem r (f y)) -> Sem (e : r) z -> m (f z)
+ IncipitCore: Inspector :: (forall x. () => f x -> Maybe x) -> Inspector (f :: Type -> Type)
+ IncipitCore: [Embed] :: forall (m :: Type -> Type) a (z :: Type -> Type). {unEmbed :: m a} -> Embed m z a
+ IncipitCore: [inspect] :: Inspector (f :: Type -> Type) -> forall x. () => f x -> Maybe x
+ IncipitCore: ask :: forall i (r :: [Effect]). MemberWithError (Reader i) r => Sem r i
+ IncipitCore: asks :: forall i j (r :: [(Type -> Type) -> Type -> Type]). Member (Reader i) r => (i -> j) -> Sem r j
+ IncipitCore: async :: forall (r :: [Effect]) a. MemberWithError Async r => Sem r a -> Sem r (Async (Maybe a))
+ IncipitCore: asyncToIO :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => Sem (Async : r) a -> Sem r a
+ IncipitCore: asyncToIOFinal :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Final IO) r => Sem (Async : r) a -> Sem r a
+ IncipitCore: atomicGet :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => Sem r s
+ IncipitCore: atomicGets :: forall s s' (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> s') -> Sem r s'
+ IncipitCore: atomicModify :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> s) -> Sem r ()
+ IncipitCore: atomicModify' :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> s) -> Sem r ()
+ IncipitCore: atomicPut :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => s -> Sem r ()
+ IncipitCore: atomicState :: forall s a (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> (s, a)) -> Sem r a
+ IncipitCore: atomicState' :: forall s a (r :: [(Type -> Type) -> Type -> Type]). Member (AtomicState s :: (Type -> Type) -> Type -> Type) r => (s -> (s, a)) -> Sem r a
+ IncipitCore: atomicStateToIO :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => s -> Sem ((AtomicState s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
+ IncipitCore: atomicStateToState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (State s :: (Type -> Type) -> Type -> Type) r => Sem ((AtomicState s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: await :: forall (r :: [Effect]) a. MemberWithError Async r => Async a -> Sem r a
+ IncipitCore: bindT :: forall a m b (e :: Effect) f (r :: [Effect]). (a -> m b) -> Sem (WithTactics e f m r) (f a -> Sem (e : r) (f b))
+ IncipitCore: bindTSimple :: forall m f (r :: [Effect]) (e :: Effect) a b. (a -> m b) -> f a -> Sem (WithTactics e f m r) (f b)
+ IncipitCore: bracket :: forall (r :: [Effect]) a c b. MemberWithError Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r b) -> Sem r b
+ IncipitCore: bracketOnError :: forall (r :: [Effect]) a c b. MemberWithError Resource r => Sem r a -> (a -> Sem r c) -> (a -> Sem r b) -> Sem r b
+ IncipitCore: bracket_ :: forall (r :: [(Type -> Type) -> Type -> Type]) a b c. Member Resource r => Sem r a -> Sem r b -> Sem r c -> Sem r c
+ IncipitCore: cancel :: forall (r :: [Effect]) a. MemberWithError Async r => Async a -> Sem r ()
+ IncipitCore: catch :: forall e (r :: [Effect]) a. MemberWithError (Error e :: (Type -> Type) -> Type -> Type) r => Sem r a -> (e -> Sem r a) -> Sem r a
+ IncipitCore: catchJust :: forall e (r :: [(Type -> Type) -> Type -> Type]) b a. Member (Error e :: (Type -> Type) -> Type -> Type) r => (e -> Maybe b) -> Sem r a -> (b -> Sem r a) -> Sem r a
+ IncipitCore: censor :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Member (Writer o) r => (o -> o) -> Sem r a -> Sem r a
+ IncipitCore: data Async (m :: Type -> Type) a
+ IncipitCore: data AtomicState s (m :: k) a
+ IncipitCore: data Error e (m :: k -> Type) (a :: k)
+ IncipitCore: data Fail (m :: k) (a :: k1)
+ IncipitCore: data Final (m :: Type -> Type) (z :: Type -> Type) a
+ IncipitCore: data Input (i :: k) (m :: k1) (a :: k)
+ IncipitCore: data Output o (m :: k) a
+ IncipitCore: data Reader i (m :: Type -> Type) a
+ IncipitCore: data Resource (m :: Type -> Type) a
+ IncipitCore: data Sem (r :: EffectRow) a
+ IncipitCore: data State s (m :: k) a
+ IncipitCore: data Tagged (k3 :: k) (e :: k1 -> k2 -> Type) (m :: k1) (a :: k2)
+ IncipitCore: data Writer o (m :: Type -> Type) a
+ IncipitCore: embed :: forall m (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed m) r => m a -> Sem r a
+ IncipitCore: embedFinal :: forall m (r :: [(Type -> Type) -> Type -> Type]) a. (Member (Final m) r, Functor m) => m a -> Sem r a
+ IncipitCore: embedToFinal :: forall (m :: Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. (Member (Final m) r, Functor m) => Sem (Embed m : r) a -> Sem r a
+ IncipitCore: errorToIOFinal :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. (Typeable e, Member (Final IO) r) => Sem ((Error e :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (Either e a)
+ IncipitCore: evalLazyState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: evalState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: execLazyState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r s
+ IncipitCore: execState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r s
+ IncipitCore: failToEmbed :: forall (m :: Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. (Member (Embed m) r, MonadFail m) => Sem ((Fail :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: failToError :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e :: (Type -> Type) -> Type -> Type) r => (String -> e) -> Sem ((Fail :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: failToNonDet :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member NonDet r => Sem ((Fail :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: finally :: forall (r :: [(Type -> Type) -> Type -> Type]) a b. Member Resource r => Sem r a -> Sem r b -> Sem r a
+ IncipitCore: fromEither :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e :: (Type -> Type) -> Type -> Type) r => Either e a -> Sem r a
+ IncipitCore: fromEitherM :: forall e m (r :: [(Type -> Type) -> Type -> Type]) a. (Member (Error e :: (Type -> Type) -> Type -> Type) r, Member (Embed m) r) => m (Either e a) -> Sem r a
+ IncipitCore: fromException :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. (Exception e, Member (Error e :: (Type -> Type) -> Type -> Type) r, Member (Embed IO) r) => IO a -> Sem r a
+ IncipitCore: fromExceptionSem :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. (Exception e, Member (Error e :: (Type -> Type) -> Type -> Type) r, Member (Final IO) r) => Sem r a -> Sem r a
+ IncipitCore: fromExceptionSemVia :: forall exc err (r :: [(Type -> Type) -> Type -> Type]) a. (Exception exc, Member (Error err :: (Type -> Type) -> Type -> Type) r, Member (Final IO) r) => (exc -> err) -> Sem r a -> Sem r a
+ IncipitCore: fromExceptionVia :: forall exc err (r :: [(Type -> Type) -> Type -> Type]) a. (Exception exc, Member (Error err :: (Type -> Type) -> Type -> Type) r, Member (Embed IO) r) => (exc -> err) -> IO a -> Sem r a
+ IncipitCore: get :: forall s (r :: [Effect]). MemberWithError (State s :: (Type -> Type) -> Type -> Type) r => Sem r s
+ IncipitCore: getInitialStateT :: forall f (m :: Type -> Type) (r :: [Effect]) (e :: Effect). Sem (WithTactics e f m r) (f ())
+ IncipitCore: getInspectorT :: forall (e :: Effect) (f :: Type -> Type) (m :: Type -> Type) (r :: [Effect]). Sem (WithTactics e f m r) (Inspector f)
+ IncipitCore: gets :: forall s a (r :: [(Type -> Type) -> Type -> Type]). Member (State s :: (Type -> Type) -> Type -> Type) r => (s -> a) -> Sem r a
+ IncipitCore: hoistStateIntoStateT :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> StateT s (Sem r) a
+ IncipitCore: ignoreOutput :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: infixl 8 .@
+ IncipitCore: infixr 5 ++
+ IncipitCore: input :: forall i (r :: [Effect]). MemberWithError (Input i :: (Type -> Type) -> Type -> Type) r => Sem r i
+ IncipitCore: inputToReader :: forall i (r :: [(Type -> Type) -> Type -> Type]) a. Member (Reader i) r => Sem ((Input i :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: inputs :: forall i j (r :: [(Type -> Type) -> Type -> Type]). Member (Input i :: (Type -> Type) -> Type -> Type) r => (i -> j) -> Sem r j
+ IncipitCore: insertAt :: forall (index :: Nat) (inserted :: [Effect]) (head :: [Effect]) (oldTail :: [Effect]) (tail :: [Effect]) (old :: [Effect]) (full :: [Effect]) a. (ListOfLength index head, WhenStuck index (InsertAtUnprovidedIndex :: Constraint), old ~ Append head oldTail, tail ~ Append inserted oldTail, full ~ Append head tail, InsertAtIndex index head tail oldTail full inserted) => Sem old a -> Sem full a
+ IncipitCore: intercept :: forall e (r :: [Effect]) a. (Member e r, FirstOrder e "intercept") => (forall x (rInitial :: EffectRow). () => e (Sem rInitial) x -> Sem r x) -> Sem r a -> Sem r a
+ IncipitCore: interceptH :: forall e (r :: [Effect]) a. Member e r => (forall x (rInitial :: EffectRow). () => e (Sem rInitial) x -> Tactical e (Sem rInitial) r x) -> Sem r a -> Sem r a
+ IncipitCore: interpret :: forall e (r :: [Effect]) a. FirstOrder e "interpret" => (forall (rInitial :: EffectRow) x. () => e (Sem rInitial) x -> Sem r x) -> Sem (e : r) a -> Sem r a
+ IncipitCore: interpretH :: forall e (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e (Sem rInitial) x -> Tactical e (Sem rInitial) r x) -> Sem (e : r) a -> Sem r a
+ IncipitCore: listen :: forall o (r :: [Effect]) a. MemberWithError (Writer o) r => Sem r a -> Sem r (o, a)
+ IncipitCore: local :: forall i (r :: [Effect]) a. MemberWithError (Reader i) r => (i -> i) -> Sem r a -> Sem r a
+ IncipitCore: lowerAsync :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => (forall x. () => Sem r x -> IO x) -> Sem (Async : r) a -> Sem r a
+ IncipitCore: lowerError :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. (Typeable e, Member (Embed IO) r) => (forall x. () => Sem r x -> IO x) -> Sem ((Error e :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (Either e a)
+ IncipitCore: lowerResource :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => (forall x. () => Sem r x -> IO x) -> Sem (Resource : r) a -> Sem r a
+ IncipitCore: makeSem :: Name -> Q [Dec]
+ IncipitCore: makeSem_ :: Name -> Q [Dec]
+ IncipitCore: mapError :: forall e1 e2 (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e2 :: (Type -> Type) -> Type -> Type) r => (e1 -> e2) -> Sem ((Error e1 :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: modify :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (State s :: (Type -> Type) -> Type -> Type) r => (s -> s) -> Sem r ()
+ IncipitCore: modify' :: forall s (r :: [(Type -> Type) -> Type -> Type]). Member (State s :: (Type -> Type) -> Type -> Type) r => (s -> s) -> Sem r ()
+ IncipitCore: newtype Embed (m :: Type -> Type) (z :: Type -> Type) a
+ IncipitCore: newtype Inspector (f :: Type -> Type)
+ IncipitCore: note :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e :: (Type -> Type) -> Type -> Type) r => e -> Maybe a -> Sem r a
+ IncipitCore: onException :: forall (r :: [(Type -> Type) -> Type -> Type]) a b. Member Resource r => Sem r a -> Sem r b -> Sem r a
+ IncipitCore: output :: forall o (r :: [Effect]). MemberWithError (Output o :: (Type -> Type) -> Type -> Type) r => o -> Sem r ()
+ IncipitCore: outputToIOMonoid :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid m, Member (Embed IO) r) => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
+ IncipitCore: outputToIOMonoidAssocR :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid m, Member (Embed IO) r) => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
+ IncipitCore: outputToWriter :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Member (Writer o) r => Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: pass :: forall o (r :: [Effect]) a. MemberWithError (Writer o) r => Sem r (o -> o, a) -> Sem r a
+ IncipitCore: pureT :: forall f a (e :: Effect) (m :: Type -> Type) (r :: [Effect]). Functor f => a -> Sem (WithTactics e f m r) (f a)
+ IncipitCore: put :: forall s (r :: [Effect]). MemberWithError (State s :: (Type -> Type) -> Type -> Type) r => s -> Sem r ()
+ IncipitCore: raise :: forall (e :: Effect) (r :: EffectRow) a. Sem r a -> Sem (e : r) a
+ IncipitCore: raise2Under :: forall (e3 :: Effect) (e1 :: Effect) (e2 :: Effect) (r :: [Effect]) a. Sem (e1 : (e2 : r)) a -> Sem (e1 : (e2 : (e3 : r))) a
+ IncipitCore: raise3Under :: forall (e4 :: Effect) (e1 :: Effect) (e2 :: Effect) (e3 :: Effect) (r :: [Effect]) a. Sem (e1 : (e2 : (e3 : r))) a -> Sem (e1 : (e2 : (e3 : (e4 : r)))) a
+ IncipitCore: raiseUnder :: forall (e2 :: Effect) (e1 :: Effect) (r :: [Effect]) a. Sem (e1 : r) a -> Sem (e1 : (e2 : r)) a
+ IncipitCore: raiseUnder2 :: forall (e2 :: Effect) (e3 :: Effect) (e1 :: Effect) (r :: [Effect]) a. Sem (e1 : r) a -> Sem (e1 : (e2 : (e3 : r))) a
+ IncipitCore: raiseUnder3 :: forall (e2 :: Effect) (e3 :: Effect) (e4 :: Effect) (e1 :: Effect) (r :: [Effect]) a. Sem (e1 : r) a -> Sem (e1 : (e2 : (e3 : (e4 : r)))) a
+ IncipitCore: raise_ :: forall (r :: EffectRow) (r' :: EffectRow) a. Raise r r' => Sem r a -> Sem r' a
+ IncipitCore: reinterpret :: forall e1 (e2 :: Effect) (r :: [Effect]) a. FirstOrder e1 "reinterpret" => (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Sem (e2 : r) x) -> Sem (e1 : r) a -> Sem (e2 : r) a
+ IncipitCore: reinterpret2 :: forall e1 (e2 :: Effect) (e3 :: Effect) (r :: [Effect]) a. FirstOrder e1 "reinterpret2" => (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Sem (e2 : (e3 : r)) x) -> Sem (e1 : r) a -> Sem (e2 : (e3 : r)) a
+ IncipitCore: reinterpret2H :: forall e1 (e2 :: Effect) (e3 :: Effect) (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Tactical e1 (Sem rInitial) (e2 : (e3 : r)) x) -> Sem (e1 : r) a -> Sem (e2 : (e3 : r)) a
+ IncipitCore: reinterpret3 :: forall e1 (e2 :: Effect) (e3 :: Effect) (e4 :: Effect) (r :: [Effect]) a. FirstOrder e1 "reinterpret3" => (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Sem (e2 : (e3 : (e4 : r))) x) -> Sem (e1 : r) a -> Sem (e2 : (e3 : (e4 : r))) a
+ IncipitCore: reinterpret3H :: forall e1 (e2 :: Effect) (e3 :: Effect) (e4 :: Effect) (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Tactical e1 (Sem rInitial) (e2 : (e3 : (e4 : r))) x) -> Sem (e1 : r) a -> Sem (e2 : (e3 : (e4 : r))) a
+ IncipitCore: reinterpretH :: forall e1 (e2 :: Effect) (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> Tactical e1 (Sem rInitial) (e2 : r) x) -> Sem (e1 : r) a -> Sem (e2 : r) a
+ IncipitCore: resourceToIO :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => Sem (Resource : r) a -> Sem r a
+ IncipitCore: resourceToIOFinal :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Final IO) r => Sem (Resource : r) a -> Sem r a
+ IncipitCore: retag :: forall {k1} {k2} (k3 :: k1) (k4 :: k2) (e :: (Type -> Type) -> Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. Member (Tagged k4 e) r => Sem (Tagged k3 e : r) a -> Sem r a
+ IncipitCore: rewrite :: forall e1 e2 (r :: [Effect]) a. (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> e2 (Sem rInitial) x) -> Sem (e1 : r) a -> Sem (e2 : r) a
+ IncipitCore: runAtomicStateIORef :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => IORef s -> Sem ((AtomicState s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runAtomicStateTVar :: forall (r :: [(Type -> Type) -> Type -> Type]) s a. Member (Embed IO) r => TVar s -> Sem ((AtomicState s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runError :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Error e :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (Either e a)
+ IncipitCore: runFail :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Fail :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (Either String a)
+ IncipitCore: runFinal :: Monad m => Sem '[Final m] a -> m a
+ IncipitCore: runInputConst :: forall i (r :: [(Type -> Type) -> Type -> Type]) a. i -> Sem ((Input i :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runInputList :: forall i (r :: [(Type -> Type) -> Type -> Type]) a. [i] -> Sem ((Input (Maybe i) :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runInputSem :: forall i (r :: EffectRow) a. Sem r i -> Sem ((Input i :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runLazyOutputList :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r ([o], a)
+ IncipitCore: runLazyOutputMonoid :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. Monoid m => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
+ IncipitCore: runLazyOutputMonoidAssocR :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. Monoid m => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
+ IncipitCore: runLazyState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
+ IncipitCore: runLazyWriter :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Monoid o => Sem (Writer o : r) a -> Sem r (o, a)
+ IncipitCore: runLazyWriterAssocR :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Monoid o => Sem (Writer o : r) a -> Sem r (o, a)
+ IncipitCore: runM :: Monad m => Sem '[Embed m] a -> m a
+ IncipitCore: runOutputBatched :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Member (Output [o] :: (Type -> Type) -> Type -> Type) r => Int -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runOutputList :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r ([o], a)
+ IncipitCore: runOutputMonoid :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. Monoid m => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
+ IncipitCore: runOutputMonoidAssocR :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. Monoid m => (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (m, a)
+ IncipitCore: runOutputMonoidIORef :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid m, Member (Embed IO) r) => IORef m -> (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runOutputMonoidTVar :: forall o m (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid m, Member (Embed IO) r) => TVar m -> (o -> m) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runOutputSem :: forall o (r :: EffectRow) a. (o -> Sem r ()) -> Sem ((Output o :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runReader :: forall i (r :: [(Type -> Type) -> Type -> Type]) a. i -> Sem (Reader i : r) a -> Sem r a
+ IncipitCore: runResource :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Sem (Resource : r) a -> Sem r a
+ IncipitCore: runState :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
+ IncipitCore: runStateIORef :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => IORef s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runStateSTRef :: forall s st (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed (ST st)) r => STRef st s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r a
+ IncipitCore: runT :: forall m a (e :: Effect) f (r :: [Effect]). m a -> Sem (WithTactics e f m r) (Sem (e : r) (f a))
+ IncipitCore: runTSimple :: forall m a (e :: Effect) (r :: [Effect]). m a -> Tactical e m r a
+ IncipitCore: runWriter :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Monoid o => Sem (Writer o : r) a -> Sem r (o, a)
+ IncipitCore: runWriterAssocR :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. Monoid o => Sem (Writer o : r) a -> Sem r (o, a)
+ IncipitCore: runWriterTVar :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid o, Member (Final IO) r) => TVar o -> Sem (Writer o : r) a -> Sem r a
+ IncipitCore: send :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member e r => e (Sem r) a -> Sem r a
+ IncipitCore: sequenceConcurrently :: forall t (r :: [(Type -> Type) -> Type -> Type]) a. (Traversable t, Member Async r) => t (Sem r a) -> Sem r (t (Maybe a))
+ IncipitCore: stateToIO :: forall s (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
+ IncipitCore: stateToST :: forall s st (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed (ST st)) r => s -> Sem ((State s :: (Type -> Type) -> Type -> Type) : r) a -> Sem r (s, a)
+ IncipitCore: subsume :: forall (e :: Effect) (r :: [Effect]) a. Member e r => Sem (e : r) a -> Sem r a
+ IncipitCore: subsume_ :: forall (r :: EffectRow) (r' :: EffectRow) a. Subsume r r' => Sem r a -> Sem r' a
+ IncipitCore: tag :: forall {k1} (k2 :: k1) (e :: (Type -> Type) -> Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. Member (Tagged k2 e) r => Sem (e : r) a -> Sem r a
+ IncipitCore: tagged :: forall {k1} (k2 :: k1) (e :: Effect) (r :: [Effect]) a. Sem (e : r) a -> Sem (Tagged k2 e : r) a
+ IncipitCore: tell :: forall o (r :: [Effect]). MemberWithError (Writer o) r => o -> Sem r ()
+ IncipitCore: throw :: forall e (r :: [Effect]) a. MemberWithError (Error e :: (Type -> Type) -> Type -> Type) r => e -> Sem r a
+ IncipitCore: transform :: forall e1 e2 (r :: [Effect]) a. Member e2 r => (forall (rInitial :: EffectRow) x. () => e1 (Sem rInitial) x -> e2 (Sem rInitial) x) -> Sem (e1 : r) a -> Sem r a
+ IncipitCore: try :: forall e (r :: [(Type -> Type) -> Type -> Type]) a. Member (Error e :: (Type -> Type) -> Type -> Type) r => Sem r a -> Sem r (Either e a)
+ IncipitCore: tryJust :: forall e (r :: [(Type -> Type) -> Type -> Type]) b a. Member (Error e :: (Type -> Type) -> Type -> Type) r => (e -> Maybe b) -> Sem r a -> Sem r (Either b a)
+ IncipitCore: type Effect = Type -> Type -> Type -> Type
+ IncipitCore: type EffectRow = [Effect]
+ IncipitCore: type Member (e :: k) (r :: [k]) = MemberNoError e r
+ IncipitCore: type MemberWithError (e :: Effect) (r :: [Effect]) = (MemberNoError e r, WhenStuck LocateEffect e r AmbiguousSend e r :: Constraint)
+ IncipitCore: type InterpretersFor (es :: [Effect]) (r :: [Effect]) = forall a. () => Sem Append es r a -> Sem r a
+ IncipitCore: type WithTactics (e :: Effect) (f :: Type -> Type) (m :: Type -> Type) (r :: [Effect]) = Tactics f m e : r :: Type -> Type -> Type -> Type : r
+ IncipitCore: type a ++ b = Append a b
+ IncipitCore: type family Members (es :: [k]) (r :: [k])
+ IncipitCore: unitT :: Functor f => Sem (WithTactics e f m r) (f ())
+ IncipitCore: untag :: forall {k1} (k2 :: k1) (e :: (Type -> Type) -> Type -> Type) (r :: [(Type -> Type) -> Type -> Type]) a. Sem (Tagged k2 e : r) a -> Sem (e : r) a
+ IncipitCore: withLowerToIO :: forall (r :: [(Type -> Type) -> Type -> Type]) a. Member (Embed IO) r => ((forall x. () => Sem r x -> IO x) -> IO () -> IO a) -> Sem r a
+ IncipitCore: writerToEndoWriter :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid o, Member (Writer (Endo o)) r) => Sem (Writer o : r) a -> Sem r a
+ IncipitCore: writerToIOAssocRFinal :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid o, Member (Final IO) r) => Sem (Writer o : r) a -> Sem r (o, a)
+ IncipitCore: writerToIOFinal :: forall o (r :: [(Type -> Type) -> Type -> Type]) a. (Monoid o, Member (Final IO) r) => Sem (Writer o : r) a -> Sem r (o, a)

Files

− changelog.md
@@ -1,6 +0,0 @@-# Unreleased--# 0.2.0.0--* Add `unitT`, returning `()` in a `Tactical` environment-* Hide Polysemy's effect GADT constructors
incipit-core.cabal view
@@ -5,30 +5,27 @@ -- see: https://github.com/sol/hpack  name:           incipit-core-version:        0.2.0.0+version:        0.3.0.0 synopsis:       A Prelude for Polysemy-description:    See <https://hackage.haskell.org/package/incipit/docs/Incipit.html>+description:    See https://hackage.haskell.org/package/incipit-core/docs/IncipitCore.html category:       Prelude-homepage:       https://github.com/tek/incipit#readme-bug-reports:    https://github.com/tek/incipit/issues+homepage:       https://github.com/tek/incipit-core#readme+bug-reports:    https://github.com/tek/incipit-core/issues author:         Torsten Schmits-maintainer:     haskell@tryp.io+maintainer:     hackage@tryp.io copyright:      2022 Torsten Schmits license:        BSD-2-Clause-Patent license-file:   LICENSE build-type:     Simple-extra-source-files:-    readme.md-    changelog.md  source-repository head   type: git-  location: https://github.com/tek/incipit+  location: https://github.com/tek/incipit-core  library   exposed-modules:-      Incipit-      Prelude+      Incipit.Exception+      IncipitCore   reexported-modules:       Control.Concurrent.STM     , Control.Concurrent.STM.TArray@@ -73,6 +70,7 @@       DeriveFoldable       DeriveFunctor       DeriveGeneric+      DeriveLift       DeriveTraversable       DerivingStrategies       DerivingVia@@ -93,7 +91,6 @@       MultiParamTypeClasses       MultiWayIf       NamedFieldPuns-      NoImplicitPrelude       OverloadedStrings       OverloadedLists       PackageImports@@ -106,6 +103,7 @@       RankNTypes       RecordWildCards       RecursiveDo+      RoleAnnotations       ScopedTypeVariables       StandaloneDeriving       TemplateHaskell@@ -118,15 +116,10 @@       UndecidableInstances       UnicodeSyntax       ViewPatterns-  ghc-options: -Wall -Wredundant-constraints -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Widentities+      NoImplicitPrelude+  ghc-options: -Wall -Wredundant-constraints -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Widentities -Wunused-packages   build-depends:-      base ==4.*-    , incipit-base ==0.2.0.0+      base >=4.13 && <4.17+    , incipit-base ==0.3.0.0     , polysemy >=1.6-  mixins:-      base hiding (Prelude)-    , incipit-base (Incipit as IncipitBase)-    , incipit-base hiding (Prelude, Incipit)-  if impl(ghc >= 8.10)-    ghc-options: -Wunused-packages   default-language: Haskell2010
− lib/Incipit.hs
@@ -1,83 +0,0 @@--- |This is the central module on which to build upon when constructing Preludes for Polysemy libraries.--- It reexports most core effects.-module Incipit (-  module IncipitBase,-  module Polysemy,-  module Polysemy.Async,-  module Polysemy.AtomicState,-  module Polysemy.Error,-  module Polysemy.Fail,-  module Polysemy.Input,-  module Polysemy.Output,-  module Polysemy.Reader,-  module Polysemy.Resource,-  module Polysemy.State,-  module Polysemy.Tagged,-  module Polysemy.Writer,-  module Incipit,-  send,-) where--import qualified Control.Exception as Base-import IncipitBase-import Polysemy hiding (run)-import Polysemy.Async (Async)-import Polysemy.Async hiding (Async, Await, Cancel)-import Polysemy.AtomicState (AtomicState)-import Polysemy.AtomicState hiding (AtomicGet, AtomicState)-import Polysemy.Error hiding (Catch, Throw)-import Polysemy.Fail (Fail)-import Polysemy.Fail hiding (Fail)-import Polysemy.Input (Input)-import Polysemy.Input hiding (Input)-import Polysemy.Internal (send)-import Polysemy.Internal.Kind (Append)-import Polysemy.Output (Output)-import Polysemy.Output hiding (Output)-import Polysemy.Reader hiding (Ask, Local)-import Polysemy.Resource hiding (Bracket, BracketOnError)-import Polysemy.State hiding (Get, Put)-import Polysemy.Tagged (Tagged)-import Polysemy.Tagged hiding (Tagged)-import Polysemy.Writer hiding (Listen, Pass, Tell)---- |Run an 'IO' via 'Embed' and catch all exceptions, returning 'Either'.-tryAny ::-  Member (Embed IO) r =>-  IO a ->-  Sem r (Either Text a)-tryAny =-  embed @IO . fmap (first show) . Base.try @SomeException-{-# inline tryAny #-}---- |Run an 'IO' via 'Embed' and catch all exceptions, returning 'Maybe'.-tryMaybe ::-  Member (Embed IO) r =>-  IO a ->-  Sem r (Maybe a)-tryMaybe =-  embed @IO . fmap rightToMaybe . Base.try @SomeException-{-# inline tryMaybe #-}---- |Run an 'IO' via 'Embed' and catch and ignore all exceptions.-ignoreException ::-  Member (Embed IO) r =>-  IO () ->-  Sem r ()-ignoreException =-  void . embed @IO . Base.try @SomeException-{-# inline ignoreException #-}---- |Convenience type alias for concatenating two effect rows.-type a ++ b =-  Append a b--infixr 5 ++---- |Convenience alias for @pureT ()@.-unitT ::-  Functor f =>-  Sem (WithTactics e f m r) (f ())-unitT =-  pureT ()-{-# inline unitT #-}
+ lib/Incipit/Exception.hs view
@@ -0,0 +1,132 @@+-- |Combinators that catch exceptions in 'IO' and embed them into 'Sem'.+module Incipit.Exception where++import qualified Control.Exception as Base+import Control.Exception (Exception, SomeException)+import Data.Bifunctor (first)+import Data.Either (Either)+import Data.Function ((.))+import Data.Functor (fmap, void)+import Data.Maybe (Maybe)+import Polysemy (Embed, Member, Sem, embed)+import System.IO (IO)+import System.IO.Error (IOError)++import Incipit.Either (rightToMaybe)+import Incipit.String.Conversion (show)+import Incipit.String.Reexport (Text)++-- |Run an 'IO' via 'Embed' and catch exceptions of type @e@, returning 'Either'.+-- Unlike all other combinators, this doesn't convert the exception to 'Text'.+tryIOE ::+  ∀ e r a .+  Exception e =>+  Member (Embed IO) r =>+  IO a ->+  Sem r (Either e a)+tryIOE =+  embed @IO . Base.try @e+{-# inline tryIOE #-}++-- |Run an 'IO' via 'Embed' and catch exceptions of type @e@, returning 'Either'.+tryIO ::+  ∀ e r a .+  Exception e =>+  Member (Embed IO) r =>+  IO a ->+  Sem r (Either Text a)+tryIO =+  embed @IO . fmap (first show) . Base.try @e+{-# inline tryIO #-}++-- |Run an 'IO' via 'Embed' and catch IOError, returning 'Either'.+tryIOError ::+  ∀ r a .+  Member (Embed IO) r =>+  IO a ->+  Sem r (Either Text a)+tryIOError =+  tryIO @IOError+{-# inline tryIOError #-}++-- |Run an 'IO' via 'Embed' and catch all exceptions, returning 'Either'.+tryAny ::+  ∀ r a .+  Member (Embed IO) r =>+  IO a ->+  Sem r (Either Text a)+tryAny =+  tryIO @SomeException+{-# inline tryAny #-}++-- |Run an 'IO' via 'Embed' and catch exceptions of type @e@, returning 'Maybe'.+tryIOMaybe ::+  ∀ e r a .+  Exception e =>+  Member (Embed IO) r =>+  IO a ->+  Sem r (Maybe a)+tryIOMaybe =+  fmap rightToMaybe . tryIO @e+{-# inline tryIOMaybe #-}++-- |Run an 'IO' via 'Embed' and catch 'IOError', returning 'Maybe'.+tryIOErrorMaybe ::+  ∀ r a .+  Member (Embed IO) r =>+  IO a ->+  Sem r (Maybe a)+tryIOErrorMaybe =+  tryIOMaybe @IOError+{-# inline tryIOErrorMaybe #-}++-- |Run an 'IO' via 'Embed' and catch all exceptions, returning 'Maybe'.+tryMaybe ::+  ∀ r a .+  Member (Embed IO) r =>+  IO a ->+  Sem r (Maybe a)+tryMaybe =+  tryIOMaybe @SomeException+{-# inline tryMaybe #-}++-- |Run an 'IO' via 'Embed' and catch and ignore exceptions of type @e@.+tryIO_ ::+  ∀ e r .+  Exception e =>+  Member (Embed IO) r =>+  IO () ->+  Sem r ()+tryIO_ =+  void . tryIO @e+{-# inline tryIO_ #-}++-- |Run an 'IO' via 'Embed' and catch and ignore 'IOError'.+tryIOError_ ::+  ∀ r .+  Member (Embed IO) r =>+  IO () ->+  Sem r ()+tryIOError_ =+  void . tryIO @IOError+{-# inline tryIOError_ #-}++-- |Run an 'IO' via 'Embed' and catch and ignore all exceptions.+tryAny_ ::+  ∀ r .+  Member (Embed IO) r =>+  IO () ->+  Sem r ()+tryAny_ =+  void . tryIO @SomeException+{-# inline tryAny_ #-}++-- |Run an 'IO' via 'Embed' and catch and ignore all exceptions.+ignoreException ::+  Member (Embed IO) r =>+  IO () ->+  Sem r ()+ignoreException =+  tryAny_+{-# inline ignoreException #-}+{-# deprecated ignoreException "renamed to 'tryAny_'" #-}
+ lib/IncipitCore.hs view
@@ -0,0 +1,57 @@+-- |This is the central module on which to build upon when constructing Preludes for Polysemy libraries.+-- It reexports most core effects.+module IncipitCore (+  module Incipit.Exception,+  module IncipitBase,+  module Polysemy,+  module Polysemy.Async,+  module Polysemy.AtomicState,+  module Polysemy.Error,+  module Polysemy.Fail,+  module Polysemy.Input,+  module Polysemy.Output,+  module Polysemy.Reader,+  module Polysemy.Resource,+  module Polysemy.State,+  module Polysemy.Tagged,+  module Polysemy.Writer,+  module IncipitCore,+  send,+) where++import Incipit.Exception+import IncipitBase+import Polysemy hiding (run)+import Polysemy.Async (Async)+import Polysemy.Async hiding (Async, Await, Cancel)+import Polysemy.AtomicState (AtomicState)+import Polysemy.AtomicState hiding (AtomicGet, AtomicState)+import Polysemy.Error hiding (Catch, Throw)+import Polysemy.Fail (Fail)+import Polysemy.Fail hiding (Fail)+import Polysemy.Input (Input)+import Polysemy.Input hiding (Input)+import Polysemy.Internal (send)+import Polysemy.Internal.Kind (Append)+import Polysemy.Output (Output)+import Polysemy.Output hiding (Output)+import Polysemy.Reader hiding (Ask, Local)+import Polysemy.Resource hiding (Bracket, BracketOnError)+import Polysemy.State hiding (Get, Put)+import Polysemy.Tagged (Tagged)+import Polysemy.Tagged hiding (Tagged)+import Polysemy.Writer hiding (Listen, Pass, Tell)++-- |Convenience type alias for concatenating two effect rows.+type a ++ b =+  Append a b++infixr 5 ++++-- |Convenience alias for @pureT ()@.+unitT ::+  Functor f =>+  Sem (WithTactics e f m r) (f ())+unitT =+  pureT ()+{-# inline unitT #-}
− lib/Prelude.hs
@@ -1,6 +0,0 @@--- |Exposing this module makes it possible to depend on the package without a mixin.-module Prelude (-  module Incipit-) where--import Incipit
− readme.md
@@ -1,61 +0,0 @@-# About--This library provides a `Prelude` for [Polysemy] libraries, building upon [incipit-base] and exporting most of-Polysemy's core modules.-For a more comprehensive variant that includes some basic libraries, consider [incipit].--# Usage--`incipit-core` exports `Prelude`, so in order to use it you only have to hide `Prelude` from `base`:--For `hpack`:-```yaml-dependencies:-  - name: base-    version: '>= 4 && < 5'-    mixin:-      - hiding (Prelude)-  - incipit-core >= 0.1.0.3-```--For `cabal`:-```cabal-build-depends:-    base >=4 && <5, incipit-core >= 0.1.0.3-mixins:-    base hiding (Prelude)-```--# Custom Prelude--In order to extend `incipit-core` with a local `Prelude`, the module `Incipit` has to be reexported and `incipit-core`'s-`Prelude` needs to be hidden:--```yaml-dependencies:-  - name: base-    version: '>= 4 && < 5'-    mixin:-      - hiding (Prelude)-  - name: incipit-core-    version: >= 0.1.0.3-    mixin:-      - hiding (Prelude)-```--```haskell-module Prelude (-  module Prelude,-  module Incipit,-) where--import Incipit--projectName :: Text-projectName =-  "spaceship"-```--[incipit-base]: https://hackage.haskell.org/package/incipit-base-[incipit]: https://hackage.haskell.org/package/incipit-[Polysemy]: https://hackage.haskell.org/package/polysemy