Everybody, just stop with calling #scalaz' unsafePerformIO. Use this: https://github.com/scalaz/scalaz/blob/scalaz-seven/effect/src/main/scala/scalaz/effect/SafeApp.scala … - now you're closer to #Haskell
-
-
Replying to @puffnfresh
@puffnfresh So long as your program is single-threaded, you're fine. But try to use Future, and you end up forced into unsafePerformIO.3 replies 0 retweets 0 likes -
Replying to @nuttycom
@nuttycom@puffnfresh provide Forall[Future, IO] and you're golden.1 reply 0 retweets 0 likes -
Replying to @dibblego
@dibblego@puffnfresh What does that mean? What does this incarnation of Forall look like?1 reply 0 retweets 0 likes -
Replying to @nuttycom
@nuttycom@puffnfresh trait Forall[F[_], G[_]] { def apply[A](x: F[A]: G[A] }2 replies 0 retweets 0 likes -
Replying to @dibblego
@dibblego@puffnfresh IO[A] => IO[Future[A]] is the only theorem that's relevant here, I think. And that's because Future is broken.3 replies 0 retweets 1 like -
Replying to @nuttycom
@dibblego@puffnfresh But this *does* require calling unsafePerformIO in its implementation (in scala, re: scala.concurrent.Future)1 reply 0 retweets 0 likes
@nuttycom @puffnfresh That's because Future sucks balls. We should change that.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.