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