export function compose<T, U, V, X extends any[]>(
  f: (x: U) => V,
  g: (y: T) => U,
  h: (...z: X) => T
): {