Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding functions and docs to Optional #2

Closed
rlmark opened this issue May 20, 2021 · 3 comments
Closed

Adding functions and docs to Optional #2

rlmark opened this issue May 20, 2021 · 3 comments

Comments

@rlmark
Copy link
Contributor

rlmark commented May 20, 2021

Before submitting a pull request, please doublecheck that you have included

  • a clear PR description (don't bother to include issues numbers).
  • Docs linked for types and terms as needed
  • Author and License metadata linked
  • Tests, where appropriate

Code review

pull-request.load https://github.com/unisonweb/base:.trunk.Optional https://github.com/rlmark/my-unison-work:.prs.base._addingOptionalFunctions.Optional

Added definitions:

 None                  : Optional a
 Some                  : a -> Optional a
 ┌ Optional.toList.doc : Doc (+2 metadata)
 └ toList.doc          : Doc (+2 metadata)
 contains              : a -> Optional a -> Boolean (+2 metadata)
 contains.doc          : Doc (+2 metadata)
 exists                : (a ->{g} Boolean) -> Optional a ->{g} Boolean (+2 metadata)
 exists.doc            : Doc (+2 metadata)
 filter                : (a ->{g} Boolean) -> Optional a ->{g} Optional a (+2 metadata)
 filter.doc            : Doc (+2 metadata)
 flatMap               : (a ->{𝕖} Optional b) -> Optional a ->{𝕖} Optional b
 fold                  : '{g} b -> (a ->{g} b) -> Optional a ->{g} b (+2 metadata)
 fold.doc              : Doc (+2 metadata)
 forAll                : (a ->{g} Boolean) -> Optional a ->{g} Boolean (+2 metadata)
 forAll.doc            : Doc (+2 metadata)
 getOrElse             : a -> Optional a -> a (+2 metadata)
 getOrElse.doc         : Doc (+2 metadata)
 isNone                : Optional a -> Boolean (+3 metadata)
 isNone.doc            : Deprecated (+3 metadata)
 isSome                : Optional a -> Boolean (+3 metadata)
 isSome.doc            : Deprecated (+2 metadata)
 map                   : (a ->{𝕖} b) -> Optional a ->{𝕖} Optional b
 map2                  : (a ->{𝕖} b ->{𝕖} c) -> Optional a -> Optional b ->{𝕖} Optional c
 mapOptional           : (a ->{g} Optional b) -> [a] ->{g} [b] (+2 metadata)
 mapOptional.doc       : Doc (+2 metadata)
 orDefault             : a -> Optional a -> a
 orDefault.doc         : Doc (+2 metadata)
 orElse                : Optional a -> Optional a -> Optional a
 toAbort               : Optional a ->{Abort} a (+2 metadata)
 toList                : Optional a -> [a] (+2 metadata)
 unzip                 : Optional (a, b) -> (Optional a, Optional b) (+2 metadata)
 unzip.doc             : Doc (+2 metadata)
 zip                   : Optional a -> Optional b -> Optional (a, b) (+2 metadata)
 zip.doc               : Doc (+2 metadata)

 patch patch (added 86 updates)
@pchiusano
Copy link
Member

A couple things:

  • Can you issue this PR against base_v2 instead of the current base?
  • It might be that this is against the wrong base namespace since Optional.flatMap exists in base_v2.
    • Possibly related: looks like isSome.doc and isNone.doc are using the old deprecated doc type
  • Since this PR isn't updating any existing definitions, it should have an empty patch - you can just delete.patch Optional.patch in your PR namespace. Local churn like this when you're adding new definitions can just be deleted when you're prepping the PR.

@rlmark
Copy link
Contributor Author

rlmark commented Jun 16, 2021

Ok! @pchiusano thanks for the help and pointers! Trying this one again! This time against the actual right version of .base


  The changes summarized below are available for you to review, using the following command:
  
    pull-request.load https://github.com/unisonweb/base:.trunk.Optional https://github.com/rlmark/my-unison-repo2:.myBase.Optional
  
  Added definitions:
  
     contains        : a -> Optional a -> Boolean (+2 metadata)
     contains.doc    : Doc (+2 metadata)
     exists          : (a ->{g} Boolean) -> Optional a ->{g} Boolean (+2 metadata)
     exists.doc      : Doc (+2 metadata)
     filter          : (a ->{g} Boolean) -> Optional a ->{g} Optional a (+2 metadata)
     filter.doc      : Doc (+2 metadata)
     fold            : '{g} b -> (a ->{g} b) -> Optional a ->{g} b (+2 metadata)
     fold.doc        : Doc (+2 metadata)
     forAll          : (a ->{g} Boolean) -> Optional a ->{g} Boolean (+2 metadata)
     forAll.doc      : Doc (+2 metadata)
     getOrElse       : a -> Optional a -> a (+2 metadata)
     getOrElse.doc   : Doc (+2 metadata)
     mapOptional     : (a ->{g} Optional b) -> [a] ->{g} [b] (+2 metadata)
     mapOptional.doc : Doc (+2 metadata)
     toList.doc      : Doc (+2 metadata)
     unzip           : Optional (a, b) -> (Optional a, Optional b) (+2 metadata)
     unzip.doc       : Doc (+2 metadata)
     zip             : Optional a -> Optional b -> Optional (a, b) (+2 metadata)
     zip.doc         : Doc (+2 metadata)
     

@pchiusano
Copy link
Member

Great, this is all set. Made a few minor fixups to the docs - there was a stray closing } and I turned an inline signature to just a link to {Universal.===}.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants