Skip to content
0:00 / 0:00

#monads#monadtransformers#haskell

ZuriHac 2016: Monad Homomorphisms

Google TechTalks

349K subscribers • 56 videos on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.
  • Presented by Edward Kmett

Advanced. Deep dive for people who know the field.

5.3K views10 years ago1 recommendation

Programming languagesSoftware designHaskellFunctional programmingPerformance and optimization

Edward Kmett explores monad homomorphisms as a solution to the pathological performance problems caused by traditional monad transformer libraries.

A Google TechTalk, July 23, 2016, presented by Edward Kmett ABSTRACT: The way that we use the monad transformer library today leads to code that has pathological performance problems. Can we do better? wiki.haskell.org/ZuriHac2016

Why it's here

1 person recommends this

What people say. Recommended as a brilliant talk on solving performance issues in Haskell's monad transformer library.

u/edwardkmettin r/haskell • Recommends

Edward Kmett - Monad Homomorphisms - Google Tech Talk @ ZuriHac 2016

u/tomejaguarin r/haskell • Mentions

Monad transformer optics Yesterday I asked a question about a certain form of commutation operation for monad transformers. I've followed it a bit further and (re)discovered that you can make optics for monad transformers. See the source file on my GitHub account for full details, but as a taster, ``` type a ~> b = forall r . a r -> b r type LensLike f s (t :: * -> *) a b = (a ~> f b) -> (s ~> f t) type ASetter s t a b = (a ~> IdentityT b) -> (s ~> IdentityT t) lensIdentity :: (MFunctor t, Monad a, Monad b) => (a ~> t b) -> (IdentityT a ~> t (IdentityT b)) affineState :: (MonadTrans t, MFunctor t, Monad (t (StateT s b)), Monad a, Monad b) => LensLike t (StateT s a) (StateT…