module Data.Emoji.Internal where
import Language.Haskell.TH
import qualified Data.ByteString.Lazy as B
import Control.Monad.IO.Class
import Data.Aeson
import Data.HashMap.Lazy
sample :: Q Exp
sample = do
b <- runIO $ B.readFile "./resource/emoji.json"
let Just dic = decode b :: Maybe (HashMap String String)
folder k v acc =
(match (litP (stringL k)) (normalB (appE (conE 'Just) (litE (stringL v)))) []):acc
ms = foldrWithKey folder [match wildP (normalB (conE 'Nothing)) []] dic
x <- newName "x"
lamE [varP x] (caseE (varE x) ms)