| >> I compiled my code with -fdicts-strict.
| >
| > What is this actually supposed to do? It seems the documentation is
| missing:
| > http://www.haskell.org/ghc/docs/latest/html/users_guide/options-
| optimise.html#options-f
| 
| >From reading the source code, it appears to make any dictionary fields
| of GADTs strict. So the dictionary for Eq in:
| 
| data EqDict a where
|   EqDict :: Eq a => EqDict a
| 
| Will be a strict field.

dicts-strict is supposed to make any function that takes a dictionary argument 
strict in that argument. In principle this is a useful optimization, since 
dictionaries never diverge, but I have never really followed through on it.  
One reason is that the picture is more cloudy with recursive dictionaries.  In 
any case, I have no looked at it for ages so it might have bit-rotted.

If anyone wants to give it a whirl, do have a go, and look at the Core you get.

Simon
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to