I need a (quick and dirty) way to get some representation of the type of a Haskell expression that is given as a string.
I currently see 3 options:
I don't even need a complete solution, in the sense that a library/tool that can type a reasonable basic subset of Haskell would well suffice for me.
So what is the simplest way to achieve this?
The hint
package offers a somewhat restricted, but perhaps more understandable interface to the GHC API. Perhaps it is sufficient for your purposes? If not, you can perhaps look at the sources to get a better idea of how to use the GHC API directly.
Here's an example program:
import Language.Haskell.Interpreter
main :: IO ()
main = do
r <- runInterpreter $ do
setImports ["Prelude"]
typeOf "map (+1)"
either print putStrLn r
If run, this prints
Num b => [b] -> [b]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With