Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make GHC only type-check?

Tags:

haskell

ghc

Is there a way, either standard, or a clever hack, to make invoking GHC on a file only run the type-checker? E.g.

$ ghc --just-check-the-types x.hs
$

No output files, no .hi or .o, etc. Don't want to/can't use the GHC API. Just talking about the command-line program, here.

like image 450
Christopher Done Avatar asked Sep 11 '12 16:09

Christopher Done


Video Answer


2 Answers

What about ghc -fno-code file.hs. It will generate no other files and will show errors if your files don't typecheck.

Caveat: this will not do analysis on in-exhaustive pattern matches, so if you want those additional useful warnings, don't use this option alone.

like image 140
Satvik Avatar answered Oct 07 '22 23:10

Satvik


Here's a hack:

crabgrass:~/programming% ghc test.hs -e 'return 0'

test.hs:1:7:
    No instance for (Num (a0 -> t0))
      arising from the literal `3'
    Possible fix: add an instance declaration for (Num (a0 -> t0))
    In the expression: 3
    In the expression: 3 4
    In an equation for `foo': foo = 3 4
zsh: exit 1     ghc test.hs -e 'return 0'
like image 11
Daniel Wagner Avatar answered Oct 08 '22 00:10

Daniel Wagner