
// This test times out quite reliably without the OpenT indirection in
// Flow_js_utils.Instantiation_kit.mk_distributive_tparam_subst_fn

type BaseProps = Readonly<{
  'aria-00'?: string,
  'aria-01'?: string,
  'aria-02'?: string,
  'aria-03'?: string,
  'aria-04'?: string,
  'aria-05'?: string,
  'aria-06'?: string,
  'aria-07'?: string,
  'aria-08'?: string,
  'aria-09'?: string,
  'aria-10'?: string,
  'aria-11'?: string,
  'aria-12'?: string,
  'aria-13'?: string,
  'aria-14'?: string,
  'aria-15'?: string,
  'aria-16'?: string,
  'aria-17'?: string,
  'aria-18'?: string,
  'aria-19'?: string,
  'aria-20'?: string,
  'aria-21'?: string,
  'aria-22'?: string,
  'aria-23'?: string,
  'aria-24'?: string,
  'aria-25'?: string,
  'aria-26'?: string,
  'aria-27'?: string,
  'aria-28'?: string,
  'aria-29'?: string,
  'aria-30'?: string,
  'aria-31'?: string,
  'aria-32'?: string,
  'aria-33'?: string,
  'aria-34'?: string,
  'aria-35'?: string,
  'aria-36'?: string,
  'aria-37'?: string,
  'aria-38'?: string,
  'aria-39'?: string,
  'aria-40'?: string,
  'aria-41'?: string,
  'aria-42'?: string,
  'aria-43'?: string,
  'aria-44'?: string,
  'aria-45'?: string,
  'aria-46'?: string,
  'aria-47'?: string,
  'aria-48'?: string,
  'aria-49'?: string,
  'aria-50'?: string,
  'aria-51'?: string,
  'aria-52'?: string,
  'aria-53'?: string,
  'aria-54'?: string,
  'aria-55'?: string,
  'aria-56'?: string,
  'aria-57'?: string,
  'aria-58'?: string,
  'aria-59'?: string,
  'aria-60'?: string,
  'aria-61'?: string,
  'aria-62'?: string,
  'aria-63'?: string,
  'aria-64'?: string,
  'aria-65'?: string,
  'aria-66'?: string,
  'aria-67'?: string,
  'aria-68'?: string,
  'aria-69'?: string,
  'aria-70'?: string,
  'aria-71'?: string,
  'aria-72'?: string,
  'aria-73'?: string,
  'aria-74'?: string,
  'aria-75'?: string,
  'aria-76'?: string,
  'aria-77'?: string,
  'aria-78'?: string,
  'aria-79'?: string,
  'aria-80'?: string,
  'aria-81'?: string,
  'aria-82'?: string,
  'aria-83'?: string,
  'aria-84'?: string,
  'aria-85'?: string,
  'aria-86'?: string,
  'aria-87'?: string,
  'aria-88'?: string,
  'aria-89'?: string,
  'aria-90'?: string,
  'aria-91'?: string,
  'aria-92'?: string,
  'aria-93'?: string,
  'aria-94'?: string,
  'aria-95'?: string,
  'aria-96'?: string,
  'aria-97'?: string,
  'aria-98'?: string,
  'aria-99'?: string,
  element: string,
  abc: string,
}>;

type Omit1 = Readonly<{
  ...Omit<BaseProps, 'element'>,
}>;

type Omit2 = Readonly<{
  ...Omit<Omit1, 'abc'>,
  moreStuff?: string,
}>;

type Omit3 = {
  ...Omit<Omit2, 'moreStuff'>,
  evenMoreStuff?: string,
};

type Final = Omit<Omit3, 'evenMoreStuff'>;

declare const delegated: {...Final};
delegated as Final;
