1#![no_std]
4#![deny(missing_docs)]
5#![allow(clippy::too_many_arguments)]
6
7extern crate rust2fun_macros;
8#[cfg(feature = "std")]
9extern crate std;
10
11#[cfg(feature = "std")]
12macro_rules! if_std {
13 ( $( $code:tt )* ) => {
14 $( $code )*
15 }
16}
17
18#[cfg(not(feature = "std"))]
19macro_rules! if_std {
20 ( $( $code:tt )* ) => {};
21}
22
23pub mod and_then;
24pub mod ap_n;
25pub mod applicative;
26pub mod apply;
27pub mod bifunctor;
28pub mod combinator;
29pub mod contravariant;
30pub mod data;
31pub mod flatmap;
32pub mod functor;
33pub mod higher;
34pub mod invariant;
35pub mod map_n;
36pub mod monad;
37pub mod monoid;
38pub mod pure;
39pub mod semigroup;
40pub mod semigroupal;
41
42pub mod prelude {
44 pub use crate::and_then::*;
45 pub use crate::ap_n::*;
46 pub use crate::applicative::*;
47 pub use crate::apply::*;
48 pub use crate::bifunctor::*;
49 pub use crate::combinator::*;
50 pub use crate::contravariant::*;
51 pub use crate::data::*;
52 pub use crate::flatmap::*;
53 pub use crate::functor::*;
54 pub use crate::higher::*;
55 pub use crate::invariant::*;
56 pub use crate::map_n::*;
57 pub use crate::monad::*;
58 pub use crate::monoid::*;
59 pub use crate::pure::*;
60 pub use crate::semigroup::*;
61 pub use crate::semigroupal::*;
62 pub use crate::*;
63}