{-# 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