I have a discriminated union:
type Union = { a: "foo", b: string, c: number } | {a: "bar", b: boolean }
I need to derive