Blog: Metaprogramming
![Typed Template Haskell in GHC 9](/files/ew/thumb.ewp2koq3.normal_(23).jpg)
![Typed Template Haskell in GHC 9](/files/l9/thumb.l9s2hnai.mobile_(24).jpg)
Typed Template Haskell in GHC 9
In the third post of our Template Haskell series, we look at the changes made to typed Template Haskell in GHC 9 and show how to use th-compat to write TTH code that will work with both GHC 8 and GHC 9.
![A Short Overview of Typed Template Haskell](/files/vi/thumb.vin3fkdz.normal_(10).jpg)
![A Short Overview of Typed Template Haskell](/files/i6/thumb.i6rrn6vr.mobile_(10).jpg)
A Short Overview of Typed Template Haskell
Extend your Template Haskell knowledge by learning about typed Template Haskell, a part of TH that lets you provide stronger, static guarantees about the correctness of your meta-programs.
![template haskell](/files/ol/thumb.oljze3qq.normal.jpg)
![template haskell](/files/rd/thumb.rdnheexl.mobile.jpg)
Introduction to Template Haskell
Get started with Template Haskell, a language extension for compile-time metaprogramming in Haskell.
![Elixir metaprogramming thumbnail](/files/92/thumb.92hrheqb.normal_(6).jpg)
![Elixir metaprogramming thumbnail](/files/hh/thumb.hhiccggw.mobile_(6).jpg)
Metaprogramming in Elixir
In this article, we cover metaprogramming and macros in Elixir. Discover how you can use Elixir to write code that writes code.
![compile-time evaluation in haskell thumbnail](/files/x8/thumb.x88ujle4.thumbnail_(39).jpg)
![compile-time evaluation in haskell thumbnail](/files/sq/thumb.sq83tybq.thumbnail-mobile_(23).jpg)
Compile-Time Evaluation in Haskell
In this article, we look at three ways to do compile-time evaluation in Haskell: Template Haskell, type families, and functional dependencies.