Results 142 comments of Michael Pilquist
trafficstars

Yeah, biggest reason is Scala.js, where we can't sneak a call in to `Await.result`. Scala.js support should be easy to add, though it would add some build complexity. I'm looking...

@steinybot Unfortunately, that technique suffers from the same problem as `Await.result` when running on Scala.js -- since there's only 1 thread of execution, the call to `Await.{result,ready}` will fail. Would...

@steinybot Nice! I started something today too: https://github.com/hedgehogqa/scala-hedgehog/compare/master...mpilquist:wip/effectful-props?expand=1

In my case, I'd be using `cats.effect.IO` and integrating it with `munit` -- basically building off `PropertySuite` here: https://github.com/scodec/scodec-bits/blob/topic/munit/core/shared/src/test/scala/scodec/bits/PropertySuite.scala I haven't thought too much about runner support as I only...

I'm not certain we need stack safety. Non-identity effects will bring their own stack safety (e.g. Future and IO). We just need to make sure the default `check` function uses...

@steinybot Can I help to get this one over the finish line?

@steinybot Thanks - I sent a PR to your fork but it’s major wip and I need a break from stack safety issues. :) Feel free to take as little...

One thing `Vector` solves is the need for an immutable & persistent collection, *in the standard library*, with O(eC) random access. Immutable arrays work nicely if you don't need persistence...

Yep, structural sharing. If I recall correctly, `Vector` is implemented with structural sharing but duplicates the path from root. So for example, a vector of size

Should be any change -- e.g., given a vector of >= 1024 elements, updating an arbitrary index (e.g. `val w = v.updated(500, 0)`) should result in `w` sharing 31 of...