message: Fix date-fns util type leniency mismatch when implementing the Utils interface
diff: @@ -30,49 +30,85 @@ import { Utils } from '../typings/utils';
  export default class DateFnsUtils implements Utils<Date> {
  public locale?: Locale;
  - public addDays = addDays;
  + public dateTime12hFormat = 'MMMM do hh:mm aaaa';
  +
  + public dateTime24hFormat = 'MMMM do HH:mm';
  +
  + public time12hFormat = 'hh:mm a';
  - public isValid = isValid;
  + public time24hFormat = 'HH:mm';
  - public getDiff = differenceInMilliseconds;
  + public dateFormat = 'MMMM do';
  - public isAfter = isAfter;
  + constructor({ locale }: { locale?: Locale } = {}) {
  + this.locale = locale;
  + }
  - public isBefore = isBefore;
  + // Note: date-fns input types are more lenient than this adapter, so we need to expose our more
  + // strict signature and delegate to the more lenient sigtature. Otherwise, we have downstream type errors upon usage.
  - public startOfDay = startOfDay;
  + public addDays(value: Date, count: number) {
  + return addDays(value, count);
  + }
  - public endOfDay = endOfDay;
  + public isValid(value: Date) {
  + return isValid(value);
  + }
  - public getHours = getHours;
  + public getDiff(value: Date, comparing: Date) {
  + return differenceInMilliseconds(value, comparing);
  + }
  - public setHours = setHours;
  + public isAfter(value: Date, comparing: Date) {
  + return isAfter(value, comparing);
  + }
  - public setMinutes = setMinutes;
  + public isBefore(value: Date, comparing: Date) {
  + return isBefore(value, comparing);
  + }
  - public getSeconds = getSeconds;
  + public startOfDay(value: Date) {
  + return startOfDay(value);
  + }
  - public setSeconds = setSeconds;
  + public endOfDay(value: Date) {
  + return endOfDay(value);
  + }
  - public isSameDay = isSameDay;
  + public getHours(value: Date) {
  + return getHours(value);
  + }
  - public getStartOfMonth = startOfMonth;
  + public setHours(value: Date, count: number) {
  + return setHours(value, count);
  + }
  - public getYear = getYear;
  + public setMinutes(value: Date, count: number) {
  + return setMinutes(value, count);
  + }
  - public setYear = setYear;
  + public getSeconds(value: Date) {
  + return getSeconds(value);
  + }
  - public dateTime12hFormat = 'MMMM do hh:mm aaaa';
  + public setSeconds(value: Date, count: number) {
  + return setSeconds(value, count);
  + }
  - public dateTime24hFormat = 'MMMM do HH:mm';
  + public isSameDay(value: Date, comparing: Date) {
  + return isSameDay(value, comparing);
  + }
  - public time12hFormat = 'hh:mm a';
  + public getStartOfMonth(value: Date) {
  + return startOfMonth(value);
  + }
  - public time24hFormat = 'HH:mm';
  + public getYear(value: Date) {
  + return getYear(value);
  + }
  - public dateFormat = 'MMMM do';
  - constructor({ locale }: { locale?: Locale } = {}) {
  - this.locale = locale;
  + public setYear(value: Date, count: number) {
  + return setYear(value, count);
  }
  public date(value?: any) {
  