Kitchen sink export for simple prototyping
hejfelix opened this issue · 6 comments
It would be nice to have a batteries included object to just import all members and givens to get started.
It feels like a lot to import cats, cats effect, fs2, calico with all the correct implicits and syntax just to get rolling.
Alternatively it could be part of the "WebApp" (forgot the exact name).
Yeah, gathering all the imports tends to be an issue with Typelevel libraries :)
We were just discussing this on the Typelevel Discord. I think the obvious strategy would be to use Scala 3 export
, but it sounds like IDEs have some trouble with it right now 😕 see scalameta/metals#4325
Related:
What a timing, I wanted to make this issue as well :P, and congratulations on the first milestone 0.2 release!.
One added bonus of providing the "kitchen sink", is that it could be used as a gateway drug, through docs or examples, to Cats Effect, fs2 without people realizing it.
Now the amount of Scala frontend developers is tiny(relatively speaking) of course, but it could be a way to get non-Scala people doing FP without realizing it.
I think a "Typelevel frontend toolkit" could be interesting. It would be a single artifact and single import, which includes:
- Calico, specifically the
IO
-based DSL IO
andSignal
from CE/FS2FetchClient
from http4s-dom- Circe
Probably, that would be enough to build some simple and interesting things.
I think one prerequisite of such a frontend toolkit would be that the toolkit plays nice as well with sbt and Mill no?
sbt/sbt#7133
Until then either way, we could get a lot of mileage out of making a vite + those libs template
plays nice as well with sbt and Mill no
Hm, I mean what are you looking for here? I was thinking as simple as:
libraryDependencies += "org.typelevel" %%% "toolkit-frontend" % "0.1.0"
import org.typelevel.toolkit.frontend.{*, given}
plays nice as well with sbt and Mill no
Hm, I mean what are you looking for here? I was thinking as simple as:
libraryDependencies += "org.typelevel" %%% "toolkit-frontend" % "0.1.0"import org.typelevel.toolkit.frontend.{*, given}
Actually ignore me, that is a lot better. I was overthinking it.