
Explore a monadic framework for name resolution in multi-phased type checkers, bridging the gap between abstract typing rules and practical implementations using compositional mappings and monadic combinators.

Explore fundamental principles of type systems, comparing session types with traditional types in logic, mathematics, and computer science.

Explore the concept of polyglot programming, its prevalence, benefits, and challenges. Examine integration issues and software engineering implications for multi-language development.

Explore the expressive power of mixed session types in distributed processes, examining their impact on type safety and communication in asynchronous and synchronous contexts.

Explore insights gained while writing a book on session types, including coinductive definitions, linear vs. sharable types, subtyping, and propositions-as-types approach.

Explore the future of programming languages in AI-driven development, examining key features, tools, and workflows needed for effective human-AI collaboration in software creation.

Explore Witter, a library for white-box testing in programming education. Analyze method execution against reference solutions to verify algorithm behavior and provide insightful feedback.

Explore advanced techniques for collaborative editing: implement undo/redo functionality and move operations in CRDTs, enhancing real-time document synchronization and user experience.

Explore a Domain-Specific Language for stack-based computations, ensuring type correctness and supporting multiple views and mutually recursive functions of arbitrary arities.

Explore ProTI, an automated unit testing approach for Infrastructure as Code programs, enabling rapid prototyping and efficient bug detection in cloud resource configurations.

Explore Hazel, a groundbreaking live programming environment with error localization and recovery mechanisms, ensuring well-structured and meaningful code at every stage.

Explore Latte, a lightweight system for tracking aliasing and uniqueness in Java, minimizing annotations and complexity while supporting destructive reads and practical applications.

Explore a proposed trait debugger for Rust, extracting and visualizing proof trees to facilitate debugging of complex trait errors in any domain and scale.

Explore PfComp, a verified compiler for stateless firewall policies using binary decision diagrams. Learn about its Coq-assisted proof, OCaml extraction, and performance benefits.

Explore Nullsafe, a compiler plugin extending Java's type system with nullness, reducing NullPointerExceptions in production code at Meta through large-scale transformation.

Explore asai, an OCaml library for enhancing compiler diagnostics in proof assistants, improving error messages for end users.

Explore type inference for application spines in Haskell, covering error messages, impredicative polymorphism, visible type application, and required type arguments.

Explore GHC's type inference engine, covering bidirectional inference, implication constraints, level numbers, evidence generation, and quantified constraints in Haskell.

Explore the evolution of effectful programming in Haskell, from monads to higher-order effects, examining key milestones and their impact on functional programming paradigms.

Discover the importance of collaboration in research, learn how to initiate partnerships, overcome challenges, and achieve success in joint projects.

Explore scaling deductive verification for smart contracts using abstract interpretation. Learn about pointer analysis algorithms, program simplifications, and challenges in low-level code analysis.