The talk is so well structured that I could follow it perfectly and never felt too technical to the point that my attention started to wander. Truly well done, but frankly it's to be expected from Alexis. Amazing work always. And despite the talk being quite approachable for anyone familiar with haskell, I can't even begin to imagine the amount of in-depth knowledge needed to figure out all of this to get to the bottom of why exactly these different effects systems have these different performance characteristics and use that to figure out how it could be improved. A true haskell wizard if I've ever seen one.
I gotta say, even though this is a VERY technical talk, her description of Haskell effect systems around 19:30 has to be the best description of them that I've ever heard. I think this talk is even beneficial for someone whom just has some understanding of the Haskell type system.
Intro: 0:00 Talk start: 0:54 Benchmarks: 4:20 Betrayal: 15:10 Details of effect system implementation: 17:46 Implementation of Free-like: 19:20 How optimizer sees an ordinary monad: 21:52 Get Free-like to perform like monad transformer: 25:09 How are typeclasses compiled: 27:30 Non-solution 1: 28:18 Non-solution 2: 30:13 Dictionary passing: 35:58 Specialization: 44:08 Full application specialization doesn't work: 46:49 No need for specialization: 48:46 The real problem is bind: 49:33 Escape plan: 52:26
Monomorphization (explained at 30:25-35:00) can't be used to implement type classes for a more fundamental reason: polymorphic recursion. You can't generate infinitely many monomorphic instantiations at compile time.
Really Really great talk. Every Haskeller who has production programs should take note of her explanations for performance changes. I never thought that breaking a program into separate modules would slow it down.
This answers many questions about mtl and effects libraries that I had for a while, as well as confirming some suspicions I had about the cost of bind in free monads. All over the internet, as you said, there is that "knowledge" that mtl is always fast, but now I have a bit more clear understanding. I guess I'll have to re-watch this talk! Thank you so much! The use of effects systems is one of the next big topics in Haskell programming in the next few years. Absolutely amazing talk!!!
Such a fantastic talk, thank you Alexis and the Zurihac organisers! Even though there wasn't much detail on eff this has me very excited to try it out (probably after the ghc proposal is accepted)
A good talk for what it is, but I wish it was scheduled for the "advanced" track instead, skipping the first 55 minutes and allowing Alexis to talk moatly about delimited continuations and the Eff implementation instead of the introductory material.
I think that it's important to have legitimately intermediate talks too. It's way easier to write an advanced talk than an intermediate talk. For example, right now we're writing a talk on understanding desugaring by learning Core for haskell love conference to help people move from know-how to just "know". That said, I agree with both you and David, that a follow-up talk would be really interesting for people who daydream of a one effect system to rule them all.
The talk is so well structured that I could follow it perfectly and never felt too technical to the point that my attention started to wander. Truly well done, but frankly it's to be expected from Alexis. Amazing work always.
And despite the talk being quite approachable for anyone familiar with haskell, I can't even begin to imagine the amount of in-depth knowledge needed to figure out all of this to get to the bottom of why exactly these different effects systems have these different performance characteristics and use that to figure out how it could be improved.
A true haskell wizard if I've ever seen one.
I gotta say, even though this is a VERY technical talk, her description of Haskell effect systems around 19:30 has to be the best description of them that I've ever heard. I think this talk is even beneficial for someone whom just has some understanding of the Haskell type system.
Intro: 0:00
Talk start: 0:54
Benchmarks: 4:20
Betrayal: 15:10
Details of effect system implementation: 17:46
Implementation of Free-like: 19:20
How optimizer sees an ordinary monad: 21:52
Get Free-like to perform like monad transformer: 25:09
How are typeclasses compiled: 27:30
Non-solution 1: 28:18
Non-solution 2: 30:13
Dictionary passing: 35:58
Specialization: 44:08
Full application specialization doesn't work: 46:49
No need for specialization: 48:46
The real problem is bind: 49:33
Escape plan: 52:26
You are a true friend indeed
I really like this trend of annotating videos with timestamps to sections. Thank you for your efforts!
Amazing talk! Alexis King gives my favorite talks.
I'm so proud that the community is booming with amazing, well-explained content.
Monomorphization (explained at 30:25-35:00) can't be used to implement type classes for a more fundamental reason: polymorphic recursion. You can't generate infinitely many monomorphic instantiations at compile time.
Really Really great talk. Every Haskeller who has production programs should take note of her explanations for performance changes. I never thought that breaking a program into separate modules would slow it down.
I'd love to hear the follow-up(s) about delimited continuations and Eff.
Fantastic talk. I really hope to see you again explaining stuff, it was great!
I'm not awfully experienced with haskell and still found this talk highly informative and interesting
Alexis King is the Queen of Haskell
Incredible talk. I very much appreciate that the the technical details were explained
Fantastic, clear talk.
Such an amazing talk. Thank you for all your time and effort that went into this.
Something that uses effects but is compute-bound is constraint solving; I wouldn't underestimate how powerful a performant effect system can be!
This answers many questions about mtl and effects libraries that I had for a while, as well as confirming some suspicions I had about the cost of bind in free monads. All over the internet, as you said, there is that "knowledge" that mtl is always fast, but now I have a bit more clear understanding. I guess I'll have to re-watch this talk!
Thank you so much! The use of effects systems is one of the next big topics in Haskell programming in the next few years.
Absolutely amazing talk!!!
Another issue with monomorphization-as-typeclass-impl is the impossibility to handle recursively polymorphic data types, isn't it?
Such a fantastic talk, thank you Alexis and the Zurihac organisers! Even though there wasn't much detail on eff this has me very excited to try it out (probably after the ghc proposal is accepted)
How this Eff compares to the other Eff? (extensible-effects hackage package)
Awesome talk, it was really enlightening. I also enjoyed how each argument has been explained, pretty clear even though some part was low level 👏
Brilliant!
Gotta say, I felt pretty betrayed at 15:20. I may never be able to trust someone again. (Great talk!)
awesome talk 👏 🥳
👏🏿👏🏿👍🏿
A good talk for what it is, but I wish it was scheduled for the "advanced" track instead, skipping the first 55 minutes and allowing Alexis to talk moatly about delimited continuations and the Eff implementation instead of the introductory material.
I think that it's important to have legitimately intermediate talks too.
It's way easier to write an advanced talk than an intermediate talk.
For example, right now we're writing a talk on understanding desugaring by learning Core for haskell love conference to help people move from know-how to just "know".
That said, I agree with both you and David, that a follow-up talk would be really interesting for people who daydream of a one effect system to rule them all.