stan
stan copied to clipboard
🕵️ Haskell STatic ANalyser
The `forM_ [1..N]` bug https://gitlab.haskell.org/ghc/ghc/-/issues/8763 has been resolved over the course of GHC 8.2 to 8.8.
Haddock docs is not a part of the HIE files. We need to check if there is a way for us to grab and analyse such information other than using...
In some cases, we can suggest using new Garbage collector starting from GHC-8.10 (e.g. if we detect web-server dependencies or game programming deps). Or, simply, we can suggest using it...
Some people can accidentally use dangerous libraries (e.g. libraries starting with `acme-`). Stan can notify on some dangerous, wrong or misbehaved libraries.
`stimes` usually has a much better implementation for `Monoid`s
Something like this `length xs > 5` can be rewritten to handle infinite lists. This can be a separate inspection, or improved suggestion to the existing Infinite length inspection, if...
See [Recursive self-calls](https://gitlab.haskell.org/ghc/ghc/issues/14527). E.g.: ```haskell let x = x + 1 ``` Especially useful to have this check in instances, as it is quite a common mistake.
Suggest `0 < x && x < 10` instead of `x > 0 && x < 10`.
Tools like `weeder` can tell about unused top-level functions. But Stan can tell about unreachable code blocks. Something like this: ```haskell if True then ... else ```
We need to design the interface for users to add some of the opt-in inspections. Also, we should move such inspections into a special list.