 Coding is hard. When you're writing a program, you want as much feedback as quickly as possible and you want as much help from the tool that you can get. The problem is existing tools sort of only are able to help you when you least need it, when the program is in a complete state. The tools that we're developing to do is give you that feedback right away as soon as you type something. Our lab is really interested in incomplete programs, sort of understanding coding as it happens instead of when it's done. You know, any sort of help that you can get, whether it be feedback about potential mistakes that you made on the last line of code that you wrote, or any sort of autocomplete kind of thing where it writes some of the boilerplate for you so you can focus on the high-level problems. You know, those kinds of services are really useful for programmers. Problem is how do we understand code when they're still missing pieces, when there are errors, when someone's still thinking about what they want to do and need to restructure. We've been working on theoretical aspects of that problem as well as practical kind of user interface aspect. Hazel is a programming environment that's unique in that it understands every intermediate editor state. So every state that you can put the program into, whether there's bugs in it, whether there's missing pieces in it, even when there's merge conflicts in it when you're collaborating with people, Hazel is able to treat that uniformly. It's able to parse it and type check it and run it and give you feedback and assistance. And so what we say is that there's no gaps in service in Hazel. When I first encountered Hazel, I saw that it could support a sort of programming experience where I'm allowed to be a little bit more impatient. I think Hazel gives you control over your attention. It doesn't force you to address errors that you don't care about. At a certain point it really just lets you focus in on the part of the program that you're trying to build at the moment and then fix the other errors later. Hazel is a new kind of editor. It's not a normal text editor. It's what we call a structure editor. In Hazel, we've taken some steps to make the editing experience much more text-like. So notice that as I'm sort of typing it out, Hazel is inserting holes and sort of dynamically computing my result as I go. And then we've been working on other ways of inserting code that don't just look like what you think of as code. So symbolic maths, graphical ways of filling the holes in the program. You can actually integrate that directly into your code because Hazel is a structure editor. These have many benefits. They provide this sort of understandability, especially when it comes to restructuring or refactoring existing code. We're trying to design a new approach of structure editing that I call tile-based editing that we hope makes it just as easy to refactor your code as it is in a text editor. We hope that Hazel will influence the design of programming tools more broadly. We're really at the dawn of computing. So I really think of the things that we're doing today as laying the foundations for a much longer future. Structure editors are going to become more ubiquitous as if they actually integrate into our existing text-based workflows where the computer and the human really are communicating without any gaps throughout the entire process. And I think Hazel provides an extremely compelling foundation for a more humane programming experience.