Stephen Tetley

Results 40 comments of Stephen Tetley

Thanks Matthew, the Haskell classes around Monad and monad transformers are examples. E.g. `MonadError`, `MonadReader`, `MonadState`. MTL uses MPTCs and fundeps: https://hackage.haskell.org/package/mtl-2.3/docs/Control-Monad-Error-Class.html https://hackage.haskell.org/package/mtl-2.3/docs/Control-Monad-Reader.html https://hackage.haskell.org/package/mtl-2.3/docs/Control-Monad-State-Lazy.html At the moment I'm simulating `MonadError`...

I've got an interface to `java.lang.Process` and `java.lang.ProcessBuilder` but it is (currently) part of a bigger project and implemented in two layers. The first layer is just a shim over...

A `toDot` function to generate GraphViz files would be nice for small graphs. I thought I'd written one already but I can't find it. Datalog versions of transitive closure and...

BTW I've got a wrapper module over Java's `java.lang.Processs` that would be useful in the stdlib (after some polish), then we could launch programs like GraphViz's `dot` from Flix.

Oh no, looking at this has revealed that `List.traverse` actually goes from right-to-left. So the change will have to fix that (and other implementations if they copied List's code?) as...

> Oh. That's not good. I would think that the effects should occur from left to right. Definitely! I'm just about to make a PR to fix `List.traverse`. Then I'll...

> Is this PR still relevant? No, It can be rejected / discarded. With the recent `traverse` fixes I should be able to make a new PR for the mutable...

There's also the CPS functional version: ~~~ pub def flatMapCps(f: a -> List[b] & ef, l: List[a]): List[b] & ef = def loop(xs, k) = match xs { case Nil...