{-# LANGUAGE TemplateHaskell #-} module Spm.Server.Wordlist ( wordlist, consonants ) where import Prelude import Language.Haskell.TH.Syntax import Control.Monad.IO.Class import Data.Text (Text) import qualified Data.Text as Text import qualified Data.Text.IO as Text import Data.Vector (Vector) import qualified Data.Vector as Vector import Instances.TH.Lift () {-# NOINLINE wordlist #-} {-# NOINLINE consonants #-} wordlist, consonants :: Vector Text wordlist = $( do fPath <- makeRelativeToProject "wordlist.txt" addDependentFile fPath lift . Vector.fromList =<< liftIO (filter (not . Text.null) . Text.words <$> Text.readFile fPath) ) consonants = Vector.fromList $ map Text.singleton "bcdfghjklmnpqrstvwxz"