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 +0/−6
- incipit-core.cabal +14/−21
- lib/Incipit.hs +0/−83
- lib/Incipit/Exception.hs +132/−0
- lib/IncipitCore.hs +57/−0
- lib/Prelude.hs +0/−6
- readme.md +0/−61
− 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