David Feuer

Results 297 issues of David Feuer

Lots of functions that deal in `Strategy` would be more naturally written for ``` type Strategy' a b = a -> Eval b ``` This tiny generalization bypasses `map`.

`seqMap` appears to be the only reason `parallel` depends on `containers`. It would be nice to be rid of it. The obvious replacement would be `seqBifoldable`. I'll have to add...

It looks to me as though `parBuffer` is supposed to spark a limited number of computations at any one time. But as far as I can tell, it actually sparks...

I believe we should be able to `unsafeCoerce#` our way into references containing `TYPE 'UnliftedRep`. This is horrible, of course, but also useful. We can support all the usual `MutVar`...

enhancement

GHC now tries to push a few things (I'm not sure what exactly) into `runRW#` blocks. I guess this is sometimes good? But when inlining doesn't happen, it's rather bad,...

For example, ```haskell copyPtrToMutablePrimArray :: forall m a. (PrimMonad m, Prim a) => MutablePrimArray (PrimState m) a -> Int -> Ptr a -> Int -> m () ``` This accepts...

`runArray` and similar should probably use `noDuplicate#` to avoid duplicated work and loss of sharing. `` should probably use `noDuplicate#` when the result is large, for some value of large.

`fromList` for `Array` and `SmallArray` currently takes the length of the list before doing anything else. This isn't so great, especially if the list is long (mostly relevant for `Array`)...

For some reason, this package doesn't offer basic access to atomic CAS and such. I see no good reason for this. The `atomic-primops` package has some good ideas for this,...

This isn't ready yet, but it'll probably be easier to discuss as a PR.