staticFileModuleHeader :: [String]
staticFileModuleHeader =
  [ "{-# LANGUAGE OverloadedStrings #-}"
  , "module "++staticFileModuleName++" where"
  , "import qualified Data.ByteString.Lazy.Char8 as BS"
  , "import qualified Codec.Compression.GZip as GZip"
  , ""
  , "data FileKind = ZwolleFrontEnd | PandocTemplates | FormalAmpersand deriving (Show, Eq)" 
  , "data StaticFile = SF { fileKind      :: FileKind"
  , "                     , filePath      :: FilePath -- relative path, including extension"
  , "                     , timeStamp     :: Integer  -- unix epoch time"
  , "                     , contentString :: String"
  , "                     }"
  , ""
  , "getStaticFileContent :: FileKind -> FilePath -> Maybe String"
  , "getStaticFileContent fk fp ="
  , "     case filter isRightFile allStaticFiles of"
  , "        [x] -> Just (contentString x)"
  , "        _   -> Nothing"
  , "  where"
  , "    isRightFile :: StaticFile -> Bool"
  , "    isRightFile (SF fKind path _ _ ) = fKind == fk && path == \".\\\\\"++fp"
  , ""
  , "{-"++"# NOINLINE allStaticFiles #-}" -- Workaround: break pragma start { - #, since it upsets Eclipse :-( 
  , "allStaticFiles :: [StaticFile]"
  , "allStaticFiles ="
  ]
staticFileModuleHeader :: [String]
staticFileModuleHeader =
  [ "{-# LANGUAGE OverloadedStrings #-}"
  , "module "++staticFileModuleName++" where"
  , "import qualified Data.ByteString.Lazy.Char8 as BS"
  , "import qualified Codec.Compression.GZip as GZip"
  , ""
  , "data FileKind = ZwolleFrontEnd | PandocTemplates | FormalAmpersand deriving (Show, Eq)" 
  , "data StaticFile = SF { fileKind      :: FileKind"
  , "                     , filePath      :: FilePath -- relative path, including extension"
  , "                     , timeStamp     :: Integer  -- unix epoch time"
  , "                     , contentString :: String"
  , "                     }"
  , ""
  , "getStaticFileContent :: FileKind -> FilePath -> Maybe String"
  , "getStaticFileContent fk fp ="
  , "     case filter isRightFile allStaticFiles of"
  , "        [x] -> Just (contentString x)"
  , "        _   -> Nothing"
  , "  where"
  , "    isRightFile :: StaticFile -> Bool"
  , "    isRightFile (SF fKind path _ _ ) = fKind == fk && path == \".\\\\\"++fp"
  , ""
  , "{-"++"# NOINLINE allStaticFiles #-}" -- Workaround: break pragma start { - #, since it upsets Eclipse :-( 
  , "allStaticFiles :: [StaticFile]"
  , "allStaticFiles ="
  ]
staticFileModuleHeader =
  [ "{-# LANGUAGE OverloadedStrings #-}"
  , "module "++staticFileModuleName++" where"
  , "import qualified Data.ByteString.Lazy.Char8 as BS"
  , "import qualified Codec.Compression.GZip as GZip"
  , ""
  , "data FileKind = ZwolleFrontEnd | PandocTemplates | FormalAmpersand deriving (Show, Eq)" 
  , "data StaticFile = SF { fileKind      :: FileKind"
  , "                     , filePath      :: FilePath -- relative path, including extension"
  , "                     , timeStamp     :: Integer  -- unix epoch time"
  , "                     , contentString :: String"
  , "                     }"
  , ""
  , "getStaticFileContent :: FileKind -> FilePath -> Maybe String"
  , "getStaticFileContent fk fp ="
  , "     case filter isRightFile allStaticFiles of"
  , "        [x] -> Just (contentString x)"
  , "        _   -> Nothing"
  , "  where"
  , "    isRightFile :: StaticFile -> Bool"
  , "    isRightFile (SF fKind path _ _ ) = fKind == fk && path == \".\\\\\"++fp"
  , ""
  , "{-"++"# NOINLINE allStaticFiles #-}" -- Workaround: break pragma start { - #, since it upsets Eclipse :-( 
  , "allStaticFiles :: [StaticFile]"
  , "allStaticFiles ="
  ]