typelevel / mouse

A small companion to cats
MIT License
371 stars 66 forks source link

Proposal: Enhance navigation in the root `mouse` package #362

Open danicheg opened 2 years ago

danicheg commented 2 years ago

There are a bunch of different syntaxes in the mouse - for boxed primitive-like data types (Int, Long, Boolean, etc), for collections (Map, Set, List, etc), for nested things (F[Either[A, B]], F[Option[A]], etc). And as you probably already guessed, we can combine some of those in groups - mouse.collections, mouse.nested, etc. It'd be a bit nicer from a design perspective, as well as from navigation. But this would require us to do a new major release since that change isn't binary compatible. What do you think about it?

benhutchison commented 2 years ago

I wonder if we can gather some data from mouse usage in OS codebases to inform this, ie understand how much is import mouse.all._ vs specific imports?

danicheg commented 2 years ago

We can do weak analytics via search on Github. And on the whole, I think we can save mouse.all, because it's kinda super-import of all syntaxes.

benhutchison commented 2 years ago

Ok, those search results reveal much more targeted use of mouse imports than I'd expected. I tend to import all myself. Suggesting that some emphasis on convenient groupings of mouse functionality would be appreciated by users.

On Tue, 30 Aug 2022, 4:58 pm Daniel Esik, @.***> wrote:

We can do weak analytics via search on Github https://github.com/search?l=Scala&q=%22import+mouse%22&type=Code. And on the whole, I think we can save mouse.all, because it's kinda super-import of all syntaxes.

— Reply to this email directly, view it on GitHub https://github.com/typelevel/mouse/issues/362#issuecomment-1231230912, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAXJZHRCEWUZCSCXDKP6QTV3WWJTANCNFSM576MMYKQ . You are receiving this because you commented.Message ID: @.***>

danicheg commented 2 years ago

@benhutchison thanks for your thoughts! I'll return with draft PR after a while then.