threepenny-gui-0.3.0.0: src/Graphics/UI/Threepenny/Internal/Include.hs
{-# LANGUAGE TemplateHaskell, CPP #-}
module Graphics.UI.Threepenny.Internal.Include (include) where
import Data.Functor
import qualified Language.Haskell.TH as TH
import Language.Haskell.TH.Quote
#ifdef CABAL
root = "src/"
#else
root = ""
#endif
include = QuasiQuoter
{ quoteExp = f -- only used as an expression,
, quotePat = undefined -- hence all other use cases undefined
, quoteType = undefined
, quoteDec = undefined
}
where
f s = TH.LitE . TH.StringL <$> TH.runIO (readFile $ root ++ s)