type M = { p: string }; type O = { m: () => M }; type X = T; type FFG = T extends O ? X> : never; // error!