Small fixes
A selection of 80 fixes from 174 pull requests.
43.Optional alternative flags
Flag.optional rejected Flag.orElse trees before parsing. An unused single-leaf assertion was the only obstacle; removing it lets the existing parser handle alternatives.
123412345678912const parse: Parse<Option.Option<A>> = Effect.fnUntraced(function*(args) { getUnderlyingSingleOrThrow(param)
return yield* param.parse(args).pipe(const parse: Parse<Option.Option<A>> = (args) => param.parse(args).pipe( Effect.map(([leftover, value]) => [leftover, Option.some(value)] as const), // Catch both MissingOption (for flags) and MissingArgument (for positional arguments) Effect.catchTags({ MissingOption: () => Effect.succeed([args.arguments, Option.none()] as const), MissingArgument: () => Effect.succeed([args.arguments, Option.none()] as const) }) )})