packages feed

haskell-awk-1.1: src/System/Console/Hawk/UserPrelude/Defaults.hs

-- | The user prelude you get if the user doesn't have a prelude.
module System.Console.Hawk.UserPrelude.Defaults where

import Control.Arrow ((&&&))

import Data.HaskellModule


-- | Imported at runtime even if missing from the user prelude.
--   Since they are fully qualified, they should not conflict with any
--   user-imported module.
defaultModules :: [QualifiedModule]
defaultModules =
    -- types used to describe the expression interpreted by hint
    -- must be imported unqualified
    ("System.Console.Hawk.Runtime.Base", Nothing)
    : map fullyQualified
      [ "Prelude"
      , "System.Console.Hawk.Representable"
      , "System.Console.Hawk.Runtime"
      , "System.IO.Unsafe"
      , "Data.ByteString.Lazy.Char8"
      ]
  where
    fullyQualified = (id &&& Just)

defaultPrelude :: String
defaultPrelude = unlines
    [ "{-# LANGUAGE ExtendedDefaultRules, OverloadedStrings #-}"
    , "import Prelude"
    , "import qualified Data.ByteString.Lazy.Char8 as B"
    , "import qualified Data.List as L"
    ]

defaultModuleName :: String
defaultModuleName = "System.Console.Hawk.CachedPrelude"