{-# LANGUAGE OverloadedStrings #-}
module CDP.Gen.Snippets where

import qualified Data.Text as T

domainLanguageExtensions :: T.Text
domainLanguageExtensions :: Text
domainLanguageExtensions = [Text] -> Text
T.unlines
    [ Text
"{-# LANGUAGE OverloadedStrings, RecordWildCards, TupleSections #-}"
    , Text
"{-# LANGUAGE ScopedTypeVariables #-}"
    , Text
"{-# LANGUAGE FlexibleContexts #-}"
    , Text
"{-# LANGUAGE MultiParamTypeClasses #-}"
    , Text
"{-# LANGUAGE FlexibleInstances #-}"
    , Text
"{-# LANGUAGE DeriveGeneric #-}"
    , Text
"{-# LANGUAGE TypeFamilies #-}"
    ]

domainImports :: T.Text
domainImports :: Text
domainImports = [Text] -> Text
T.unlines
    [ Text
"import           Control.Applicative  ((<$>))"
    , Text
"import           Control.Monad"
    , Text
"import           Control.Monad.Loops"
    , Text
"import           Control.Monad.Trans  (liftIO)"
    , Text
"import qualified Data.Map             as M"
    , Text
"import           Data.Maybe          "
    , Text
"import Data.Functor.Identity"
    , Text
"import Data.String"
    , Text
"import qualified Data.Text as T"
    , Text
"import qualified Data.List as List"
    , Text
"import qualified Data.Text.IO         as TI"
    , Text
"import qualified Data.Vector          as V"
    , Text
"import Data.Aeson.Types (Parser(..))"
    , Text
"import           Data.Aeson           (FromJSON (..), ToJSON (..), (.:), (.:?), (.=), (.!=), (.:!))"
    , Text
"import qualified Data.Aeson           as A"
    , Text
"import qualified Network.HTTP.Simple as Http"
    , Text
"import qualified Network.URI          as Uri"
    , Text
"import qualified Network.WebSockets as WS"
    , Text
"import Control.Concurrent"
    , Text
"import qualified Data.ByteString.Lazy as BS"
    , Text
"import qualified Data.Map as Map"
    , Text
"import Data.Proxy"
    , Text
"import System.Random"
    , Text
"import GHC.Generics"
    , Text
"import Data.Char"
    , Text
"import Data.Default"
    , Text
""
    , Text
"import CDP.Internal.Utils"
    ]