interface Head { (list: ArrayLike): T | undefined; (list: string): string; } // Returns the first element of the given array. export const head = ((arr: ArrayLike | string) => arr && arr[0]) as Head