pub fn compose3<A, B, C, D, F, G, H>(f: F, g: G, h: H) -> impl Fn(A) -> Dwhere F: Fn(C) -> D, G: Fn(B) -> C, H: Fn(A) -> B,