export function isOnFunction <T> (...fns: (keyof T)[]): (value?: unknown) => value is T {
  return (value?: unknown): value is T =>
    isFunction(value) &&
    fns.every((f) => isFunction((value as T)[f]));
}