mod common;
mod effect;
mod handler;
mod lift;
pub mod computatio;
pub mod continuation_v2;
pub mod inference;
pub mod row_v2;
pub mod algebraic;
pub mod builtin;
pub mod handler_multi;
pub mod eff;
pub mod sem;
pub mod testimonium;
pub mod async_bridge;
pub use common::{
AsyncEffectus, ErrorEffectus, IoEffectus, PurusEffectus, RandomEffectus, ReaderEffectus,
ResourceEffectus, ScriptorEffectus, StatusEffectus, TempusEffectus,
};
pub use effect::{
CombinedEffectus, Effectus, EffectusCombine, EffectusProduces, EffectusWithValue,
};
pub use handler::{
ComposedHandler, EffectusHandler, EffectusHandlerAsync, EffectusHandlerExt, PanicHandler,
UnitHandler, run_effectus, run_effectus_async,
};
pub use lift::{
AsyncLift, ErrorLift, IoLift, LiftEffectus, PureLift, ReaderLift, StateLift, lift_async,
lift_error, lift_io, lift_pure, lift_reader, lift_state,
};
pub use row_v2::{
AsyncEffectV2, EffectId, EffectRow, EffectSet, EffectSetVacuus, ErrorEffectV2, ErrorRow,
IoEffectV2, IoRow, Pure, ReaderEffectV2, ReaderRow, StateEffectV2, StateRow, WriterEffectV2,
assert_disjoint, assert_has_effect, assert_has_effect_type, assert_subrow,
assert_without_effect, builtin_ids,
};
pub use computatio::{Computatio, combine_effectus, perform, sequence, traverse};
pub use inference::{
AnyEffects, BuilderRow, EffectTuple, EffectVar, EffectusBuilder, EffectusWitness, HasRow,
InferEffectus, IsPure, Merged, RowEquivalent, assert_requires_effects,
};
pub use algebraic::{
ClosureHandler, ComputatioStatus, DefaultHandler, EffectusAlgebraicus, HandledBy,
HandlerConfig, IdentityHandler, Operatio, TractatorAlgebraicus, default_handler, make_handler,
pure_effect, run_with_handler,
};
pub use builtin::{
AsyncOp, ConsolaOp, ElectioHandler, ElectioOp, ErrorHandler, ErrorOp, LectorHandler, LectorOp,
MockConsolaHandler, ScriptorHandler, ScriptorOp, StatusHandler, StatusOp,
};
pub use eff::{
Eff, EffResult, EffSuspension, Membrum, pure_eff, run_purus, send, sequence_eff, then,
traverse_eff,
};
pub use testimonium::{
Clausula, ClausulaGenus, Resumptio, SignumEffectus, Testimonium, TractatorEvidentia,
VectorTestimonium, run_with_evidence,
};
pub use sem::{
Sem, SemResult, SemSuspension, embed, pure_sem, raise, run_sem, send_sem, subsume, then_sem,
};
pub use async_bridge::{
EffAsync, eff_to_async, eff_to_lector, lector_to_eff_async, lift_async as lift_async_to_eff,
lift_eff, sequence_eff_async, traverse_eff_async,
};
pub use continuation_v2::{
Affinis, Continuatio, ContinuatioAffinis, ContinuatioPluries, ContinuatioSemel, Pluries, Semel,
TractatorContinuatio, TractatorResult,
};
pub use handler_multi::{TractatorMulti, TractatorMultiExt};