Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen (07 Jul 2020 14:23 UTC)

Re: New draft (#8) of and new "last call" for SRFI 189: Maybe and Either: optional container types Marc Nieper-Wißkirchen 07 Jul 2020 14:23 UTC

(1) What happened to exception-guard? The only thing that seemingly
spoke against it was the implementability. But we have seen that an
easy implementation with 'guard' (the R7RS version, which is the
corrected R6RS version) is possible.

(2) As a number of additions/changes have already been made since this
last-call period, I would like to ask for a new draft and a new
deadline if it doesn't mean too much work for you, Arthur, John, and
Wolfgang. In general, I'd rather see more drafts and multiple last
calls in favor of quality vs speed.

Am Do., 2. Juli 2020 um 07:56 Uhr schrieb Arthur A. Gleckler
<xxxxxx@speechcode.com>:
>
> I've just published draft #8 of SRFI 189. It was submitted by John Cowan, co-author of the SRFI.
>
> Here are John's comments on the draft:
>
> If we are already in LC, we should do a second LC.
>
> John and Wolfgang have made substantial additions to the text and the sample implementation, so they're requesting a second "last call" period. If you'd like to comment, please submit your feedback before 2020-07-08.
>
> Here is the commit summary:
>
> Implement multiple-argument versions of maybe=? and either=?.
> Update maybe / either-ref to Draft 7.
> Rename "generator" and "truth" conversions.
> values->either: Allow multiple default objects.
> Rename "two-values" conversions.
> Update maybe / either-compose to Draft 7.
> Add single-seed fast path to -unfold procedures.
> Tune single-value paths of maybe / either-ref.
> Further tuning of -ref procedures.
> Simplify maybe= and either=.
> Add tests for maybe= / either= with more than two arguments.
> Tune single-value path of -filter and -remove procedures.
> call successor during -unfold
> Revert "call successor during -unfold"
> Minor comment cleanup and page reformat.
> Simplify single-value fast paths with macros.
> Tests: rename macro.
> Remove artifact named let.
> Fix bug in maybe- / either-unfold and add test.
> unfold now an anamorphism, multitruth renamed to list-truth, Either protocol converters
> Add either->truth.
> Fix procedure name in error message.
> Rename "generation" protocol conversions.
> Add list->maybe and list->either.
> Add "list-truth" protocol conversions.
> Update maybe / either-unfold to Draft 8 versions.
> Fix missing paren.
> Update tests for Draft 8.
> Use assume to signal errors where the SRFI says "it is an error".
> Remove non-portable tests for error conditions.
> editorial
> Add truth->either. Update tests.
> slight cleanups
> editorial
> moved conversion to constructors
> Move conversions to constructor section.
> Copy list arguments to raw-just, etc., where necessary.
> Additional tuning of single-value payload paths.
> Minor typo and grammatical fixes.
> Fix typo.
> minor correction
> New syntactic forms: Initial import.
> and, or, let*
> Ensure base values of -and-let* forms are unwrapped.
> Add type checks to and/or macros.
> Fix typo.
> editorial
> Fix -and-let* bugs which caused correct expression to raise errors.
> clarify maybe-let*
> Revert "Fix -and-let* bugs which caused correct expression to raise errors."
> let* forms: Enforce Maybe/Either-valued claws in body-less cases.
> Rename macros: and-let* -> let*.
> Fix names in macro body.
> Add tests for and, or, and let* forms.
> Replace unused pattern variable with underscore.
> Add generation->either and either->generation.
> Tests for Either generation conversions.
> Tuning: eliminate maybe-ref in several procedures.
> Tuning: eliminate some uses of -bind and -ref procedures.
> Eliminate -bind and -ref from map and fold procedures.
> Minor style changes. Comment improvement.
> Minor tuning of either-swap.
> Use helper type-check macro in conditional forms.
> Refactor maybe/either-let* to efficiently catch ill-typed bodies.
> Switch to new standard SRFI header format.
> Update abstract.
> Remove trailing whitespace.
> Publish eighth draft.
>
> Here's the diff:
>
> https://github.com/scheme-requests-for-implementation/srfi-189/compare/draft-7..draft-8
>
> Regards,
>
>
> SRFI Editor