Descrição
Reifica termos arbitrários em tipos que depois podem ser refletidos de volta em termos. Essa técnica permite que código Haskell passe valores por evidências em nível de tipos em situações controladas.
É útil para APIs avançadas, configuração, programação em nível de tipos e bibliotecas que precisam de valores implícitos sem estado global mutável. É uma biblioteca para desenvolvedores e exige forte conhecimento de Haskell.