#[cfg(feature = "async")]
pub use crate::effects::{
AsyncEffectus as AsyncEffect,
ComposedHandler,
Computatio as Computation,
ComputatioStatus as ComputationStatus,
ConsolaOp as ConsoleOp,
Continuatio as Continuation,
ContinuatioAffinis as AffineContinuation,
ContinuatioPluries as MultiContinuation,
ContinuatioSemel as OnceContinuation,
DefaultHandler,
Eff,
EffResult,
EffectRow,
EffectSet,
EffectSetVacuus as EmptyRow,
Effectus as Effect,
EffectusAlgebraicus as AlgebraicEffect,
EffectusHandler as EffectHandler,
EffectusHandlerAsync as AsyncEffectHandler,
ErrorEffectus as ErrorEffect,
ErrorHandler,
ErrorOp,
IdentityHandler,
IoEffectus as IoEffect,
LectorHandler as ReaderHandler,
LectorOp as ReaderOp,
Operatio as Operation,
PurusEffectus as PureEffect,
RandomEffectus as RandomEffect,
ReaderEffectus as ReaderEffect,
ResourceEffectus as ResourceEffect,
ScriptorEffectus as WriterEffect,
ScriptorHandler as WriterHandler,
ScriptorOp as WriterOp,
Sem,
SemResult,
StatusEffectus as StateEffect,
StatusHandler as StateHandler,
StatusOp as StateOp,
TempusEffectus as TimeEffect,
TractatorAlgebraicus as AlgebraicHandler,
TractatorContinuatio as ContinuationHandler,
TractatorMulti as MultiHandler,
TractatorResult as HandlerResult,
pure_eff as pure,
pure_sem,
raise,
send,
};
#[cfg(feature = "alloc")]
pub use crate::refined::{
Aut as Xor,
Et as And,
Falsum as False,
Impar as Odd,
Implicatio as Implies,
IntraFines as InRange,
MagnitudoExacta as ExactSize,
MagnitudoMaxima as MaxSize,
MagnitudoMinima as MinSize,
MaiorQuam as GreaterThan,
MinorQuam as LessThan,
Negativus as Negative,
Non as Not,
NonNegativus as NonNegative,
NonNullus as NonZero,
NonVacuus as NonEmpty,
Par as Even,
Positivus as Positive,
Praedicatum as Predicate,
Refinatus as Refined,
RefinementError,
Vel as Or,
Verum as True,
};
pub use crate::hlist::{Coniunctio as Cons, HList, Nihil as Nil};
pub use crate::disiunctio::{
Absurdum, Disiunctio, DisiunctioInjector as Injector, DisiunctioUninjector as Uninjector,
};
pub use crate::gat::{Applicative, Apply, Functor, Monad};
pub use crate::optics::{
Ad as At,
AdExt as AtExt,
AdInserere as AtInsert,
AdRemovere as AtRemove,
Aequivalentia as Iso,
AequivalentiaRef as IsoRef,
Aspectus as Lens,
AspectusAd as AtLens,
AspectusRef as LensRef,
ComposedAequivalentia as ComposedIso,
ComposedAspectus as ComposedLens,
ComposedDivisio as ComposedPrism,
Divisio as Prism,
DivisioRef as PrismRef,
Iteratio as Traversal,
IteratioAffinis as Affine,
Ix as Index,
aequivalentia as iso,
aspectus as lens,
aspectus_ad as at_lens,
divisio as prism,
identitas as identity_iso,
iteratio_affinis as affine,
iteratio_option as affine_option,
permutatio as swap_iso,
};
pub use crate::transformers::{EitherT, MonadTransformer, OptionT as MaybeT};
#[cfg(feature = "alloc")]
pub use crate::transformers::{ContinuatioT as ContT, ReaderT, Scriptor as Writer, StateT};
pub use crate::datatypes::{
Absurdum as Void,
Aut as Either,
Const,
Identitas as Identity,
Phantasma as Phantom,
Pigritia as Lazy,
Unitas as Unit,
};
#[cfg(feature = "distributed")]
pub use crate::distributed::{
AdministratorGregis as ClusterManager,
AffinitasNodi as NodeAffinity,
CaputNuntii as MessageHeader,
ComputatioDistributa as DistributedComputation,
ConfiguratioGregis as ClusterConfig,
CorpusNuntii as MessageBody,
EffectusDistributus as DistributedEffect,
Expressio as Expression,
FacultatesNodi as NodeCapabilities,
GenusNuntii as MessageType,
InformationesNodi as NodeInfo,
InscriptioNodi as NodeAddress,
MethodusInventionis as DiscoveryMethod,
MunusNodi as NodeRole,
NodusIdentitas as NodeId,
NodusSerializabilis as SerializableNode,
Nuntius as Message,
ProtocollumConsensus as ConsensusProtocol,
SalusGregis as ClusterHealth,
StatusGregis as ClusterState,
StatusNodi as NodeStatus,
TabulaDirigendi as RoutingTable,
TractatorDirigens as RoutingHandler,
TractatorDistributus as DistributedHandler,
ValorConstans as ConstValue,
VersioProtocolli as ProtocolVersion,
};
#[cfg(feature = "supervision")]
pub use crate::supervision::{
Arbor as SupervisionTree, StrategiaSupervisionis as SupervisionStrategy,
};
#[cfg(feature = "alloc")]
pub use crate::tracing::{
Attributum as Attribute, AttributumValue as AttributeValue,
CollectorMemoriae as MemoryCollector, CollectorNullus as NullCollector,
CollectorVestigium as TraceCollector, ConfigVestigium as TraceConfig,
ContextusVestigium as TraceContext, EventusId as EventId, EventusKind as EventKind,
EventusVestigium as TraceEvent, Gradus as Level, Samplator as Sampler, SpatiumId as SpanId,
TractatorVestigians as TracingHandler, VestigiumId as TraceId,
};
#[cfg(feature = "async")]
pub use crate::async_core::{Fibra as Fiber, FibraId as FiberId, FibraStatus as FiberStatus};
pub use crate::comonad::Vestigium as Traced;
pub use crate::foldable::Foldable;
pub mod prelude {
#[cfg(feature = "async")]
pub use super::{
AlgebraicEffect,
AlgebraicHandler,
Computation,
Eff,
Effect,
EffectHandler,
EffectRow,
EmptyRow,
ErrorEffect,
IoEffect,
ReaderEffect,
StateEffect,
pure,
send,
};
#[cfg(feature = "alloc")]
pub use super::{
InRange,
NonEmpty,
NonNegative,
Positive,
Predicate,
Refined,
};
pub use super::{
Applicative,
Cons,
Either,
Foldable,
Functor,
HList,
Iso,
Lens,
Monad,
Nil,
Prism,
iso,
lens,
prism,
};
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_hlist_aliases() {
let list: HList![i32, bool, &str] = crate::hlist![1, true, "hello"];
assert_eq!(list.head, 1);
}
#[test]
fn test_either_alias() {
let e: Either<&str, i32> = Either::Dexter(42);
assert!(e.is_dexter());
}
}