exporttypeGuard<A, B extends A> = (value: A) => value is B
exporttypePredicate<A> = (value: A) =>booleanexporttypeUnaryFn<A, B> = (value: A) => B
exporttypeBinaryFn<A, B, C> = (a: A, b: B) => C
exporttypeReducer<A, B> = (accumulator: B, value: A) => B