module Lambdabot.Plugin.Haskell.Free (freePlugin) where
import Lambdabot.Plugin
import Lambdabot.Plugin.Haskell.Free.FreeTheorem
import Lambdabot.Plugin.Haskell.Type (query_ghci)
freePlugin :: Module ()
freePlugin :: Module ()
freePlugin = Module ()
forall st. Module st
newModule
{ moduleCmds = return
[ (command "free")
{ help = say "free <ident>. Generate theorems for free"
, process = \String
xs -> do
result <- (String -> Cmd (ModuleT () LB) String)
-> String -> Cmd (ModuleT () LB) String
forall (m :: * -> *).
MonadFail m =>
(String -> m String) -> String -> m String
freeTheoremStr (String -> String -> Cmd (ModuleT () LB) String
forall (m :: * -> *). MonadLB m => String -> String -> m String
query_ghci String
":t") String
xs
say . unwords . lines $ result
}
]
}