Provides a way to persist data from compile-time to runtime.
This package provides a way to persist data from compile-time to runtime by producing Template Haskell expressions that evaluate to particular values. For example, if you have a value Just 1
, then toExp (Just 1)
will produce the expression[e| Just 1 |]
, which can be used in a splice. For a more direct example, here’s what that looks like without the quasiquote notation:
>>>
toExp (Just 1)
AppE (ConE GHC.Base.Just) (LitE (IntegerL 1))
This is done by using a typeclass, ToExp
, that can be automatically derived for types that have a Generic
instance.
th-to-exp
th-to-exp
is a package that provides a way to persist data from compile-time to runtime by producing Template Haskell expressions that evaluate to particular values. For example, if you have a value Just 1
, then toExp (Just 1)
will produce the expression[e| Just 1 |]
, which can be used in a splice. For a more direct example, here’s what that looks like without the quasiquote notation:
> toExp (Just 1)
AppE (ConE GHC.Base.Just) (LitE (IntegerL 1))
This is done by using a typeclass, ToExp
, that can be automatically derived for types that have a Generic
instance.