 I'd been building little toy languages that all felt, you know, kind of like the bastard child of Pearl in Python and C++ or something like that because they were what I knew for like 15 years or something like that well before I really discovered functional programming per se. I mean, for like, when I was writing Pearl I understood like you have maps, you know, apply mapping, you map over a list and you can apply some action for everything in there. Like imperative functional mixed metaphor kind of code going on in what I was writing, but it wasn't really seeped into my bones. And later on I'd written a JavaScript compiler in JavaScript, the compiles JavaScript to JavaScript in it, used a technique that comes out of the functional programming community called continuation passing style. So it let me like, if you've run a web page and it's got a bunch of code on it, maybe sometimes you've sat there and the browser has done this like, hey, this page is taking too long. Do you want to stop the code running? I used to see this message a lot. You don't see it so much anymore. And to avoid that, if you wanted to do a lot of work on the page, being able to like take a snapshot of where you are in the middle of a long running computation and capture it and then like set a little timer and then come back after the user interface has had some time to do its thing, lets you sidestep that kind of message. So I was doing a bunch of stuff with that. And then Google released this thing called the Google Web Toolkit, which was the idea that you could compile Java to JavaScript. And so they got types and an IDE support and they got all sorts of goodies that I wasn't getting out of this. So the idealized form of what they built was better than the idealized form of the thing I was building. So I'd like abandoned it and sold it to a company that was doing some debugging stuff. And but I really knew JavaScript very well at that point. And they were trying to do a new JavaScript standard. And the only language I could think of that had all the features that we're trying to put into this version of ECMAScript, this was before Harmony, was Perl 6. And I knew Perl really well. I ran a whole phone company on it for a long time. And so I said, OK, well, the working implementation of Perl 6 is in this language Haskell. Whatever the heck that is, I'll just learn Haskell and write this JavaScript implementation for this new language standard that was going to be a new thing, and run it server-side. It's like, maybe somebody wants to run JavaScript on their server. This was before node by a considerable margin. And I would go from there. And then I got involved in the Haskell community. I just sat in the Haskell IRC channel and asked some questions. And there was a guy answering questions using a math I didn't know to solve computer science problems I didn't know. And I just did my masters in each of these things. And it almost infuriated me. Like, I did that to put it to bed, so I wouldn't be in this situation. I wanted to have the breadth, so I'm like, OK, that's the thing. Now I can go put a suit on and make a bunch of money and go buy an island somewhere. And all of a sudden, I got a good glimpse of how little I actually knew. And I just assumed that everyone in the Haskell community was like this guy, who, like Kale Gibbard, by the way, for the Haskellers in the audience, that knew all this math and all this category theory and all this computer science-y stuff. Because he was sitting on an IRC channel fielding questions from five people at a time using math I didn't know to solve computer science problems I didn't know. And it was just mind-boggling to me. So I learned category theory. And I learned type theory by just throwing myself at every paper I could get my hands on for the next six months. And I didn't stop until I emerged a Haskeller. And it was really the idea that I'd been building all these toy languages. And Haskell had better versions of my ideas, which was not a thing I was expecting, to come in and have this thing that I've been chewing on in the back of my brain for 15 years or something like that at that point. And Haskell would just have better solutions. So I had to decide, do I stick my head back in the sand and pretend I didn't see any of this stuff? Or do I make their solutions my own? And it took me a good chunk of time. But I eventually made their solutions my own and tried to do everything I could to try and advance the role of Haskell in the world.