Michael Pilquist
Michael Pilquist
Brought up by @augustjune on Gitter today: ```scala @ def holdLater[F[_]: Concurrent, A](stream: Stream[F, A]): Stream[F, Signal[F, A]] = { def uncons1(stream: Stream[F, A]): Stream[F, (A, Stream[F, A])] = stream.pull.uncons1.flatMap...
Netty, Akka, Blaze, and other libraries all use a variant of a hash wheel timer for scheduling lots of non-blocking tasks: - [Netty's HashWheelTimer](https://github.com/liaokailin/netty/blob/master/common/src/main/java/io/netty/util/HashedWheelTimer.java) - [Akka's LightArrayRevolverScheduler](https://github.com/akka/akka/blob/a4acf23d0541471ecf81b9ba5dd97c2e97670814/akka-actor/src/main/scala/akka/actor/LightArrayRevolverScheduler.scala) - [Blaze's TickWheelExecutor](https://github.com/http4s/blaze/blob/main/core/src/main/scala/org/http4s/blaze/util/TickWheelExecutor.scala)...
sbt-release 0.8 allows versions like 1.2.3-M4 but does not allow 1.2.3.M4. The latter form is common for OSGi bundles that use the milestone (Mx), release candidate (RCx), and release (RELEASE)...
The `tupled` operation converts a `(F[X1], F[X2], ...)` to a `F[(X1, X2, ...)]` using `map` and `map2`. The current implementation iterates over the tuple in an untyped fashion, casting each...
E.g., right now we have a `Monoid[Int]` defined in the companion object for `Semigroup`. ```scala scala> import leopards.Semigroup scala> summon[Semigroup[Int]] val res0: leopards.Semigroup.given_Semigroup_Int.type = leopards.Semigroup$given_Semigroup_Int$@1682007c scala> 1 |+| 2 1...
The design of munit makes integration with effect libraries very simple. Test bodies have type `=> Any` and handlers are for various types are registered via `ValueTransform`s and `TestTransform`s. The...
Encountered when trying to upgrade fs2 to cats 2.8.0. The `Monad[Chunk]` and `Alternative[Chunk]` laws tests fail with out of memory errors. These tests use a `Gen[Chunk[Int]]` with a max size...
As of c675ee3da29b60da578eeb03cfd289c19cbbd8b0, we have a mix of currying styles for methods that take 2+ functions. `Invariant` (`imap`) and `Profunctor` (`dimap`) pass each function in its own argument list whereas...
This would include a `Property.check(...): Future[Report]` function. Scalacheck doesn't support this but ScalaTest 3.2's built-in property testing support does. It's really useful when writing effectful tests that run on Scala.js,...
Most notably, Li Haoyi found `Vector ++` to be about twice as fast as `List ++` -- see http://www.lihaoyi.com/post/BenchmarkingScalaCollections.html#lists-vs-vectors. It would be nice to understand the discrepancy in results. Li...