tidal-1.0.8: src/Sound/Tidal/MiniTidal/TH.hs
{-# LANGUAGE TemplateHaskell #-}
module Sound.Tidal.MiniTidal.TH where
import Language.Haskell.TH
import Sound.Tidal.MiniTidal.Token
op :: String -> Q Exp
op x = do -- op "x" >> return T.x
let y = appE [|opParser|] $ return (LitE $ StringL x)
let z = appE [|return|] $ return (VarE $ mkName $ "T." ++ x)
uInfixE y [|(>>)|] z
function :: String -> Q Exp
function x = do -- function "x" >> return T.x
let y = appE [|functionParser|] $ return (LitE $ StringL x)
let z = appE [|return|] $ return (VarE $ mkName $ "T." ++ x)
uInfixE y [|(>>)|] z