Preventing non-branded types from being assigned to branded types in TypeScript - Effect Community