[Haskell-cafe] hsb2hs preprocessor looking for a maintainer

Max Bolingbroke batterseapower at hotmail.com
Wed Aug 4 03:05:03 EDT 2010


On 4 August 2010 07:42, Joachim Breitner <mail at joachim-breitner.de> wrote:
> out of a discussion in haskell-devscripts, John MacFarlane wrote a very
> nice tool, called hsb2hs, that allows you to include any binary (or
> text) file as a constant in your program.

When I've needed to do this in the past, I've used a simple bit of
Template Haskell:

"""
module Embed where

import Language.Haskell.TH

embedFile :: String -> ExpQ
embedFile fp = runIO (readFile fp) >>= stringE
"""

Here is how you use it to implement a (cheaty sort of) quine:

"""
{-# LANGUAGE TemplateHaskell #-}
import Embed

foo = $(embedFile "UseEmbed.hs")

main = putStrLn foo
"""

Cheers,
Max


More information about the Haskell-Cafe mailing list