typelevel / typelevel/cats-effect

A little more `IO` and a little less `F[_]`

Open
#3,133 13 comments 10 reactions 2 assignees View on GitHub

@valencik is already working on this.

Since Sep 28, 2022.

:books: docs good first issue 🥺 help wanted
Dominant language
Scala
Stars
2.2k
Forks
576
Avg merge
2d 11h
Merged PRs (30d)
18

Description

I think we've all converged on the idea that beginners should definitely start with concrete IO. And that there's no harm in continuing to use concrete IO indefinitely; indeed many teams are doing this.

So this is all well and good. Except our docs are full of stuff like this:

https://github.com/typelevel/cats-effect/blob/3da61a59438da30f9bb01192fec9e690aacc3ce4/std/jvm/src/main/scala/cats/effect/std/Console.scala#L30-L39

Which invariably leads to beginner questions: what is F[_]? To which a quick answer is "replace every F you see with IO".

Well, woops 😛

def myProgram[IO[_]: Console : Monad]: IO[Unit] = ???

I think we should prioritize writing examples with concrete IO, since that is exactly what we are pitching. Providing a second example written in terms of F[_] (possibly via a fancy tabbed switcher on the website) would be reserved for bonus points.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.