David Feuer

Results 993 comments of David Feuer

Ah, like this: ```haskell coll1 :: Functor1 w => (forall x. x -> h x) -> (forall x. g x -> f x) -> w g -> f (w h)...

No no no, that's not the way to do it either. Here we go: ```haskell collection :: Functor1 w => (forall x. g x -> f (h x)) -> w...

`cotraverse1` then becomes ```haskell cotraverse1' :: Functor1 w => (w h -> a) -> w (Compose f h) -> f a ``` which is unsatisfying in just the right way....

No comment on that particular practicality, but I've run into another rather annoying one: the `cotraverse1` and `distribute1` methods are incompatible with `GeneralizedNewtypeDeriving`. Ouch! This isn't really surprising, since `distribute`...

`Monad` is overkill; `Applicative` will do. Furthermore, this suggests a subclass: ```haskell class (Representable t, Traversable t) => TravRep t where tabulateA :: Applicative f => (Rep t -> f...

@Icelandjack, I don't know either, but if you want that instance, you should surely also be pushing for ```haskell instance (Biapplicative p, Monoid a) => Applicative (WrappedBifunctor p a) where...

@bb010g , I think the main difference is the expectation of what `p` is. For `Cayley` it's expected to be a `Category` whereas for `Tannen` it's expected to be a...

This seems a bit arbitrary to me. Couldn't you write a `Data.Functor.Compose`-like instance like this? ```haskell instance (Applicative (p (f a)), Applicative g) => Applicative (Biff p f g a)...

Is there some reason this hasn't been merged?