David Feuer

Results 297 issues of David Feuer

We certainly want generator application to modify the *generator* strictly, but it's not always reasonable to produce the result strictly. I think `applyRandomGenM` itself probably *shouldn't* force the result, but...

The [join points paper](https://www.microsoft.com/en-us/research/publication/compiling-without-continuations/) suggests that it may now be possible to avoid the need for `Skip` altogether. It would be worth checking if that's actually the case. If so,...

```haskell generateA :: Applicative f => Int -> (Int -> f a) -> f (Vector a) -- specification generateA n f = sequenceA (generate n f) ``` The `Monad m`...

I doubt these are needed too terribly often, but it might make sense to add them anyway—the usual `Vector` API doesn't _seem_ to offer any way to implement them efficiently....

enhancement
design-shed

Maybe I'm missing something, but I would think you could add versions of `traverse` and `mapAccumL` to take a `FoldM` and a `Fold`, respectively. Edit: `traverse` probably doesn't work, but...

* Generalize `on` and `at` to allow more flexible nesting. * Add less-categorical, more-Haskellish versions of `at` and `trivial`. Closes #17

We have ```haskell at :: ((() -> Identity b) -> s -> Identity t) -> (i -> b) -> (i -> s) -> i -> t ``` But `()` isn't...

Haskell has a class ```haskell class Monad m => MonadFix m where mfix :: (a -> m a) -> m a ``` It should be possible to do something similar...

type: enhancement

I want something like ```haskell data NT :: (Type -> Type) -> (Type -> Type) -> Type appNT :: NT f g -> f a -> g a ``` and...

`mapEither` isn't very general as a multiset operation. It generalizes nicely to ```haskell mapPair :: Ord a => (a -> Occur -> ((b, Occur), (c, Occur))) -> MultiSet a ->...