const E = S.union(
S.struct({type: S.literal('foo'), data: S.string}),
S.struct({type: S.literal('bar'), data: S.number}),
S.struct({type: S.string})
)
const E = S.union(
S.struct({type: S.literal('foo'), data: S.string}),
S.struct({type: S.literal('bar'), data: S.number}),
S.struct({type: S.string})
)