diff --git a/src/flow/speculative.rs b/src/flow/speculative.rs index 9dd1586..4d3dbce 100644 --- a/src/flow/speculative.rs +++ b/src/flow/speculative.rs @@ -1,6 +1,4 @@ -use fail::*; - -use crate::func::*; +use crate::func::{applicative_select::*, fail::*, *}; type Frwa<'a, A, E0, E1, Fallible> = Wrap<'a, Result, E1>, >::T>; diff --git a/src/func.rs b/src/func.rs index 7903319..b47a9a8 100644 --- a/src/func.rs +++ b/src/func.rs @@ -7,12 +7,12 @@ //! * //! * -mod applicative_select; +pub mod applicative_select; pub mod class_prelude; pub mod context; pub mod controlflow; pub mod derivations; -mod extensions; +pub mod extensions; pub mod fail; pub mod instances; pub mod local; @@ -23,9 +23,7 @@ pub mod test_suite; pub mod tests; pub mod weakfunctorany; -pub use self::applicative_select::{ - ApplicativeSelect, ApplicativeSelectExt, Selected, SelectedWrapped, -}; +use self::applicative_select::ApplicativeSelect; use self::controlflow::{ControlFlow, Iterative}; pub use self::extensions::MonadExt; @@ -126,5 +124,3 @@ pub trait Monad<'a>: Applicative<'a> { Self::bind(ffa, |fa| fa) } } - -impl<'a, T: Monad<'a>> MonadExt<'a> for T {} diff --git a/src/func/class_prelude.rs b/src/func/class_prelude.rs index 696bc2a..1183210 100644 --- a/src/func/class_prelude.rs +++ b/src/func/class_prelude.rs @@ -1,4 +1,5 @@ pub use super::{ + applicative_select::{ApplicativeSelect, ApplicativeSelectExt, Selected, SelectedWrapped}, controlflow::{ControlFlow, Iterative, IterativeWrapped}, extensions::MonadExt, fail::{Fail, MonadFail, MonadFailAny, MonadFailAnyExt, WrapE}, @@ -6,8 +7,8 @@ pub use super::{ local::LocalFunctor, shared::{SharedFunctor, SharedFunctorAny}, weakfunctorany::WeakFunctorAny, - Applicative, ApplicativeLA2, ApplicativeSelect, ApplicativeSelectExt, ApplicativeSeq, - ApplicativeTuple, Functor, Monad, Pure, Selected, SelectedWrapped, WeakFunctor, Wrap, + Applicative, ApplicativeLA2, ApplicativeSeq, ApplicativeTuple, Functor, Monad, Pure, + WeakFunctor, Wrap, }; #[cfg(test)] pub use super::{test_suite, tests}; diff --git a/src/func/extensions.rs b/src/func/extensions.rs index fbb2828..4405e2d 100644 --- a/src/func/extensions.rs +++ b/src/func/extensions.rs @@ -20,3 +20,5 @@ pub trait MonadExt<'a>: Monad<'a> { Self::join(Self::la2(fa, fb, f)) } } + +impl<'a, T: Monad<'a>> MonadExt<'a> for T {}