Type Narrowing on Discriminated Union in TypeScript - Effect Community