
I'm without a doubt overlooking something, but couldn't this be (otoh)
fmap' :: Functor f => (a -> b) -> f a -> f b
fmap' f = fmap (strictify f)
where
strictify s = (($!) id) . s
Nicolas
On Nov 30, 2013 12:11 AM, "Edward Kmett"
Figure out how to write one using either of those APIs, and I'll be quite impressed. =)
I personally use this quite often when working in a monad, in lieu of `return $!` games.
The argument for implementing a version of it in terms of Monad and not some new class off to the side of the class hierarchy that Monad doesn't subclass is that, frankly, if such a thing existed, I'd still have to use this combinator anyways when working with a transformer stack, etc. and would derive little benefit.
-Edward
On Fri, Nov 29, 2013 at 12:03 PM, Carter Schonwald < carter.schonwald@gmail.com> wrote:
could someone explain to me why this <$!> would be for monads rather being more generally also for functors or applicatives?
On Fri, Nov 29, 2013 at 10:35 AM, Johan Tibell
wrote: I'm trying to figure out whether this is a property of the functor itself. I guess it is, but at the same time it seems somewhat orthogonal whether to `seq` some value`.
On Fri, Nov 29, 2013 at 3:50 PM, Twan van Laarhoven
wrote: On 29/11/13 12:23, Johan Tibell wrote:
On Fri, Nov 29, 2013 at 1:19 PM, Twan van Laarhoven
mailto:twanvl@gmail.com> wrote: I don't like that this function is implemented for Monads, I think that it makes sense for some other functors as well. Though to do this 'properly' we would probably end up with another typeclass "StrictFunctor" or something, and that is perhaps too much unnecessary complexity.
Do you have an example of such a functor?
-- Johan
The first thing that came to mind was ZipList. Perhaps a more realistic example would be parsing combinator or FRP libraries that are applicative but not monadic.
Twan
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries