Maybe String -> CoreExpr in a GHC plugin

Joachim Breitner mail at
Tue Jan 16 16:08:48 UTC 2018


in a GHC plugin, I want to synthesize simple data structures, and
insert them into the code. What is the most idiomatic way of writing a
function, say,

  foo :: Maybe String -> CoreExpr


  foo :: Maybe String -> CoreM CoreExpr

so that the resulting CoreExpr describes the input. Abstractly
speaking, I could imagine creating the Core AST by hand (but I’d have
to figure out how to resolve the names of the constructors), or somehow
invoking the renamer, type-checker and desugarer from within CoreM.

Surely someone else has solved this problem before. How did you do it?


Joachim “nomeata” Breitner
  mail at
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the Glasgow-haskell-users mailing list