pub type Df<A, B, C> = Arc<dyn for<'a> Fn(&'a mut C, A) -> AsyncRec<'a, Result<B>> + Send + Sync + 'static>;
pub struct Df<A, B, C> { /* private fields */ }