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
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.-EdwardOn 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 <johan.tibell@gmail.com> 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 <twanvl@gmail.com> wrote:On 29/11/13 12:23, Johan Tibell wrote:
On Fri, Nov 29, 2013 at 1:19 PM, Twan van Laarhoven <twanvl@gmail.com<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