Skip to content
0:00 / 0:00

#hackett#racket#macros

"Hackett: a metaprogrammable Haskell" by Alexis King

Strange Loop Conference

88K subscribers • 107 videos on Hallway • Conference channel

YouTube
  • Recommended by 3 people: 2 in engineering communities and 1 curated list.
  • Presented by Alexis King, creator of Hackett

Advanced. Deep dive for people who know the field.

14K views8 years ago3 recommendations

Programming languagesHaskellLisp and ClojureLanguage design and type systems

Alexis King introduces Hackett, a programming language that embeds Haskell's type system within the Racket macro system by interleaving expansion and typechecking.

What would you get if you combined a cutting edge, state of the art macro system with a tried and true, industrial-strength type system? The answer is Hackett, a programming language that embeds the power of the Haskell type system within the Racket macro system. Traditional approaches to macro-enabled Haskells have been relatively straightforward, bolting a macroexpander onto the frontend of an otherwise mundane compiler, but this is a shallow, unsatisfying embedding--by its very nature, the typechecker does not run until macroexpansion is complete, so the wealth of static information embedded in the type system is inaccessible to macro authors. In contrast, Hackett applies and extends recent research first published at POPL 2017 that enables interleaving macroexpansion and typechecking, opening up entirely new ways for programmers to tinker with their language and construct embedded DSLs. While Hackett is still in development, it is already starting to bear fruit as a vehicle to explore this relatively unexplored design space. In this talk, we will take a look at some real Hackett code to get a feel for what the language is like, survey some of the underlying Racket technologies that make a sampling of Hackett's features possible, and also discuss some of the ways Hackett is likely to grow and develop in the near future. Finally, we'll compare and contrast Hackett's approach to metaprogramming with other approaches in the design space to see what makes Hackett unique. Speaker: Alexis King

Why it's here

3 people recommend this

u/theindigamerin r/haskell • Recommends

"Hackett: a metaprogrammable Haskell" by Alexis King

u/twbmspin r/ProgrammingLanguages • Recommends

"Hackett: a metaprogrammable Haskell" by Alexis King

programming-talkscurated list on GitHubRecommends

Under “Hackett”

Hackett: a metaprogrammable Haskell 00:33:39 by **Alexis King** (2018)

u/bjzabaPikelet, Unnamed Binary DDLin r/ProgrammingLanguages • Mentions

On “Ways to achieve Ad-hoc polymorphism?”

It is cool! Haskell, Rust, Scala, Swift (I think?), Agda, Coq, Idris, Purescript are examples, but there are probably more out there! /u/lexi-lambda presented some really nice examples in this talk: "Hackett: a metaprogrammable Haskell" by Alexis King

u/R-O-B-I-Nin r/ProgrammingLanguages • Mentions

On “Useful Type-Aware Macros”

The Hackett language link to this video