a Haskell EDSL for generating Fanuc Macro B codes