Wrong SrcSpan on AbsBinds
I have the following code:
{-# LANGUAGE RankNTypes #-}
module Folder1.ForAll where
import Data.Char
fun :: t -> [Char] -> [Char]
fun _=reverse . map toUpper
And the TypecheckedSource gives me something like (using the
ghc-syb-utils package to dump it:)
{Bag(Located (HsBind Var)):
[
(L {src\Folder1\ForAll.hs:8:1-29}
(AbsBinds
[{Var: t}]
[]
[
((,,,)
[{Var: t}] {Var: Folder1.ForAll.fun} {Var: fun}
(SpecPrags
[]))]
({abstract:TcEvBinds}) {Bag(Located (HsBind Var)):
[
(L {src\Folder1\ForAll.hs:9:1-27}
(FunBind
(L {src\Folder1\ForAll.hs:9:1-3} {Var: fun})
(False)
(MatchGroup
The issue here is that the AbsBinds has a SrcSpan that only covers the type signature, and not the rest of the code, hence (I think) we never go down the contents, and Scion cannot resolve anything when a user asks it to.
If the type signature is not present, the problem doesn't occur: the
AbsBinds location covers all the source code.
If the type signature is present but without any type variable, there is no AbsBinds and no problem (the FunBind covers all the code).