On Fri, Sep 12, 2008 at 9:47 PM, Jason Dusek <[EMAIL PROTECTED]> wrote: > I'd like to use template Haskell to include as a string in a > Haskell file. How do I do it?
I presume you mean Include a string from the outside world with a IO action (a file, keyborad, etc ...) -- module EmbedStr (embedStr) where import Language.Haskell.TH import Language.Haskell.TH.Syntax (lift) embedStr :: IO String -> ExpQ embedStr readStr = lift =<< runIO readStr -- For example, to get asked about the string you want to embed during compilation ... $ ghci -XTemplateHaskell EmbedStr.hs GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. [1 of 1] Compiling EmbedStr ( EmbedStr.hs, interpreted ) Ok, modules loaded: EmbedStr. *EmbedStr> let myStr = $(embedStr ((putStrLn "What string?") >> getLine)) Loading package array-0.1.0.0 ... linking ... done. Loading package packedstring-0.1.0.0 ... linking ... done. Loading package containers-0.1.0.1 ... linking ... done. Loading package pretty-1.0.0.0 ... linking ... done. Loading package template-haskell ... linking ... done. What String? Foo *EmbedStr> myStr "Foo" *EmbedStr> > Is there any lengthy documentation with examples for Template > Haskell? The pages linked to from `haskell.org` are a little > sparse. Uhm, I only know about http://www.haskell.org/haskellwiki/Template_Haskell#Template_Haskell_tutorials_and_papers I particularly like Mark Snyder's Template Haskell chapter on the Software Generation and Configuration Report , but the link is broken :( _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe