The problem with ANN is it's part of the plugins API, and as such does
things like compiling the expression into the program in case a plugin
generates code using its value, plus things like recompilation checking end
up assuming plugins are in use and doing extra checking. Using it as a
compile-time pragma is actually fairly weird from that standpoint.

On Tue, Oct 16, 2018 at 4:29 PM Eric Seidel <e...@seidel.io> wrote:

> > > This sounds exactly like the existing ANN pragma, which is what I've
> wanted LiquidHaskell to move towards for a long time. What is wrong with
> using the ANN pragma?
> >
> > Significant compilation performance penalty and extra recompilation.
> > ANN pragmas is what HLint currently uses.
>
> The extra recompilation is annoying for HLint, true, since you probably
> don't care about your annotations being visible from other modules, whereas
> LiquidHaskell does.
>
> But I'm surprised by the compilation performance penalty. I would have
> expected ANN to be fairly cheap. That seems worthy of a bug report,
> regardless of the current discussion about unknown pragmas.
> _______________________________________________
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>


-- 
brandon s allbery kf8nh
allber...@gmail.com
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to