Edward Kmett

Results 142 comments of Edward Kmett

@tmcdonell Yeah it looks like you already took the hard road there. Then the same general idea applies. I have no particular attachment to doing this in `ad` vs. as...

With 22.1.0.r17 I get an even scarier error when targeting either aarch64-apple-darwin or x86_64-apple-darwin: ``` mkdir -p target clang --target=x86_64-apple-darwin src/stub.c -S -emit-llvm -o target/stub.ll llvm-as target/stub.ll -o=target/stub.bc cargo rustc...

Hashable's `hash` is a _terrible_ hash function for anything other than a HAMT. The HAMT in `HashMap` gets away with it because it effectively uses the nybbles of the hash...

The `Batch` type (aka `FunList` based on an ancient post by Twan) as used in #79 is actually less defined than the CPS'd version, introducing bottoms in infinite cases. This...

It is known that Reader for Cont is a bit wonky. For me this seems like another argument for splitting up MonadReader into the ask and local parts. That said...

I think I place this in the bin of ideas for a major mtl 3 rewrite. The major concern I have is that when you go to state laws for...

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.90.2560 provides an identical set of laws to the ones I'd expect.

I can at least see stating those as laws that `MonadReader`, `MonadState`, etc. instances that lift over a transformer can satisfy. Otherwise, obviously, the equations above don't hold in general.

You could probably go even stronger with something like ```haskell m ask = ask m ask *> m = m = m

Also: at the very least, `reader`, `writer` and `state` are all monad homomorphisms, just like `lift`. (They are even almost always monad monomorphisms, but for an annoying technical corner case...