pub type SyncProvider<I, O> = Box<dyn Fn(&I) -> Result<O, DynError> + Send + Sync>;
Sync provider callable: (input) -> Result<O, DynError>.
(input) -> Result<O, DynError>
pub struct SyncProvider<I, O>(/* private fields */);