#[fp_macros::document_module]
mod inner {
use {
crate::{
classes::*,
kinds::*,
},
fp_macros::*,
};
#[document_type_parameters(
"The lifetime of the values.",
"The index type.",
"The source type of the structure.",
"The target type of the structure after an update.",
"The source type of the focus.",
"The target type of the focus after an update."
)]
#[document_parameters("The indexed traversal function itself.")]
pub trait IndexedTraversalFunc<'a, I, S, T, A, B> {
#[document_signature]
#[document_type_parameters("The applicative context.")]
#[document_parameters("The indexed mapping function.", "The structure to traverse.")]
#[document_returns("The traversed structure wrapped in the applicative context.")]
#[document_examples]
fn apply<M: Applicative>(
&self,
f: Box<dyn Fn(I, A) -> Apply!(<M as Kind!( type Of<'c, U: 'c>: 'c; )>::Of<'a, B>) + 'a>,
s: S,
) -> Apply!(<M as Kind!( type Of<'c, U: 'c>: 'c; )>::Of<'a, T>)
where
Apply!(<M as Kind!( type Of<'c, U: 'c>: 'c; )>::Of<'a, B>): Clone;
}
}
pub use inner::*;