Comments (6)
Mouse is a 10 year old, stable library. Renaming would likely be disruptive and IMO not welcomed by many/most users. The potential benefits seem intangible and may not come to be, but the costs of a rename are definite.
from mouse.
A while ago there was a similar request to merge the mouse into the main cats' repository including potential renaming. From my feelings, nothing has changed since then. I'd stand for having it separate as it has been for ten years as pointed out by Ben. I struggle to say that any rebranding would make mouse
famous.
from mouse.
In another direction: there's probably a subset of Mouse's syntax that's proven to be particularly commonly useful. And other methods that don't see as much use.
If we could somehow quantify what the most useful parts of Mouse's API were, I'd be supportive of migrating those into the syntax modules of Cats, so that more people can benefit from them without an extra library. It would be dependent upon the Cats maintainers agreeing of course.
@geirolz would that achieve some of what you're seeking?
from mouse.
Perhaps, we could consider consolidating some syntax like OptionOps
and TryOps
in one place – either "cats" or "mouse".
Personally, I often feel a bit annoyed when I need import those syntaxes from both places.
One of those syntaxes I use the most is the cata
function. For types Option
and Try
it is implemented in "mouse" but "cats" has its own cata
/cataF
for OptionT
for example.
On the other hand, due to the struggle we can face fighting binary/source compatibilities that idea may not be worth it...
from mouse.
Yep, compatibility tax (as well as having a lot of deprecated API) makes it itty-bitty beneficial from my point of view.
This might be worth the hassle only in Cats 3.0. But it's barely possible we will see it in the next N years.
from mouse.
I see your points, I don't think renaming it self can make mouse famous but I think that making it easier to use improve the adoption. In any case I feel your doubts about this, totally understandable.
@benhutchison that is a good idea, I believe that everything related to F[Either[L, R]]
, F[Option[A]]
, F[Boolean]
, Either
, Try
, Option
should be taken in account to be moved. Those helps transformation avoiding EitherT
and OptionT
that sometimes are used just for convenient syntax. I don't see those syntaxes as polished but as a basic operators to manipulate the shape.
I admit that it's a bit annoying that cats doesn't have method to simply combine and lift data.
Inconsistency with Mouse:
- cats has
Nested
-> mouse has convenient syntax to avoid lifting to and fromNested
, all the*In
methods - cats has
EitherT
andOptionT
-> mouse has the syntax to liftAny
,F[Any]
into monad transformer - cats has
Any.asRight
/Any.asLeft
-> mouse hasAny.asRightF
/Any.asLeftF
* - cats has
Any.some
-> mouse hasAny.someF
* - cats has
F[Boolean].ifM
-> mouse hasandM
/orM
Try.toEither
is defined in both Scala and Mouse- cats has
List.toNel
-> mouse hasList.tailOption
andList.tailOrEmpty
- cats has
Set.toNes
-> mouse hasSet.tailOption
andSet.tailOrEmpty
Inconsistency with Scala:
- scala has
Try.toOption
-> mouse hasOption.toTry
I'll try to enrich the list as soon as possible.
*
inconsistent between Either and Option, but this is another topic
from mouse.
Related Issues (20)
- parseUrl for String on the JVM HOT 1
- Publish for Cats 2.1.0? HOT 1
- Offer of code, int/long to le/be endian array and string to zero terminated array support HOT 1
- Scala 3 migration HOT 4
- Add whenA/unlessA extension methods for Boolean HOT 1
- mapKeys method isn't pure HOT 2
- Proposal: rename master to main HOT 3
- Microsite for `mouse` HOT 2
- whenA and unlessA do not have lazy functions HOT 6
- Which Scala 3 version should be the base for `mouse`? HOT 4
- please review notes for 1.0.8 release HOT 2
- consider merging into cats HOT 7
- bad option `-doc-external-doc` on Scala 3 HOT 6
- Fix publishing HOT 2
- Adding mapValuesF to MapOps HOT 3
- Adding `toRightIn` and `toOptionIn` HOT 4
- Adding `mapInF` HOT 3
- Proposal: Enhance navigation in the root `mouse` package HOT 4
- Suggestion: Add `parFlatMapN` HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mouse.