Solving a dictionary
describe has a Show a constraint; use calls it at Int. That is the entire program, so every line the solver prints is about one Wanted, and none of it is noise.
What you wrote.
-- The smallest program that makes the solver look up an instance: one
-- constraint from a signature, one dictionary found by search.
module Dict where
describe :: Show a => a -> String
describe x = "value: " ++ show x
use :: String
use = describe (42 :: Int)The renamer thinking out loud: environments extended, names resolved.-ddump-rn-trace
rn1 []
rn1: checking family instance consistency899 lines
rn1: } checking family instance consistency
rn1a
rn12
getLocalNonValBinders 1 []
extendGlobalRdrEnvRn 23 lines
GlobalRdrEnv (locals only) {
}getLocalNonValBinders 2 []
extendGlobalRdrEnvRn 23 lines
GlobalRdrEnv (locals only) {
}extendGlobalRdrEnvRn 23 lines
GlobalRdrEnv (locals only) {
}newTopSrcBinder4 lines
Dict describe examples/traces/Dict.hs:6:1-8
newTopSrcBinder4 lines
Dict use examples/traces/Dict.hs:9:1-3
rnSrcDecls [Dict.describe, Dict.use]
extendGlobalRdrEnvRn 25 lines
GlobalRdrEnv (locals only) {
describe:
Dict.describe Vanilla defined at examples/traces/Dict.hs:6:1
use: Dict.use Vanilla defined at examples/traces/Dict.hs:9:1 }Start rnTyClDecls []
rnTyClDecls3 lines
tyClGroupTyClDecls: []
tc_names: {}rnTyClDecls SCC analysis793 lines
rdr_env: [0_ESflG :-> [describe Vanilla
defined at examples/traces/Dict.hs:6:1],
0_ESflQ :-> [- parent:Num Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESflR :-> [* parent:Num Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESfm7 :-> [Show TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfm9 :-> [String TyCon type synonym
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmb :-> [++ Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmc :-> [. Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmd :-> [show parent:Show Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfme :-> [use Vanilla defined at examples/traces/Dict.hs:9:1],
0_ESfmg :-> [Int TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfmj :-> [Foldable TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfml :-> [$! Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmm :-> [=<< Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmn :-> [asTypeOf Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmo :-> [const Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmp :-> [flip Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmq :-> [id Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfmr :-> [until Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfms :-> [&& Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfmt :-> [not Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfmu :-> [|| Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfmv :-> [either Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Either’)],
0_ESfmw :-> [all Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmx :-> [and Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmy :-> [any Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmz :-> [concat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmA :-> [concatMap Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmB :-> [mapM_ Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmC :-> [notElem Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmD :-> [or Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmE :-> [sequence_ Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfmF :-> [<$> Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Functor’)],
0_ESfmG :-> [maybe Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Maybe’)],
0_ESfmH :-> [lines Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.OldList’)],
0_ESfmI :-> [unlines Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.OldList’)],
0_ESfmJ :-> [unwords Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.OldList’)],
0_ESfmK :-> [words Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.OldList’)],
0_ESfmL :-> [curry Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Tuple’)],
0_ESfmM :-> [fst Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Tuple’)],
0_ESfmN :-> [snd Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Tuple’)],
0_ESfmO :-> [uncurry Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Tuple’)],
0_ESfmP :-> [error Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Err’)],
0_ESfmQ :-> [errorWithoutStackTrace Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Err’)],
0_ESfmR :-> [undefined Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Err’)],
0_ESfmS :-> [ioError Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.IO.Exception’)],
0_ESfmT :-> [userError Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.IO.Exception’)],
0_ESfmU :-> [!! Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfmV :-> [break Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfmW :-> [cycle Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfmX :-> [drop Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfmY :-> [dropWhile Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfmZ :-> [head Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn0 :-> [init Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn1 :-> [iterate Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn2 :-> [last Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn3 :-> [lookup Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn4 :-> [repeat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn5 :-> [replicate Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn6 :-> [reverse Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn7 :-> [scanl Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn8 :-> [scanl1 Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfn9 :-> [scanr Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfna :-> [scanr1 Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfnb :-> [span Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfnc :-> [splitAt Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfnd :-> [tail Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfne :-> [take Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfnf :-> [takeWhile Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfng :-> [unzip Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfnh :-> [unzip3 Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfni :-> [zip3 Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfnj :-> [zipWith Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfnk :-> [zipWith3 Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfnl :-> [subtract Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESfnm :-> [lex Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Read’)],
0_ESfnn :-> [readParen Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Read’)],
0_ESfno :-> [^ Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfnp :-> [^^ Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfnq :-> [even Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfnr :-> [gcd Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfns :-> [lcm Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfnt :-> [odd Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfnu :-> [showChar Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfnv :-> [showParen Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfnw :-> [showString Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfnx :-> [shows Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfny :-> [appendFile Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnz :-> [getChar Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnA :-> [getContents Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnB :-> [getLine Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnC :-> [interact Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnD :-> [putChar Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnE :-> [putStr Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnF :-> [putStrLn Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnG :-> [readFile Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnH :-> [readIO Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnI :-> [readLn Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnJ :-> [writeFile Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESfnK :-> [read Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Text.Read’)],
0_ESfnL :-> [reads Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Text.Read’)],
0_ESfnM :-> [<* parent:Applicative Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfnN :-> [liftA2 parent:Applicative Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfnO :-> [<$ parent:Functor Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfnP :-> [/= parent:Eq Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfnQ :-> [< parent:Ord Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfnR :-> [<= parent:Ord Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfnS :-> [> parent:Ord Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfnT :-> [compare parent:Ord Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfnU :-> [max parent:Ord Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfnV :-> [min parent:Ord Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfnW :-> [elem parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfnX :-> [foldMap parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfnY :-> [foldl parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfnZ :-> [foldl' parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo0 :-> [foldl1 parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo1 :-> [foldr parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo2 :-> [foldr1 parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo3 :-> [length parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo4 :-> [maximum parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo5 :-> [minimum parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo6 :-> [null parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo7 :-> [product parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo8 :-> [sum parent:Foldable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Foldable’)],
0_ESfo9 :-> [mapM parent:Traversable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Traversable’)],
0_ESfoa :-> [sequence parent:Traversable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Traversable’)],
0_ESfob :-> [sequenceA parent:Traversable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Traversable’)],
0_ESfoc :-> [traverse parent:Traversable Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Traversable’)],
0_ESfod :-> [maxBound parent:Bounded Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESfoe :-> [minBound parent:Bounded Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESfof :-> [fromEnum parent:Enum Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESfog :-> [pred parent:Enum Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESfoh :-> [succ parent:Enum Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESfoi :-> [toEnum parent:Enum Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESfoj :-> [** parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfok :-> [acos parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfol :-> [acosh parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfom :-> [asin parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfon :-> [asinh parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoo :-> [atan parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfop :-> [atanh parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoq :-> [cos parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfor :-> [cosh parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfos :-> [exp parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfot :-> [log parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfou :-> [logBase parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfov :-> [pi parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfow :-> [sin parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfox :-> [sinh parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoy :-> [sqrt parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoz :-> [tan parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoA :-> [tanh parent:Floating Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoB :-> [atan2 parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoC :-> [decodeFloat parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoD :-> [encodeFloat parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoE :-> [exponent parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoF :-> [floatDigits parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoG :-> [floatRadix parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoH :-> [floatRange parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoI :-> [isDenormalized parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoJ :-> [isIEEE parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoK :-> [isInfinite parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoL :-> [isNaN parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoM :-> [isNegativeZero parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoN :-> [scaleFloat parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoO :-> [significand parent:RealFloat Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESfoP :-> [FilePath TyCon type synonym
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.IO’)],
0_ESfoQ :-> [IOError TyCon type synonym
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.IO.Exception’)],
0_ESfoR :-> [+ parent:Num Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESfoS :-> [abs parent:Num Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESfoT :-> [signum parent:Num Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESfoU :-> [readList parent:Read Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Read’)],
0_ESfoV :-> [readsPrec parent:Read Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Read’)],
0_ESfoW :-> [/ parent:Fractional Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfoX :-> [recip parent:Fractional Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfoY :-> [div parent:Integral Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfoZ :-> [divMod parent:Integral Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp0 :-> [mod parent:Integral Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp1 :-> [quot parent:Integral Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp2 :-> [quotRem parent:Integral Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp3 :-> [rem parent:Integral Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp4 :-> [ceiling parent:RealFrac Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp5 :-> [floor parent:RealFrac Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp6 :-> [properFraction parent:RealFrac Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp7 :-> [round parent:RealFrac Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp8 :-> [truncate parent:RealFrac Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfp9 :-> [showList parent:Show Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfpa :-> [showsPrec parent:Show Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfpb :-> [ShowS TyCon type synonym
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’)],
0_ESfpc :-> [ReadS TyCon type synonym
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Text.ParserCombinators.ReadP’)],
0_ESfr0 :-> [Bool TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfr1 :-> [False parent:Bool ConLike ConInfo {con_ty: ConIsData ([False,
True]), fields: ConIsNullary}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfr2 :-> [True parent:Bool ConLike ConInfo {con_ty: ConIsData ([False,
True]), fields: ConIsNullary}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfr3 :-> [Char TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfr5 :-> [Double TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfr7 :-> [Float TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfra :-> [Word TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfrd :-> [Ordering TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfre :-> [LT parent:Ordering ConLike ConInfo {con_ty: ConIsData ([LT,
EQ,
GT]), fields: ConIsNullary}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfrf :-> [EQ parent:Ordering ConLike ConInfo {con_ty: ConIsData ([LT,
EQ,
GT]), fields: ConIsNullary}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfrg :-> [GT parent:Ordering ConLike ConInfo {con_ty: ConIsData ([LT,
EQ,
GT]), fields: ConIsNullary}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfrh :-> [Maybe TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Maybe’)],
0_ESfri :-> [Nothing parent:Maybe ConLike ConInfo {con_ty: ConIsData ([Nothing,
Just]), fields: ConIsNullary}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Maybe’)],
0_ESfrj :-> [Just parent:Maybe ConLike ConInfo {con_ty: ConIsData ([Nothing,
Just]), fields: ConHasPositionalArgs}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Maybe’)],
0_ESfrm :-> [~ TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfsa :-> [Integer TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Bignum.Integer’)],
0_ESfsh :-> [$ Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsk :-> [otherwise Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsn :-> [map Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsq :-> [return parent:Monad Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsr :-> [>> parent:Monad Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfss :-> [>>= parent:Monad Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsw :-> [fmap parent:Functor Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsx :-> [*> parent:Applicative Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsy :-> [<*> parent:Applicative Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsz :-> [pure parent:Applicative Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsA :-> [mconcat parent:Monoid Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsB :-> [mappend parent:Monoid Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsC :-> [mempty parent:Monoid Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsD :-> [Monoid TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsE :-> [<> parent:Semigroup Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsF :-> [Semigroup TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsG :-> [Applicative TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsH :-> [Functor TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsI :-> [Monad TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)],
0_ESfsN :-> [== parent:Eq Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfsO :-> [>= parent:Ord Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfsP :-> [Ord TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfsQ :-> [Eq TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Classes’)],
0_ESfsR :-> [Right parent:Either ConLike ConInfo {con_ty: ConIsData ([Left,
Right]), fields: ConHasPositionalArgs}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Either’)],
0_ESfsS :-> [Left parent:Either ConLike ConInfo {con_ty: ConIsData ([Left,
Right]), fields: ConHasPositionalArgs}
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Either’)],
0_ESfsT :-> [Either TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Either’)],
0_ESfsV :-> [zip Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfsW :-> [filter Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.List’)],
0_ESfsX :-> [fromInteger parent:Num Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESfsY :-> [negate parent:Num Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESfsZ :-> [Num TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Num’)],
0_ESft0 :-> [Read TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Read’)],
0_ESft1 :-> [realToFrac Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESft2 :-> [fromIntegral Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESft3 :-> [toRational parent:Real Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESft4 :-> [toInteger parent:Integral Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESft5 :-> [fromRational parent:Fractional Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESft8 :-> [Rational TyCon type synonym
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESftb :-> [RealFrac TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESftc :-> [Fractional TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESftd :-> [Integral TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESfte :-> [Real TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Real’)],
0_ESftf :-> [print Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.System.IO’)],
0_ESftg :-> [Traversable TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Data.Traversable’)],
0_ESfth :-> [enumFromTo parent:Enum Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESfti :-> [enumFromThenTo parent:Enum Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESftj :-> [enumFromThen parent:Enum Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESftk :-> [enumFrom parent:Enum Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESftl :-> [Enum TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESftm :-> [Bounded TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Enum’)],
0_ESftt :-> [RealFloat TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESftu :-> [Floating TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Float’)],
0_ESftV :-> [IO TyCon newtype
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’)],
0_ESfQV :-> [seq Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Prim’)],
0_ESfQW :-> [MonadFail TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Control.Monad.Fail’)],
0_ESfQX :-> [fail parent:MonadFail Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Control.Monad.Fail’)]]rnTycl dependency analysis made groups []
Start rnmono
rnImplicitTvOccs3 lines
[] []
addUsedGRE String
rnImplicitTvOccs3 lines
[a, a] [a]
addUsedGRE Show
checkThLocalTyName a
checkThLocalTyName a {0} Comp Comp
checkThLocalTyName a
checkThLocalTyName a {0} Comp Comp
addUsedGRE String
addUsedGRE show
checkThLocalName show {0} Comp Comp
checkThLocalName x {0} Comp Comp
addUsedGRE ++
checkThLocalName ++ {0} Comp Comp
lookupFixityRn_either:3 lines
looking up name in iface and found: ++
infixr 5checkThLocalName describe {0} Comp Comp
rnImplicitTvOccs3 lines
[] []
addUsedGRE Int
finish rnmono5 lines
describe :: Show a => a -> String describe x = "value: " ++ show x use :: String use = describe (42 :: Int)
rnSrcDecls fixity all_bndrs: {describe, use}
finish rnSrc5 lines
describe :: Show a => a -> String describe x = "value: " ++ show x use :: String use = describe (42 :: Int)
finish Dus4 lines
[(Just {}, {}), (Just {describe}, {++, show}),
(Just {use}, {Int, describe}), (Nothing, {Show, String}),
(Nothing, {}), (Nothing, {})]rn13
rn13-plugin
lookupQualifiedNameGHCi: off main
rnExports: Exports: [describe, use]
RUN6 lines
[(Just {}, {}), (Just {describe}, {++, show}),
(Just {use}, {Int, describe}), (Nothing, {Show, String}),
(Nothing, {}), (Nothing, {}), (Nothing, {}), (Nothing, {}),
(Nothing, {}), (Nothing, {}), (Nothing, {}),
(Nothing, {describe, use})]warnUnusedImportDecls20 lines
Uses: [Int TyCon data type
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Types’),
++ Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’),
show parent:Show Vanilla
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’),
String TyCon type synonym
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’),
Show TyCon class
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Show’),
String TyCon type synonym
imported from ‘Prelude’ at examples/traces/Dict.hs:3:8-11
(and originally defined in ‘GHC.Internal.Base’)]
Import usage []The typechecker and constraint solver, step by step: unifications, the work list, the inert set. Open a section to descend.-ddump-tc-trace
Adding diagnostic:3 lines
examples/traces/Dict.hs:1:1:: [GHC-20540]
Module ‘Prelude’ implicitly imported.checkFamInstConsistency [Prelude]
init_consistent_set [(Prelude, 7)]
checkManySize5 lines
mod: Prelude m1: 7 m2: 0 product: 0
Tc2 (src)
Tc3
tcExtendKindEnvList []
tcExtendKindEnvList []
tcDeriving []
rnd
Adding instances:
Tc4
Tc5
tcExtendKindEnvList []
tcHsSigType3215 lines
String
Residual: WC {}
Level: 1
final wc = WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }}
ev_binds_var = CoEvBindsVar<aDt>
current evbinds = {}
simples: {}
errs: {}pushLevelAndSolveEqualitiesX62 lines
Called from tc_lhs_sig_type
newAnonMetaTyVar t[tau:1] :: GHC.Internal.Types.RuntimeRep
lk1 String
tcInferTyApps57 lines
String
[]
final wc = WC {}
ev_binds_var = CoEvBindsVar<aDr>
current evbinds = {}tcInferTyApps } String :: *
checkExpectedKind3 lines
String *
checkExpectedKindX4 lines
String act_kind': * exp_kind: TYPE t[tau:1]
u_tys3 lines
tclvl 1 * ~nominal TYPE t[tau:1]
go-tycon6 lines
TYPE [GHC.Internal.Types.LiftedRep] [t[tau:1]] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal GHC.Internal.Types.LiftedRep t[tau:1]
u_tys3 lines
tclvl 1 GHC.Internal.Types.LiftedRep ~nominal t[tau:1]
u_tys5 lines
tclvl 1 GHC.Internal.Types.RuntimeRep ~nominal GHC.Internal.Types.RuntimeRep
u_tys yields no coercion
uUnfilledVar2 ok5 lines
t[tau:1] :: GHC.Internal.Types.RuntimeRep GHC.Internal.Types.LiftedRep :: GHC.Internal.Types.RuntimeRep True <GHC.Internal.Types.RuntimeRep>_N
writeMetaTyVar2 lines
t[tau:1] :: GHC.Internal.Types.RuntimeRep := GHC.Internal.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind4 lines
* TYPE t[tau:1] <*>_N
newNoTcEvBinds unique = aDr
solveWanteds4 lines
Level = 1
WC {}solveWanteds
tryDefaulting3 lines
WC {}tryDefaulting } WC {}
pushLevelAndSolveEqualities
doNotQuantifyTyVars has nothing to error on
tc_lhs_sig_type3 lines
HsOuterImplicit: [] HsOuterImplicit: []
kindGeneralizeSome4 lines
type: String
dvs: DV {dv_kvs = {}, dv_tvs = {}, dv_cvs = {}}
filtered_dvs: DV {dv_kvs = {}, dv_tvs = {}, dv_cvs = {}}quantifyTyVars has nothing to quantify
newNoTcEvBinds unique = aDs
tcHsSigType 212 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }newNoTcEvBinds unique = aDt
solveWanteds136 lines
Level = 0
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }}
iterations = 1
residual = WC {}
unsolved_implics = {Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }}simplify_loop iteration=0 (definitely_redo = True, 0 simples to solve)
simplify_loop: wc =13 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }}solveSimpleWanteds6 lines
Mode: TcSMode{}
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Wanteds to solve: {}solveSimpleWanteds end
solveNestedImplications starting84 lines
has_given_eqs = NoGivenEqs
res_implic = Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }
implication evbinds = {}
implication tvcs = []solveImplication68 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }
Inerts {Innermost given equalities = 0
Given eqs at this level = False}
final wc = WC {}
ev_binds_var = CoEvBindsVar<aDs>
current evbinds = {}
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }solveWanteds4 lines
Level = 1
WC {}solveWanteds
getHasGivenEqs7 lines
given_eqs: False
ge_lvl: 0
ambient level: 1
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Insols: {}solveImplication 23 lines
{}
WC {}solveImplication 33 lines
ev_binds_var CoEvBindsVar<aDs>
implication evbinds = {}setImplicationStatus22 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }neededEvVars9 lines
old_need_implic: ENS{ens_dms = {} ens_fvs = {}}
new_need_implic: ENS{ens_dms = {} ens_fvs = {}}
used_covars: {}
need_ignoring_dms: {}
need_from_dms: {}
need: ENS{ens_dms = {} ens_fvs = {}}
ev_binds: []
live_ev_binds: []setImplicationStatus
solveImplication end
solveNestedImplications end
resetUnificationFlag3 lines
ambient: 0 unif_lvl: Nothing
unif_happened False
solveWanteds
zonkSimples done: {}
zonkSimples done: {}
emitFlatConstraints14 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDs>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘use’ }}emitFlatConstraints
emitDelayedErrors {}
checkValidType String :: *
done ct String
Ambiguity check for2955 lines
String
tc_sub_type (general case)3 lines
ty_actual = String ty_expected = String
u_tys3 lines
tclvl 0 String ~nominal String
u_tys yields no coercion
simplifyAmbiguityCheck16 lines
type = String
wanted = WC {}
final wc = WC {}
ev_binds_var = EvBindsVar<aDu>
current evbinds = {}newTcEvBinds unique = aDu
solveWanteds4 lines
Level = 0
WC {}solveWanteds
tryDefaulting for ambiguity4 lines
WC {}tryDefaulting } WC {}
newTcEvBinds unique = aDv
End simplifyAmbiguityCheck
} Done ambiguity check for String
checkValidType done String :: *
end tcHsSigType } String
tcuser String
tcHsSigType2926 lines
Show a => a -> String
Residual: WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
Level: 1
final wc = WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
ev_binds_var = CoEvBindsVar<aH3>
current evbinds = {}
simples: {}
errs: {}pushLevelAndSolveEqualitiesX539 lines
Called from tc_lhs_sig_type
newAnonMetaTyVar t[tau:1] :: GHC.Internal.Types.RuntimeRep
pushLevelAndCaptureConstraints535 lines
2
newMetaKindVar k[tau:2]
bindImplicitTKBndrsX3 lines
[a] [a[sk:2]]
tc_extend_local_env [(a, Type variable ‘a’ = a[sk:2] :: k[tau:2])]
tcExtendBinderStack [a a[sk:2]]
lk1 Show
tcInferTyApps526 lines
Show [HsValArg a]
tcInferTyApps (vis normal app)8 lines
[->] *
a
*
<InScope = {}
IdSubst = []
TvSubst = []
CvSubst = []>lk1 a
tcInferTyApps514 lines
a []
tcInferTyApps } a[sk:2] :: k[tau:2]
checkExpectedKind3 lines
a[sk:2] k[tau:2]
checkExpectedKindX4 lines
a act_kind': k[tau:2] exp_kind: *
u_tys3 lines
tclvl 2 k[tau:2] ~nominal *
u_tys3 lines
tclvl 2 * ~nominal *
u_tys yields no coercion
uUnfilledVar2 ok5 lines
k[tau:2] :: * * :: * True <*>_N
writeMetaTyVar k[tau:2] :: * := *
u_tys yields no coercion
checkExpectedKind4 lines
k[tau:2] * <*>_N
tcInferTyApps (vis normal app) 2 *
tcInferTyApps } Show a[sk:2] :: Constraint
checkExpectedKind3 lines
Show a[sk:2] Constraint
checkExpectedKindX4 lines
Show a act_kind': Constraint exp_kind: Constraint
newAnonMetaTyVar t[tau:2] :: GHC.Internal.Types.RuntimeRep
tc_fun_type3 lines
a String
newAnonMetaTyVar t[tau:2] :: GHC.Internal.Types.RuntimeRep
newAnonMetaTyVar t[tau:2] :: GHC.Internal.Types.RuntimeRep
lk1 a
tcInferTyApps469 lines
a []
tcInferTyApps } a[sk:2] :: k[tau:2]
checkExpectedKind3 lines
a[sk:2] k[tau:2]
checkExpectedKindX4 lines
a act_kind': k[tau:2] exp_kind: TYPE t[tau:2]
u_tys3 lines
tclvl 2 k[tau:2] ~nominal TYPE t[tau:2]
found filled tyvar k[tau:2] :-> *
u_tys3 lines
tclvl 2 * ~nominal TYPE t[tau:2]
go-tycon6 lines
TYPE [GHC.Internal.Types.LiftedRep] [t[tau:2]] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal GHC.Internal.Types.LiftedRep t[tau:2]
u_tys3 lines
tclvl 2 GHC.Internal.Types.LiftedRep ~nominal t[tau:2]
u_tys5 lines
tclvl 2 GHC.Internal.Types.RuntimeRep ~nominal GHC.Internal.Types.RuntimeRep
u_tys yields no coercion
uUnfilledVar2 ok5 lines
t[tau:2] :: GHC.Internal.Types.RuntimeRep GHC.Internal.Types.LiftedRep :: GHC.Internal.Types.RuntimeRep True <GHC.Internal.Types.RuntimeRep>_N
writeMetaTyVar2 lines
t[tau:2] :: GHC.Internal.Types.RuntimeRep := GHC.Internal.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind4 lines
k[tau:2] TYPE t[tau:2] <*>_N
lk1 String
tcInferTyApps417 lines
String
[]
final wc = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
ev_binds_var = CoEvBindsVar<aDE>
current evbinds = {}
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}tcInferTyApps } String :: *
checkExpectedKind3 lines
String *
checkExpectedKindX4 lines
String act_kind': * exp_kind: TYPE t[tau:2]
u_tys3 lines
tclvl 2 * ~nominal TYPE t[tau:2]
go-tycon6 lines
TYPE [GHC.Internal.Types.LiftedRep] [t[tau:2]] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal GHC.Internal.Types.LiftedRep t[tau:2]
u_tys3 lines
tclvl 2 GHC.Internal.Types.LiftedRep ~nominal t[tau:2]
u_tys5 lines
tclvl 2 GHC.Internal.Types.RuntimeRep ~nominal GHC.Internal.Types.RuntimeRep
u_tys yields no coercion
uUnfilledVar2 ok5 lines
t[tau:2] :: GHC.Internal.Types.RuntimeRep GHC.Internal.Types.LiftedRep :: GHC.Internal.Types.RuntimeRep True <GHC.Internal.Types.RuntimeRep>_N
writeMetaTyVar2 lines
t[tau:2] :: GHC.Internal.Types.RuntimeRep := GHC.Internal.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind4 lines
* TYPE t[tau:2] <*>_N
checkExpectedKind3 lines
a[sk:2] -> String *
checkExpectedKindX4 lines
a -> String act_kind': * exp_kind: TYPE t[tau:2]
u_tys3 lines
tclvl 2 * ~nominal TYPE t[tau:2]
go-tycon6 lines
TYPE [GHC.Internal.Types.LiftedRep] [t[tau:2]] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal GHC.Internal.Types.LiftedRep t[tau:2]
u_tys3 lines
tclvl 2 GHC.Internal.Types.LiftedRep ~nominal t[tau:2]
u_tys5 lines
tclvl 2 GHC.Internal.Types.RuntimeRep ~nominal GHC.Internal.Types.RuntimeRep
u_tys yields no coercion
uUnfilledVar2 ok5 lines
t[tau:2] :: GHC.Internal.Types.RuntimeRep GHC.Internal.Types.LiftedRep :: GHC.Internal.Types.RuntimeRep True <GHC.Internal.Types.RuntimeRep>_N
writeMetaTyVar2 lines
t[tau:2] :: GHC.Internal.Types.RuntimeRep := GHC.Internal.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind4 lines
* TYPE t[tau:2] <*>_N
checkExpectedKind3 lines
Show a[sk:2] => a[sk:2] -> String *
checkExpectedKindX4 lines
Show a => a -> String act_kind': * exp_kind: TYPE t[tau:1]
u_tys3 lines
tclvl 2 * ~nominal TYPE t[tau:1]
go-tycon6 lines
TYPE [GHC.Internal.Types.LiftedRep] [t[tau:1]] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal GHC.Internal.Types.LiftedRep t[tau:1]
u_tys3 lines
tclvl 2 GHC.Internal.Types.LiftedRep ~nominal t[tau:1]
uUnfilledVar2 not ok4 lines
tv1: t[tau:1] ty2: GHC.Internal.Types.LiftedRep simple-unify-chk: SUC_CannotUnify
New coercion hole:2 lines
co :: GHC.Internal.Types.LiftedRep GHC.Internal.Prim.~# t[tau:1]
utype_defer5 lines
nominal GHC.Internal.Types.LiftedRep t[tau:1] In the type signature: describe :: Show a => a -> String
utype_defer2 {co}
u_tys yields coercion: {co}
u_tys yields coercion: (TYPE {co})_N
checkExpectedKind4 lines
*
TYPE t[tau:1]
(TYPE {co})_NpushLevelAndCaptureConstraints } 2
newNoTcEvBinds unique = aDD
newNoTcEvBinds unique = aDE
solveWanteds226 lines
Level = 1
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted =
WC {wc_simple =
[W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
iterations = 1
residual = WC {}
unsolved_implics = {Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}simplify_loop iteration=0 (definitely_redo = True, 0 simples to solve)
simplify_loop: wc =16 lines
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted =
WC {wc_simple =
[W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}solveSimpleWanteds6 lines
Mode: TcSMode{}
Inerts: {Innermost given equalities = 1
Given eqs at this level = False}
Wanteds to solve: {}solveSimpleWanteds end
solveNestedImplications starting168 lines
has_given_eqs = NoGivenEqs
res_implic = Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }
implication evbinds = {}
implication tvcs = [<GHC.Internal.Types.LiftedRep>_N]solveImplication152 lines
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted =
WC {wc_simple =
[W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }
Inerts {Innermost given equalities = 1
Given eqs at this level = False}
final wc = WC {}
ev_binds_var = CoEvBindsVar<aDD>
current evbinds = {}
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }solveWanteds85 lines
Level = 2
WC {wc_simple =
[W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)}
iterations = 1
residual = WC {}simplify_loop iteration=0 (definitely_redo = True, 1 simples to solve)
simplify_loop: wc =4 lines
WC {wc_simple =
[W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)}solveSimpleWanteds68 lines
Mode: TcSMode{}
Inerts: {Innermost given equalities = 1
Given eqs at this level = False}
Wanteds to solve: {[W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)}Emitting fresh work3 lines
{[W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)}-----------------------------
Start solver pipeline52 lines
tclevel = 2
work item = [W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)
inerts = {Innermost given equalities = 1
Given eqs at this level = False}
rest of worklist = WL {}
Stop(Solved by unification
ev: [W] hole{co} {0} :: GHC.Internal.Types.LiftedRep ~# t[tau:1])solve40 lines
workitem = [W] hole{co} {0}
:: GHC.Internal.Types.LiftedRep ~# t[tau:1] (CNonCanonical)canonicaliseEquality5 lines
[W] hole{co} {0} :: GHC.Internal.Types.LiftedRep ~# t[tau:1]
nominal equality
GHC.Internal.Types.LiftedRep
t[tau:1]rewrite31 lines
GHC.Internal.Types.LiftedRep
rewrite } GHC.Internal.Types.LiftedRep
rewrite28 lines
t[tau:1]
Unfilled tyvar (t[tau:1] :: GHC.Internal.Types.RuntimeRep)
rewrite } t[tau:1]
can_eq_nc: go round again4 lines
[W] hole{co} {0} :: GHC.Internal.Types.LiftedRep ~# t[tau:1]
GHC.Internal.Types.LiftedRep
t[tau:1]can_eq23 lines
GHC.Internal.Types.BoxedRep GHC.Internal.Types.Lifted t[tau:1]
canEqCanLHSFinish5 lines
ev: [W] hole{co} {0} :: GHC.Internal.Types.LiftedRep ~# t[tau:1]
swapped: Is-swapped
lhs: t[tau:1]
rhs: GHC.Internal.Types.LiftedRepSneaky unification:5 lines
Unifies: t[tau:1] := GHC.Internal.Types.LiftedRep Coercion: t[tau:1] ~ GHC.Internal.Types.LiftedRep Left Kind is: GHC.Internal.Types.RuntimeRep Right Kind is: GHC.Internal.Types.RuntimeRep
unifyTyVar t[tau:1] := GHC.Internal.Types.LiftedRep
writeMetaTyVar2 lines
t[tau:1] :: GHC.Internal.Types.RuntimeRep := GHC.Internal.Types.LiftedRep
Filling coercion hole co := <GHC.Internal.Types.LiftedRep>_N
kickOutAfterUnification3 lines
[t[tau:1]] n_kicked = ()
end solve
Step 1[l:2,d:0] Solved by unification:2 lines
[W] hole{co} {0} :: GHC.Internal.Types.LiftedRep ~# t[tau:1]End solver pipeline
getUnsolvedInerts5 lines
tv eqs = {}
fun eqs = {}
dicts = {}
irreds = {}solveSimpleWanteds end
resetUnificationFlag3 lines
ambient: 2 unif_lvl: Just 1
unif_happened False
solveWanteds
getHasGivenEqs7 lines
given_eqs: False
ge_lvl: 1
ambient level: 2
Inerts: {Innermost given equalities = 1
Given eqs at this level = False}
Insols: {}solveImplication 23 lines
{}
WC {}solveImplication 33 lines
ev_binds_var CoEvBindsVar<aDD>
implication evbinds = {}setImplicationStatus22 lines
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }neededEvVars9 lines
old_need_implic: ENS{ens_dms = {} ens_fvs = {}}
new_need_implic: ENS{ens_dms = {} ens_fvs = {}}
used_covars: {}
need_ignoring_dms: {}
need_from_dms: {}
need: ENS{ens_dms = {} ens_fvs = {}}
ev_binds: []
live_ev_binds: []setImplicationStatus
solveImplication end
solveNestedImplications end
resetUnificationFlag3 lines
ambient: 1 unif_lvl: Just 1
unif_happened True
solveWanteds
tryDefaulting32 lines
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}zonkSimples done: {}
zonkSimples done: {}
applyDefaultingRules16 lines
wanteds = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = a[sk:2]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
groups = []
info = ([default Num (Integer, Double)], False)applyDefaultingRules } []
tryDefaulting
Constraint solver steps = 1
pushLevelAndSolveEqualities
doNotQuantifyTyVars has nothing to error on
tc_lhs_sig_type3 lines
HsOuterImplicit: [a] HsOuterImplicit: [a[sk:2]]
kindGeneralizeSome4 lines
type: forall a. (Show a => a -> String |> (TYPE {co})_N)
dvs: DV {dv_kvs = {}, dv_tvs = {}, dv_cvs = {}}
filtered_dvs: DV {dv_kvs = {}, dv_tvs = {}, dv_cvs = {}}quantifyTyVars has nothing to quantify
newNoTcEvBinds unique = aH2
tcHsSigType 224 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted =
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }newNoTcEvBinds unique = aH3
solveWanteds217 lines
Level = 0
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted =
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
iterations = 1
residual = WC {}
unsolved_implics = {Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}simplify_loop iteration=0 (definitely_redo = True, 0 simples to solve)
simplify_loop: wc =25 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted =
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}solveSimpleWanteds6 lines
Mode: TcSMode{}
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Wanteds to solve: {}solveSimpleWanteds end
solveNestedImplications starting141 lines
has_given_eqs = NoGivenEqs
res_implic = Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }
implication evbinds = {}
implication tvcs = []solveImplication125 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted =
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }
Inerts {Innermost given equalities = 0
Given eqs at this level = False}
final wc = WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
ev_binds_var = CoEvBindsVar<aH2>
current evbinds = {}
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }solveWanteds15 lines
Level = 1
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}solveWanteds
getHasGivenEqs7 lines
given_eqs: False
ge_lvl: 0
ambient level: 1
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Insols: {}solveImplication 214 lines
{}
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}solveImplication 33 lines
ev_binds_var CoEvBindsVar<aH2>
implication evbinds = {}setImplicationStatus34 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted =
WC {wc_impl =
Implic {
TcLevel = 2
Skolems = (a[sk:2] :: k[tau:2])
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aDD>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }neededEvVars9 lines
old_need_implic: ENS{ens_dms = {} ens_fvs = {}}
new_need_implic: ENS{ens_dms = {} ens_fvs = {}}
used_covars: {}
need_ignoring_dms: {}
need_from_dms: {}
need: ENS{ens_dms = {} ens_fvs = {}}
ev_binds: []
live_ev_binds: []setImplicationStatus
solveImplication end
solveNestedImplications end
resetUnificationFlag3 lines
ambient: 0 unif_lvl: Nothing
unif_happened False
solveWanteds
zonkSimples done: {}
zonkSimples done: {}
emitFlatConstraints14 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aH2>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for ‘describe’ }}emitFlatConstraints
emitDelayedErrors {}
checkValidType forall a. Show a => a -> String :: *
check_type3 lines
forall a. Show a => a -> String ArbitraryRank
check_valid_theta [Show a[sk:2]]
matchInstEnv92 lines
goal: Show [a[sk:2]]
matches: []
unify: [instance Show Double -- Defined in ‘GHC.Internal.Float’,
instance Show Float -- Defined in ‘GHC.Internal.Float’,
instance Show Bool -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Stack.Types.CallStack
-- Defined in ‘GHC.Internal.Show’,
instance Show Char -- Defined in ‘GHC.Internal.Show’,
instance Show Int -- Defined in ‘GHC.Internal.Show’,
instance Show Integer -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.KindRep
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.Levity
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show [a] -- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (Maybe a)
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.Module
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Bignum.Natural.Natural
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (GHC.Internal.Base.NonEmpty a)
-- Defined in ‘GHC.Internal.Show’,
instance Show Ordering -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.RuntimeRep
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (Solo a) -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Stack.Types.SrcLoc
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TrName
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j) =>
Show (a, b, c, d, e, f, g, h, i, j)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k) =>
Show (a, b, c, d, e, f, g, h, i, j, k)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m, Show n) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m, Show n, Show o) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b) => Show (a, b)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c) => Show (a, b, c)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d) => Show (a, b, c, d)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e) =>
Show (a, b, c, d, e)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f) =>
Show (a, b, c, d, e, f)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f,
Show g) =>
Show (a, b, c, d, e, f, g)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h) =>
Show (a, b, c, d, e, f, g, h)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i) =>
Show (a, b, c, d, e, f, g, h, i)
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TyCon
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TypeLitSort
-- Defined in ‘GHC.Internal.Show’,
instance Show () -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.VecCount
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.VecElem
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Base.Void
-- Defined in ‘GHC.Internal.Show’,
instance Show Word -- Defined in ‘GHC.Internal.Show’]matchClass multiple matches, deferring choice3 lines
dict Show a[sk:2] matches []
done ct forall a. Show a => a -> String
Ambiguity check for1986 lines
forall a. Show a => a -> String
tc_sub_type (general case)3 lines
ty_actual = forall a. Show a => a -> String ty_expected = forall a. Show a => a -> String
topSkol3 lines
[a[sk:2]] examples/traces/Dict.hs:5:1-33 [a[sk:1]] examples/traces/Dict.hs:5:13-33
tcSkolemiseGeneral2 lines
the type signature for ‘describe’ [a[sk:1]] [$dShow]
pushLevelAndCaptureConstraints1976 lines
1
cloneAnonMetaTyVar a[tau:1] :: *
instCallConstraints [$dShow]
Instantiating8 lines
origin arising from a type ambiguity check for
the type signature for ‘describe’
tvs [a[sk:2]]
theta [Show a[sk:2]]
type a[sk:2] -> String
with a[tau:1]
theta: [Show a[tau:1]]u_tys3 lines
tclvl 1 a[tau:1] -> String ~nominal a[sk:1] -> String
u_tys3 lines
tclvl 1 Many ~nominal Many
u_tys yields no coercion
u_tys3 lines
tclvl 1 a[tau:1] ~nominal a[sk:1]
u_tys3 lines
tclvl 1 * ~nominal *
u_tys yields no coercion
uUnfilledVar2 ok5 lines
a[tau:1] :: * a[sk:1] :: * True <*>_N
writeMetaTyVar a[tau:1] :: * := a[sk:1]
u_tys yields no coercion
u_tys3 lines
tclvl 1 String ~nominal String
u_tys yields no coercion
u_tys yields no coercion
pushLevelAndCaptureConstraints } 1
newTcEvBinds unique = aPd
checkConstraints3 lines
1 [a[sk:1]]
simplifyAmbiguityCheck518 lines
type = forall a. Show a => a -> String
wanted = WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = MaybeGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted =
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}
final wc = WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}
ev_binds_var = EvBindsVar<aPe>
current evbinds = {}
WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}newTcEvBinds unique = aPe
solveWanteds392 lines
Level = 0
WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = MaybeGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted =
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}
iterations = 1
residual = WC {}
unsolved_implics = {Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}simplify_loop iteration=0 (definitely_redo = True, 0 simples to solve)
simplify_loop: wc =15 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = MaybeGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted =
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}solveSimpleWanteds6 lines
Mode: TcSMode{}
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Wanteds to solve: {}solveSimpleWanteds end
solveNestedImplications starting335 lines
has_given_eqs = NoGivenEqs
res_implic = Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }
implication evbinds = {[W] $dShow = $dShow}
implication tvcs = []solveImplication318 lines
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = MaybeGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted =
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }
Inerts {Innermost given equalities = 0
Given eqs at this level = False}
{Dictionaries = {[G] $dShow {0} :: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
final wc = WC {}
ev_binds_var = EvBindsVar<aPd>
current evbinds = {[W] $dShow = $dShow}
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }solveSimpleGivens38 lines
[[G] $dShow {0} :: Show a[sk:1] (CNonCanonical)]Emitting fresh work2 lines
{[G] $dShow {0} :: Show a[sk:1] (CNonCanonical)}-----------------------------
Start solver pipeline32 lines
tclevel = 1
work item = [G] $dShow {0} :: Show a[sk:1] (CNonCanonical)
inerts = {Innermost given equalities = 0
Given eqs at this level = False}
rest of worklist = WL {}
Stop(Kept inert DictCt
ev: [G] $dShow {0} :: Show a[sk:1])solve22 lines
workitem = [G] $dShow {0} :: Show a[sk:1] (CNonCanonical)rewriteEvidence [G] $dShow {0} :: Show a[sk:1]
rewrite18 lines
Show a[sk:1]
Unfilled tyvar a[sk:1]
rewrite } Show a[sk:1]
solveDictNC3 lines
Show a[sk:1]
[G] $dShow {0} :: Show a[sk:1]mk_strict4 lines
[G] $dShow {0} :: Show a[sk:1]
arising from the type signature for:
describe :: forall a. Show a => a -> StringsolveDict [G] $dShow {0} :: Show a[sk:1] (CDictCan)
tryInertDicts:no3 lines
[G] $dShow {0} :: Show a[sk:1] (CDictCan)
Show [a[sk:1]]Adding inert dict3 lines
[G] $dShow {0} :: Show a[sk:1] (CDictCan)
Show [a[sk:1]]end solve
Step 1[l:1,d:0] Kept inert DictCt: [G] $dShow {0} :: Show a[sk:1]
End solver pipeline
End solveSimpleGivens
solveWanteds208 lines
Level = 1
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
iterations = 1
residual = WC {}simplify_loop iteration=0 (definitely_redo = True, 1 simples to solve)
simplify_loop: wc =2 lines
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}solveSimpleWanteds195 lines
Mode: TcSMode{}
Inerts: {Dictionaries = {[G] $dShow {0} :: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
Wanteds to solve: {[W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}Emitting fresh work2 lines
{[W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}-----------------------------
Start solver pipeline180 lines
tclevel = 1
work item = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)
inerts = {Dictionaries = {[G] $dShow {0}
:: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
rest of worklist = WL {}
Stop(Dict equal [W] $dShow {0} :: Show a[sk:1] (CDictCan)
ev: [W] $dShow {0} :: Show a[sk:1])solve166 lines
workitem = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)rewriteEvidence [W] $dShow {0} :: Show a[tau:1]
rewrite162 lines
Show a[tau:1]
Following filled tyvar a[tau:1] = a[sk:1]
Unfilled tyvar a[sk:1]
rewrite } Show a[sk:1]
solveDictNC3 lines
Show a[sk:1]
[W] $dShow {0} :: Show a[sk:1]solveDict [W] $dShow {0} :: Show a[sk:1] (CDictCan)
tryTcS153 lines
old_ev_binds: EvBindsVar<aPd>
new_ev_binds: EvBindsVar<aPd>
{Dictionaries = {[G] $dShow {0} :: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
iterations = 1
residual = WC {wc_simple =
[W] $dShow {0} :: Show a[sk:1] (CDictCan)}solveSimpleWanteds137 lines
Mode: TcSMode{SkipOverlappable}
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Wanteds to solve: {[W] $dShow {0} :: Show a[sk:1] (CDictCan)}Emitting fresh work {[W] $dShow {0} :: Show a[sk:1] (CDictCan)}
-----------------------------
Start solver pipeline124 lines
tclevel = 1
work item = [W] $dShow {0} :: Show a[sk:1] (CDictCan)
inerts = {Innermost given equalities = 0
Given eqs at this level = False}
rest of worklist = WL {}
Stop(Kept inert DictCt
ev: [W] $dShow {0} :: Show a[sk:1])solve114 lines
workitem = [W] $dShow {0} :: Show a[sk:1] (CDictCan)rewriteEvidence [W] $dShow {0} :: Show a[sk:1]
rewrite110 lines
Show a[sk:1]
Unfilled tyvar a[sk:1]
rewrite } Show a[sk:1]
solveDict [W] $dShow {0} :: Show a[sk:1] (CDictCan)
tryInertDicts:no3 lines
[W] $dShow {0} :: Show a[sk:1] (CDictCan)
Show [a[sk:1]]matchClassInst pred = Show a[sk:1]102 lines
No local instance for Show a[sk:1]
matchInstEnv92 lines
goal: Show [a[sk:1]]
matches: []
unify: [instance Show Double -- Defined in ‘GHC.Internal.Float’,
instance Show Float -- Defined in ‘GHC.Internal.Float’,
instance Show Bool -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Stack.Types.CallStack
-- Defined in ‘GHC.Internal.Show’,
instance Show Char -- Defined in ‘GHC.Internal.Show’,
instance Show Int -- Defined in ‘GHC.Internal.Show’,
instance Show Integer -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.KindRep
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.Levity
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show [a] -- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (Maybe a)
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.Module
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Bignum.Natural.Natural
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (GHC.Internal.Base.NonEmpty a)
-- Defined in ‘GHC.Internal.Show’,
instance Show Ordering -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.RuntimeRep
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (Solo a) -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Stack.Types.SrcLoc
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TrName
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j) =>
Show (a, b, c, d, e, f, g, h, i, j)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k) =>
Show (a, b, c, d, e, f, g, h, i, j, k)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m, Show n) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m, Show n, Show o) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b) => Show (a, b)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c) => Show (a, b, c)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d) => Show (a, b, c, d)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e) =>
Show (a, b, c, d, e)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f) =>
Show (a, b, c, d, e, f)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f,
Show g) =>
Show (a, b, c, d, e, f, g)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h) =>
Show (a, b, c, d, e, f, g, h)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i) =>
Show (a, b, c, d, e, f, g, h, i)
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TyCon
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TypeLitSort
-- Defined in ‘GHC.Internal.Show’,
instance Show () -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.VecCount
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.VecElem
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Base.Void
-- Defined in ‘GHC.Internal.Show’,
instance Show Word -- Defined in ‘GHC.Internal.Show’]matchClass multiple matches, deferring choice3 lines
dict Show a[sk:1] matches []
} matchClassInst global result NotSure
try_fundeps [W] $dShow {0} :: Show a[sk:1] (CDictCan)
Adding inert dict3 lines
[W] $dShow {0} :: Show a[sk:1] (CDictCan)
Show [a[sk:1]]end solve
Step 3[l:1,d:0] Kept inert DictCt: [W] $dShow {0} :: Show a[sk:1]
End solver pipeline
getUnsolvedInerts5 lines
tv eqs = {}
fun eqs = {}
dicts = {[W] $dShow {0} :: Show a[sk:1] (CDictCan)}
irreds = {}solveSimpleWanteds end
tryTcS } False
lookupInertDict:KeepInert [W] $dShow {0} :: Show a[sk:1] (CDictCan)
addTcEvBind5 lines
EvBindsVar: aPd ev_bind: [W] $dShow = $dShow bnds: [] bnds': [aPc :-> [W] $dShow = $dShow]
end solve
Step 3[l:1,d:0] Dict equal [W] $dShow {0}3 lines
:: Show a[sk:1] (CDictCan):
[W] $dShow {0} :: Show a[sk:1]End solver pipeline
getUnsolvedInerts5 lines
tv eqs = {}
fun eqs = {}
dicts = {}
irreds = {}solveSimpleWanteds end
resetUnificationFlag3 lines
ambient: 1 unif_lvl: Nothing
unif_happened False
solveWanteds
getHasGivenEqs8 lines
given_eqs: False
ge_lvl: 0
ambient level: 1
Inerts: {Dictionaries = {[G] $dShow {0} :: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
Insols: {}solveImplication 23 lines
{}
WC {}solveImplication 33 lines
ev_binds_var EvBindsVar<aPd>
implication evbinds = {[W] $dShow = $dShow}setImplicationStatus23 lines
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }neededEvVars9 lines
old_need_implic: ENS{ens_dms = {} ens_fvs = {}}
new_need_implic: ENS{ens_dms = {} ens_fvs = {}}
used_covars: {}
need_ignoring_dms: {$dShow}
need_from_dms: {}
need: ENS{ens_dms = {} ens_fvs = {$dShow}}
ev_binds: [aPc :-> [W] $dShow = $dShow]
live_ev_binds: [aPc :-> [W] $dShow = $dShow]setImplicationStatus
solveImplication end
solveNestedImplications end
resetUnificationFlag3 lines
ambient: 0 unif_lvl: Nothing
unif_happened False
solveWanteds
tryDefaulting for ambiguity15 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}tryDefaulting
Constraint solver steps = 3
newTcEvBinds unique = aPf
reportUnsolved63 lines
type errors: ErrorWithoutFlag expr holes: ErrorWithoutFlag type holes: ErrorWithoutFlag scope holes: ErrorWithoutFlag
reportUnsolved (before zonking and tidying)14 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}zonkSimples done: {}
zonkSimples done: {}
reportUnsolved (after zonking):17 lines
Free tyvars:
Bound occs: [a]
Tidy env: ([], [])
Wanted: WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPd>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}reportWanteds 16 lines
Simples = {}
Suppress = False
tidy_cts = []
tidy_items1 = []
tidy_errs = []reportWanteds suppressed: []
tryReporters17 lines
[] []
tryReporters } []
tryReporters13 lines
[] []
tryReporters } []
reportImplic4 lines
tidy env: ([], []) skols: a[sk:1] tidy skols: a[sk:1]
reportWanteds empty WC
tryReporters4 lines
[] []
tryReporters } []
reportUnsolved
End simplifyAmbiguityCheck
} Done ambiguity check for forall a. Show a => a -> String
checkValidType done forall a. Show a => a -> String :: *
end tcHsSigType } forall a. Show a => a -> String
tcuser forall a. Show a => a -> String
tc_extend_local_env6 lines
[(use, Identifier[use::String, TopLevelLet {} True]),
(describe,
Identifier[describe::forall a.
Show a =>
a -> String, TopLevelLet {} True])]------------------------------------------------
Bindings for1404 lines
[describe]
Generalisation plan2 lines
CheckGen describe :: forall a. Show a => a -> String
tcPolyCheck describe :: forall a. Show a => a -> String
newAnonMetaTyVar t[tau:0] :: GHC.Internal.Types.Multiplicity
topSkol3 lines
[a[sk:2]] examples/traces/Dict.hs:5:1-33 [a[sk:1]] examples/traces/Dict.hs:5:1-33
tcSkolemiseGeneral2 lines
the type signature for ‘describe’ [a[sk:1]] [$dShow]
pushLevelAndCaptureConstraints1393 lines
1
tc_extend_local_env [(a, Type variable ‘a’ = a[sk:1] :: *)]
tcExtendBinderStack [a a[sk:1]]
tcExtendBinderStack [describe[<NotTopLevel>]]
tcFunBindMatches 15 lines
describe
t[tau:0]
Check{a[sk:1] -> String}
1tcFunBindMatches 26 lines
ctxt: the type signature for ‘describe’
arity: 1
invis_pat_tys: [forall @a[sk:1]]
pat_tys: [Check{a[sk:1]}]
rhs_ty: Check{String}tcPatBndr(not let)3 lines
x a[sk:1]
tcExtendBinderStack [x[<NotTopLevel>]]
tc_extend_local_env [(x, Identifier[x::a[sk:1], NotLetBound])]
tcBody Check{String}
tcApp1371 lines
rn_expr: "value: " ++ show x
rn_fun: (++)
fun_ctxt: VACall 0 (++) examples/traces/Dict.hs:6:24-25
rn_args: [EValArg{VACall 1 (++) <generated>} "value: ",
EValArg{VACall 2 (++) <generated>} show x,
EExpand "value: " ++ show x]tcInferId ++ :: forall a. [a] -> [a] -> [a]
tcInstFun8 lines
tc_fun (++)
fun_sigma forall a. [a] -> [a] -> [a]
fun_ctxt VACall 0 (++) examples/traces/Dict.hs:6:24-25
args: [EValArg{VACall 1 (++) <generated>} "value: ",
EValArg{VACall 2 (++) <generated>} show x,
EExpand "value: " ++ show x]
do_ql NoQLcloneAnonMetaTyVar a[tau:1] :: *
Instantiating7 lines
origin arising from a use of ‘++’ tvs [a] theta [] type [] a -> [] a -> [] a with a[tau:1] theta: []
tcInstFun:ret [a[tau:1]]
tcApp:NoQL3 lines
(++) [a[tau:1]]
newAnonMetaTyVar t[tau:1] :: *
checkResultTy1342 lines
tc_fun: (++) app_res_rho: [a[tau:1]] res_ty: String ds_flag: Shallow
u_tys3 lines
tclvl 1 [a[tau:1]] ~nominal String
go-tycon6 lines
[] [a[tau:1]] [Char] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal a[tau:1] Char
u_tys3 lines
tclvl 1 a[tau:1] ~nominal Char
u_tys3 lines
tclvl 1 * ~nominal *
u_tys yields no coercion
uUnfilledVar2 ok5 lines
a[tau:1] :: * Char :: * True <*>_N
writeMetaTyVar a[tau:1] :: * := Char
u_tys yields no coercion
u_tys yields no coercion
checkResultTy 1 } <[Char]>_N
tcValArg4 lines
VACall 1 (++) <generated> arg type: [a[tau:1]] arg: "value: "
tcWrapResult3 lines
Actual: String
Expected: Check{[a[tau:1]]}tc_sub_type (general case)3 lines
ty_actual = String ty_expected = [a[tau:1]]
u_tys3 lines
tclvl 1 String ~nominal [a[tau:1]]
go-tycon6 lines
[] [Char] [a[tau:1]] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal Char a[tau:1]
u_tys3 lines
tclvl 1 Char ~nominal a[tau:1]
found filled tyvar a[tau:1] :-> Char
u_tys3 lines
tclvl 1 Char ~nominal Char
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
tcScalingUsage3 lines
Many UsageEnv: [] False
tcValArg4 lines
VACall 2 (++) <generated> arg type: [a[tau:1]] arg: show x
tcApp1268 lines
rn_expr: show x
rn_fun: show
fun_ctxt: VACall 0 show examples/traces/Dict.hs:6:27-30
rn_args: [EValArg{VACall 1 show <no location info>} x]tcInferId show :: forall a. Show a => a -> String
tcInstFun6 lines
tc_fun show
fun_sigma forall a. Show a => a -> String
fun_ctxt VACall 0 show examples/traces/Dict.hs:6:27-30
args: [EValArg{VACall 1 show <no location info>} x]
do_ql NoQLcloneAnonMetaTyVar a[tau:1] :: *
instCallConstraints [$dShow]
Instantiating7 lines
origin arising from a use of ‘show’ tvs [a] theta [Show a] type a -> String with a[tau:1] theta: [Show a[tau:1]]
tcInstFun:ret String
tcApp:NoQL3 lines
show String
newAnonMetaTyVar t[tau:1] :: *
checkResultTy1242 lines
tc_fun: show app_res_rho: String res_ty: [a[tau:1]] ds_flag: Shallow
u_tys3 lines
tclvl 1 String ~nominal [a[tau:1]]
go-tycon6 lines
[] [Char] [a[tau:1]] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal Char a[tau:1]
u_tys3 lines
tclvl 1 Char ~nominal a[tau:1]
found filled tyvar a[tau:1] :-> Char
u_tys3 lines
tclvl 1 Char ~nominal Char
u_tys yields no coercion
u_tys yields no coercion
u_tys yields no coercion
checkResultTy 1 } <[Char]>_N
tcValArg4 lines
VACall 1 show <no location info> arg type: a[tau:1] arg: x
tcApp1209 lines
rn_expr: x rn_fun: x fun_ctxt: VACall 0 x <no location info> rn_args: []
tcInferId x :: a[sk:1]
tcInstFun6 lines
tc_fun x fun_sigma a[sk:1] fun_ctxt VACall 0 x <no location info> args: [] do_ql NoQL
tcInstFun:ret a[sk:1]
tcApp:NoQL3 lines
x a[sk:1]
newAnonMetaTyVar t[tau:1] :: *
checkResultTy1192 lines
tc_fun: x app_res_rho: a[sk:1] res_ty: a[tau:1] ds_flag: Shallow
u_tys3 lines
tclvl 1 a[sk:1] ~nominal a[tau:1]
u_tys3 lines
tclvl 1 * ~nominal *
u_tys yields no coercion
uUnfilledVar2 ok5 lines
a[tau:1] :: * a[sk:1] :: * True <*>_N
writeMetaTyVar a[tau:1] :: * := a[sk:1]
u_tys yields no coercion
checkResultTy 1 } <a[sk:1]>_N
End tcApp } x
tcScalingUsage3 lines
Many UsageEnv: [ao3 :-> One] False
End tcApp } show
tcScalingUsage3 lines
Many UsageEnv: [ao3 :-> Many] False
End tcApp } (++)
check_usage3 lines
Many Many
tcMatches4 lines
[describe x = "value: " ++ show x] [a[sk:1]] String
tcScalingUsage3 lines
t[tau:0] UsageEnv: [] False
pushLevelAndCaptureConstraints } 1
newTcEvBinds unique = aPr
checkConstraints3 lines
1 [a[sk:1]]
tcSpecPrags describe []
} End of bindings for4 lines
[describe] NonRecursive describe forall a. Show a => a -> String
tcExtendBinderStack [describe[<TopLevel>]]
tc_extend_local_env5 lines
[(describe,
Identifier[describe::forall a.
Show a =>
a -> String, TopLevelLet])]------------------------------------------------
Bindings for1136 lines
[use]
Generalisation plan CheckGen use :: String
tcPolyCheck use :: String
newAnonMetaTyVar t[tau:0] :: GHC.Internal.Types.Multiplicity
tc_extend_local_env []
tcExtendBinderStack []
tcExtendBinderStack [use[<NotTopLevel>]]
tcFunBindMatches 15 lines
use
t[tau:0]
Check{String}
0tcFunBindMatches 26 lines
ctxt: the type signature for ‘use’
arity: 0
invis_pat_tys: []
pat_tys: []
rhs_ty: Check{String}tcBody Check{String}
tcApp1116 lines
rn_expr: describe (42 :: Int)
rn_fun: describe
fun_ctxt: VACall 0 describe examples/traces/Dict.hs:9:7-14
rn_args: [EValArg{VACall 1 describe <no location info>} (42 ::
Int)]tcInferId describe :: forall a. Show a => a -> String
tcInstFun6 lines
tc_fun describe
fun_sigma forall a. Show a => a -> String
fun_ctxt VACall 0 describe examples/traces/Dict.hs:9:7-14
args: [EValArg{VACall 1 describe <no location info>} (42 :: Int)]
do_ql NoQLcloneAnonMetaTyVar a[tau:0] :: *
instCallConstraints [$dShow]
Instantiating7 lines
origin arising from a use of ‘describe’ tvs [a[sk:2]] theta [Show a[sk:2]] type a[sk:2] -> String with a[tau:0] theta: [Show a[tau:0]]
tcInstFun:ret String
tcApp:NoQL3 lines
describe String
newAnonMetaTyVar t[tau:0] :: *
checkResultTy1089 lines
tc_fun: describe app_res_rho: String res_ty: String ds_flag: Shallow
u_tys3 lines
tclvl 0 String ~nominal String
u_tys yields no coercion
checkResultTy 1 } <String>_N
tcValArg4 lines
VACall 1 describe <no location info> arg type: a[tau:0] arg: (42 :: Int)
tcApp1075 lines
rn_expr: 42 :: Int rn_fun: 42 :: Int fun_ctxt: VACall 0 42 :: Int <no location info> rn_args: []
tcHsSigType1070 lines
Int
Residual: WC {}
Level: 1
final wc = WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }}
ev_binds_var = CoEvBindsVar<aPB>
current evbinds = {}
simples: {}
errs: {}pushLevelAndSolveEqualitiesX62 lines
Called from tc_lhs_sig_type
newAnonMetaTyVar t[tau:1] :: GHC.Internal.Types.RuntimeRep
lk1 Int
tcInferTyApps57 lines
Int
[]
final wc = WC {}
ev_binds_var = CoEvBindsVar<aPz>
current evbinds = {}tcInferTyApps } Int :: *
checkExpectedKind3 lines
Int *
checkExpectedKindX4 lines
Int act_kind': * exp_kind: TYPE t[tau:1]
u_tys3 lines
tclvl 1 * ~nominal TYPE t[tau:1]
go-tycon6 lines
TYPE [GHC.Internal.Types.LiftedRep] [t[tau:1]] [nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal, nominal]
u_tc_arg4 lines
nominal GHC.Internal.Types.LiftedRep t[tau:1]
u_tys3 lines
tclvl 1 GHC.Internal.Types.LiftedRep ~nominal t[tau:1]
u_tys5 lines
tclvl 1 GHC.Internal.Types.RuntimeRep ~nominal GHC.Internal.Types.RuntimeRep
u_tys yields no coercion
uUnfilledVar2 ok5 lines
t[tau:1] :: GHC.Internal.Types.RuntimeRep GHC.Internal.Types.LiftedRep :: GHC.Internal.Types.RuntimeRep True <GHC.Internal.Types.RuntimeRep>_N
writeMetaTyVar2 lines
t[tau:1] :: GHC.Internal.Types.RuntimeRep := GHC.Internal.Types.LiftedRep
u_tys yields no coercion
u_tys yields no coercion
checkExpectedKind4 lines
* TYPE t[tau:1] <*>_N
newNoTcEvBinds unique = aPz
solveWanteds4 lines
Level = 1
WC {}solveWanteds
tryDefaulting3 lines
WC {}tryDefaulting } WC {}
pushLevelAndSolveEqualities
doNotQuantifyTyVars has nothing to error on
tc_lhs_sig_type3 lines
HsOuterImplicit: [] HsOuterImplicit: []
kindGeneralizeSome4 lines
type: Int
dvs: DV {dv_kvs = {}, dv_tvs = {}, dv_cvs = {}}
filtered_dvs: DV {dv_kvs = {}, dv_tvs = {}, dv_cvs = {}}quantifyTyVars has nothing to quantify
newNoTcEvBinds unique = aPA
tcHsSigType 212 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }newNoTcEvBinds unique = aPB
solveWanteds136 lines
Level = 0
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }}
iterations = 1
residual = WC {}
unsolved_implics = {Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }}simplify_loop iteration=0 (definitely_redo = True, 0 simples to solve)
simplify_loop: wc =13 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }}solveSimpleWanteds6 lines
Mode: TcSMode{}
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Wanteds to solve: {}solveSimpleWanteds end
solveNestedImplications starting84 lines
has_given_eqs = NoGivenEqs
res_implic = Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }
implication evbinds = {}
implication tvcs = []solveImplication68 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }
Inerts {Innermost given equalities = 0
Given eqs at this level = False}
final wc = WC {}
ev_binds_var = CoEvBindsVar<aPA>
current evbinds = {}
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }solveWanteds4 lines
Level = 1
WC {}solveWanteds
getHasGivenEqs7 lines
given_eqs: False
ge_lvl: 0
ambient level: 1
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Insols: {}solveImplication 23 lines
{}
WC {}solveImplication 33 lines
ev_binds_var CoEvBindsVar<aPA>
implication evbinds = {}setImplicationStatus22 lines
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Unsolved
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }neededEvVars9 lines
old_need_implic: ENS{ens_dms = {} ens_fvs = {}}
new_need_implic: ENS{ens_dms = {} ens_fvs = {}}
used_covars: {}
need_ignoring_dms: {}
need_from_dms: {}
need: ENS{ens_dms = {} ens_fvs = {}}
ev_binds: []
live_ev_binds: []setImplicationStatus
solveImplication end
solveNestedImplications end
resetUnificationFlag3 lines
ambient: 0 unif_lvl: Nothing
unif_happened False
solveWanteds
zonkSimples done: {}
zonkSimples done: {}
emitFlatConstraints14 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems =
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given =
Wanted = WC {}
Binds = CoEvBindsVar<aPA>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
an expression type signature }}emitFlatConstraints
emitDelayedErrors {}
checkValidType Int :: *
done ct Int
Ambiguity check for810 lines
Int
tc_sub_type (general case)3 lines
ty_actual = Int ty_expected = Int
u_tys3 lines
tclvl 0 Int ~nominal Int
u_tys yields no coercion
simplifyAmbiguityCheck16 lines
type = Int
wanted = WC {}
final wc = WC {}
ev_binds_var = EvBindsVar<aPC>
current evbinds = {}newTcEvBinds unique = aPC
solveWanteds4 lines
Level = 0
WC {}solveWanteds
tryDefaulting for ambiguity4 lines
WC {}tryDefaulting } WC {}
newTcEvBinds unique = aPD
End simplifyAmbiguityCheck
} Done ambiguity check for Int
checkValidType done Int :: *
end tcHsSigType } Int
tcuser Int
tcPolyLExprSig3 lines
EpAnn EpaSpan examples/traces/Dict.hs:9:17-18 AnnListItem [] EpaComments [] 42
tc_extend_local_env []
tcExtendBinderStack []
tcInstFun6 lines
tc_fun 42 :: Int fun_sigma Int fun_ctxt VACall 0 42 :: Int <no location info> args: [] do_ql NoQL
tcInstFun:ret Int
tcApp:NoQL3 lines
42 :: Int Int
newAnonMetaTyVar t[tau:0] :: *
checkResultTy765 lines
tc_fun: 42 :: Int app_res_rho: Int res_ty: a[tau:0] ds_flag: Shallow
u_tys3 lines
tclvl 0 Int ~nominal a[tau:0]
u_tys3 lines
tclvl 0 * ~nominal *
u_tys yields no coercion
uUnfilledVar2 ok5 lines
a[tau:0] :: * Int :: * True <*>_N
writeMetaTyVar a[tau:0] :: * := Int
u_tys yields no coercion
checkResultTy 1 } <Int>_N
End tcApp } 42 :: Int
tcScalingUsage3 lines
Many UsageEnv: [] False
End tcApp } describe
tcMatches4 lines
[use = describe (42 :: Int)] [] String
tcScalingUsage3 lines
t[tau:0] UsageEnv: [] False
tcSpecPrags use []
} End of bindings for4 lines
[use] NonRecursive use String
tcExtendBinderStack [use[<TopLevel>]]
tc_extend_local_env [(use, Identifier[use::String, TopLevelLet])]
check_usage3 lines
t[tau:0] 0
u_tys3 lines
tclvl 0 Many ~nominal t[tau:0]
u_tys5 lines
tclvl 0 GHC.Internal.Types.Multiplicity ~nominal GHC.Internal.Types.Multiplicity
u_tys yields no coercion
uUnfilledVar2 ok5 lines
t[tau:0] :: GHC.Internal.Types.Multiplicity Many :: GHC.Internal.Types.Multiplicity True <GHC.Internal.Types.Multiplicity>_N
writeMetaTyVar t[tau:0] :: GHC.Internal.Types.Multiplicity := Many
u_tys yields no coercion
ensureReflMultiplicityCo <Many>_N
check_usage3 lines
t[tau:0] 0
u_tys3 lines
tclvl 0 Many ~nominal t[tau:0]
u_tys5 lines
tclvl 0 GHC.Internal.Types.Multiplicity ~nominal GHC.Internal.Types.Multiplicity
u_tys yields no coercion
uUnfilledVar2 ok5 lines
t[tau:0] :: GHC.Internal.Types.Multiplicity Many :: GHC.Internal.Types.Multiplicity True <GHC.Internal.Types.Multiplicity>_N
writeMetaTyVar t[tau:0] :: GHC.Internal.Types.Multiplicity := Many
u_tys yields no coercion
ensureReflMultiplicityCo <Many>_N
tcImpPrags1 [use :: String, describe :: Show a => a -> String]
tcExtendKindEnvList []
tc_extend_local_env []
tcImpPrags1 []
Tc6
Tc7
Tc7a
simplifyTop544 lines
wanted = WC {wc_simple =
[W] $dShow {0} :: Show a[tau:0] (CNonCanonical)
wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = MaybeGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted =
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}
final wc = WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}
ev_binds_var = EvBindsVar<aPF>
current evbinds = {[W] $dShow = GHC.Internal.Show.$fShowInt}
WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}newTcEvBinds unique = aPF
solveWanteds462 lines
Level = 0
WC {wc_simple = [W] $dShow {0} :: Show a[tau:0] (CNonCanonical)
wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = MaybeGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted =
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}
iterations = 1
residual = WC {}
unsolved_implics = {Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}simplify_loop iteration=0 (definitely_redo = True, 1 simples to solve)
simplify_loop: wc =16 lines
WC {wc_simple = [W] $dShow {0} :: Show a[tau:0] (CNonCanonical)
wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = MaybeGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted =
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}solveSimpleWanteds67 lines
Mode: TcSMode{}
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Wanteds to solve: {[W] $dShow {0} :: Show a[tau:0] (CNonCanonical)}Emitting fresh work2 lines
{[W] $dShow {0} :: Show a[tau:0] (CNonCanonical)}-----------------------------
Start solver pipeline53 lines
tclevel = 0
work item = [W] $dShow {0} :: Show a[tau:0] (CNonCanonical)
inerts = {Innermost given equalities = 0
Given eqs at this level = False}
rest of worklist = WL {}
Stop(Dict/Top (solved wanted)
ev: [W] $dShow {0} :: Show Int)solve42 lines
workitem = [W] $dShow {0} :: Show a[tau:0] (CNonCanonical)rewriteEvidence [W] $dShow {0} :: Show a[tau:0]
rewrite38 lines
Show a[tau:0]
Following filled tyvar a[tau:0] = Int
rewrite } Show Int
solveDictNC3 lines
Show Int
[W] $dShow {0} :: Show IntsolveDict [W] $dShow {0} :: Show Int (CDictCan)
tryInertDicts:no3 lines
[W] $dShow {0} :: Show Int (CDictCan)
Show [Int]matchClassInst pred = Show Int27 lines
No local instance for Show Int
matchInstEnv5 lines
goal: Show [Int]
matches: [(instance Show Int -- Defined in ‘GHC.Internal.Show’,
[])]
unify: NoUnifiers canonicalmatchClass success3 lines
dict Show Int canonical witness GHC.Internal.Show.$fShowInt Show Int
match_one3 lines
GHC.Internal.Show.$fShowInt []
match_one 24 lines
GHC.Internal.Show.$fShowInt [] []
} matchClassInst global result3 lines
OneInst []
instance Show Int -- Defined in ‘GHC.Internal.Show’updSolvedDicts: [W] $dShow {0} :: Show Int (CDictCan)
doTopReact/found instance for [W] $dShow {0} :: Show Int
addTcEvBind5 lines
EvBindsVar: aPF ev_bind: [W] $dShow = GHC.Internal.Show.$fShowInt bnds: [] bnds': [aPv :-> [W] $dShow = GHC.Internal.Show.$fShowInt]
end solve
Step 1[l:0,d:0] Dict/Top (solved wanted):2 lines
[W] $dShow {0} :: Show IntEnd solver pipeline
getUnsolvedInerts5 lines
tv eqs = {}
fun eqs = {}
dicts = {}
irreds = {}solveSimpleWanteds end
solveNestedImplications starting342 lines
has_given_eqs = NoGivenEqs
res_implic = Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }
implication evbinds = {[W] $dShow = $dShow}
implication tvcs = []solveImplication325 lines
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = MaybeGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted =
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }
Inerts {Innermost given equalities = 0
Given eqs at this level = False}
Solved dicts = [W] $dShow {0} :: Show Int (CDictCan)
{Dictionaries = {[G] $dShow {0} :: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
final wc = WC {}
ev_binds_var = EvBindsVar<aPr>
current evbinds = {[W] $dShow = $dShow}
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }solveSimpleGivens39 lines
[[G] $dShow {0} :: Show a[sk:1] (CNonCanonical)]Emitting fresh work2 lines
{[G] $dShow {0} :: Show a[sk:1] (CNonCanonical)}-----------------------------
Start solver pipeline33 lines
tclevel = 1
work item = [G] $dShow {0} :: Show a[sk:1] (CNonCanonical)
inerts = {Innermost given equalities = 0
Given eqs at this level = False}
Solved dicts = [W] $dShow {0} :: Show Int (CDictCan)
rest of worklist = WL {}
Stop(Kept inert DictCt
ev: [G] $dShow {0} :: Show a[sk:1])solve22 lines
workitem = [G] $dShow {0} :: Show a[sk:1] (CNonCanonical)rewriteEvidence [G] $dShow {0} :: Show a[sk:1]
rewrite18 lines
Show a[sk:1]
Unfilled tyvar a[sk:1]
rewrite } Show a[sk:1]
solveDictNC3 lines
Show a[sk:1]
[G] $dShow {0} :: Show a[sk:1]mk_strict4 lines
[G] $dShow {0} :: Show a[sk:1]
arising from the type signature for:
describe :: forall a. Show a => a -> StringsolveDict [G] $dShow {0} :: Show a[sk:1] (CDictCan)
tryInertDicts:no3 lines
[G] $dShow {0} :: Show a[sk:1] (CDictCan)
Show [a[sk:1]]Adding inert dict3 lines
[G] $dShow {0} :: Show a[sk:1] (CDictCan)
Show [a[sk:1]]end solve
Step 2[l:1,d:0] Kept inert DictCt: [G] $dShow {0} :: Show a[sk:1]
End solver pipeline
End solveSimpleGivens
solveWanteds213 lines
Level = 1
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}
iterations = 1
residual = WC {}simplify_loop iteration=0 (definitely_redo = True, 1 simples to solve)
simplify_loop: wc =2 lines
WC {wc_simple = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}solveSimpleWanteds200 lines
Mode: TcSMode{}
Inerts: {Dictionaries = {[G] $dShow {0} :: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
Solved dicts = [W] $dShow {0} :: Show Int (CDictCan)
Wanteds to solve: {[W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}Emitting fresh work2 lines
{[W] $dShow {0} :: Show a[tau:1] (CNonCanonical)}-----------------------------
Start solver pipeline184 lines
tclevel = 1
work item = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)
inerts = {Dictionaries = {[G] $dShow {0}
:: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
Solved dicts = [W] $dShow {0} :: Show Int (CDictCan)
rest of worklist = WL {}
Stop(Dict equal [W] $dShow {0} :: Show a[sk:1] (CDictCan)
ev: [W] $dShow {0} :: Show a[sk:1])solve169 lines
workitem = [W] $dShow {0} :: Show a[tau:1] (CNonCanonical)rewriteEvidence [W] $dShow {0} :: Show a[tau:1]
rewrite165 lines
Show a[tau:1]
Following filled tyvar a[tau:1] = a[sk:1]
Unfilled tyvar a[sk:1]
rewrite } Show a[sk:1]
solveDictNC3 lines
Show a[sk:1]
[W] $dShow {0} :: Show a[sk:1]solveDict [W] $dShow {0} :: Show a[sk:1] (CDictCan)
tryTcS156 lines
old_ev_binds: EvBindsVar<aPr>
new_ev_binds: EvBindsVar<aPr>
{Dictionaries = {[G] $dShow {0} :: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
Solved dicts = [W] $dShow {0} :: Show Int (CDictCan)
iterations = 1
residual = WC {wc_simple =
[W] $dShow {0} :: Show a[sk:1] (CDictCan)}solveSimpleWanteds139 lines
Mode: TcSMode{SkipOverlappable}
Inerts: {Innermost given equalities = 0
Given eqs at this level = False}
Solved dicts = [W] $dShow {0} :: Show Int (CDictCan)
Wanteds to solve: {[W] $dShow {0} :: Show a[sk:1] (CDictCan)}Emitting fresh work {[W] $dShow {0} :: Show a[sk:1] (CDictCan)}
-----------------------------
Start solver pipeline125 lines
tclevel = 1
work item = [W] $dShow {0} :: Show a[sk:1] (CDictCan)
inerts = {Innermost given equalities = 0
Given eqs at this level = False}
Solved dicts = [W] $dShow {0} :: Show Int (CDictCan)
rest of worklist = WL {}
Stop(Kept inert DictCt
ev: [W] $dShow {0} :: Show a[sk:1])solve114 lines
workitem = [W] $dShow {0} :: Show a[sk:1] (CDictCan)rewriteEvidence [W] $dShow {0} :: Show a[sk:1]
rewrite110 lines
Show a[sk:1]
Unfilled tyvar a[sk:1]
rewrite } Show a[sk:1]
solveDict [W] $dShow {0} :: Show a[sk:1] (CDictCan)
tryInertDicts:no3 lines
[W] $dShow {0} :: Show a[sk:1] (CDictCan)
Show [a[sk:1]]matchClassInst pred = Show a[sk:1]102 lines
No local instance for Show a[sk:1]
matchInstEnv92 lines
goal: Show [a[sk:1]]
matches: []
unify: [instance Show Double -- Defined in ‘GHC.Internal.Float’,
instance Show Float -- Defined in ‘GHC.Internal.Float’,
instance Show Bool -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Stack.Types.CallStack
-- Defined in ‘GHC.Internal.Show’,
instance Show Char -- Defined in ‘GHC.Internal.Show’,
instance Show Int -- Defined in ‘GHC.Internal.Show’,
instance Show Integer -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.KindRep
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.Levity
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show [a] -- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (Maybe a)
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.Module
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Bignum.Natural.Natural
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (GHC.Internal.Base.NonEmpty a)
-- Defined in ‘GHC.Internal.Show’,
instance Show Ordering -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.RuntimeRep
-- Defined in ‘GHC.Internal.Show’,
instance Show a => Show (Solo a) -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Stack.Types.SrcLoc
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TrName
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j) =>
Show (a, b, c, d, e, f, g, h, i, j)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k) =>
Show (a, b, c, d, e, f, g, h, i, j, k)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m, Show n) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m, Show n, Show o) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b) => Show (a, b)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c) => Show (a, b, c)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d) => Show (a, b, c, d)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e) =>
Show (a, b, c, d, e)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f) =>
Show (a, b, c, d, e, f)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f,
Show g) =>
Show (a, b, c, d, e, f, g)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h) =>
Show (a, b, c, d, e, f, g, h)
-- Defined in ‘GHC.Internal.Show’,
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i) =>
Show (a, b, c, d, e, f, g, h, i)
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TyCon
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.TypeLitSort
-- Defined in ‘GHC.Internal.Show’,
instance Show () -- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.VecCount
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Types.VecElem
-- Defined in ‘GHC.Internal.Show’,
instance Show GHC.Internal.Base.Void
-- Defined in ‘GHC.Internal.Show’,
instance Show Word -- Defined in ‘GHC.Internal.Show’]matchClass multiple matches, deferring choice3 lines
dict Show a[sk:1] matches []
} matchClassInst global result NotSure
try_fundeps [W] $dShow {0} :: Show a[sk:1] (CDictCan)
Adding inert dict3 lines
[W] $dShow {0} :: Show a[sk:1] (CDictCan)
Show [a[sk:1]]end solve
Step 4[l:1,d:0] Kept inert DictCt: [W] $dShow {0} :: Show a[sk:1]
End solver pipeline
getUnsolvedInerts5 lines
tv eqs = {}
fun eqs = {}
dicts = {[W] $dShow {0} :: Show a[sk:1] (CDictCan)}
irreds = {}solveSimpleWanteds end
tryTcS } False
lookupInertDict:KeepInert [W] $dShow {0} :: Show a[sk:1] (CDictCan)
addTcEvBind5 lines
EvBindsVar: aPr ev_bind: [W] $dShow = $dShow bnds: [] bnds': [aPo :-> [W] $dShow = $dShow]
end solve
Step 4[l:1,d:0] Dict equal [W] $dShow {0}3 lines
:: Show a[sk:1] (CDictCan):
[W] $dShow {0} :: Show a[sk:1]End solver pipeline
getUnsolvedInerts5 lines
tv eqs = {}
fun eqs = {}
dicts = {}
irreds = {}solveSimpleWanteds end
resetUnificationFlag3 lines
ambient: 1 unif_lvl: Nothing
unif_happened False
solveWanteds
getHasGivenEqs8 lines
given_eqs: False
ge_lvl: 0
ambient level: 1
Inerts: {Dictionaries = {[G] $dShow {0} :: Show a[sk:1] (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}
Insols: {}solveImplication 23 lines
{}
WC {}solveImplication 33 lines
ev_binds_var EvBindsVar<aPr>
implication evbinds = {[W] $dShow = $dShow}setImplicationStatus23 lines
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Unsolved
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }neededEvVars9 lines
old_need_implic: ENS{ens_dms = {} ens_fvs = {}}
new_need_implic: ENS{ens_dms = {} ens_fvs = {}}
used_covars: {}
need_ignoring_dms: {$dShow}
need_from_dms: {}
need: ENS{ens_dms = {} ens_fvs = {$dShow}}
ev_binds: [aPo :-> [W] $dShow = $dShow]
live_ev_binds: [aPo :-> [W] $dShow = $dShow]setImplicationStatus
solveImplication end
solveNestedImplications end
resetUnificationFlag3 lines
ambient: 0 unif_lvl: Nothing
unif_happened False
solveWanteds
tryDefaulting34 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}zonkSimples done: {}
zonkSimples done: {}
applyDefaultingRules17 lines
wanteds = WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}
groups = []
info = ([default Num (Integer, Double)], False)applyDefaultingRules } []
tryDefaulting
Constraint solver steps = 4
End simplifyTop
newTcEvBinds unique = aQI
reportUnsolved63 lines
type errors: ErrorWithoutFlag expr holes: ErrorWithoutFlag type holes: ErrorWithoutFlag scope holes: ErrorWithoutFlag
reportUnsolved (before zonking and tidying)14 lines
WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}zonkSimples done: {}
zonkSimples done: {}
reportUnsolved (after zonking):17 lines
Free tyvars:
Bound occs: [a]
Tidy env: ([], [])
Wanted: WC {wc_impl =
Implic {
TcLevel = 1
Skolems = a[sk:1]
Given-eqs = NoGivenEqs
Status = Solved {Dead givens = []}
Given = $dShow :: Show a[sk:1]
Wanted = WC {}
Binds = EvBindsVar<aPr>
need = ENS{ens_dms = {} ens_fvs = {$dShow}}
need_implic = ENS{ens_dms = {} ens_fvs = {}}
the type signature for:
describe :: forall a. Show a => a -> String }}reportWanteds 16 lines
Simples = {}
Suppress = False
tidy_cts = []
tidy_items1 = []
tidy_errs = []reportWanteds suppressed: []
tryReporters17 lines
[] []
tryReporters } []
tryReporters13 lines
[] []
tryReporters } []
reportImplic4 lines
tidy env: ([], []) skols: a[sk:1] tidy skols: a[sk:1]
reportWanteds empty WC
tryReporters4 lines
[] []
tryReporters } []
reportUnsolved
reportUnsolved (unsafe overlapping)2 lines
reportUnsolved (unsafe overlapping)
mkTypeableBinds []
Tc9
Tc11
Adding diagnostic:3 lines
examples/traces/Dict.hs:1:1:: [GHC-85401]
The export item ‘module Dict’ is missing an export listsimplifyTop14 lines
wanted = WC {}
final wc = WC {}
ev_binds_var = EvBindsVar<aQZ>
current evbinds = {}newTcEvBinds unique = aQZ
solveWanteds4 lines
Level = 0
WC {}solveWanteds
tryDefaulting3 lines
WC {}tryDefaulting } WC {}
End simplifyTop
newTcEvBinds unique = aR0
reportUnsolved (unsafe overlapping)2 lines
reportUnsolved (unsafe overlapping)
newTcEvBinds unique = aR2
checkGivens45 lines
{Innermost given equalities = 0
Given eqs at this level = False} {pm_dR1}
{Dictionaries = {[G] pm_dR1 {0} :: Show a (CDictCan)}
Innermost given equalities = 0
Given eqs at this level = False}solveSimpleGivens37 lines
[[G] pm_dR1 {0} :: Show a (CNonCanonical)]Emitting fresh work {[G] pm_dR1 {0} :: Show a (CNonCanonical)}
-----------------------------
Start solver pipeline32 lines
tclevel = 0
work item = [G] pm_dR1 {0} :: Show a (CNonCanonical)
inerts = {Innermost given equalities = 0
Given eqs at this level = False}
rest of worklist = WL {}
Stop(Kept inert DictCt
ev: [G] pm_dR1 {0} :: Show a)solve22 lines
workitem = [G] pm_dR1 {0} :: Show a (CNonCanonical)rewriteEvidence [G] pm_dR1 {0} :: Show a
rewrite18 lines
Show a
Unfilled tyvar a
rewrite } Show a
solveDictNC3 lines
Show a
[G] pm_dR1 {0} :: Show amk_strict4 lines
[G] pm_dR1 {0} :: Show a
arising from UnkSkol (please report this as a bug)
Call stack:solveDict [G] pm_dR1 {0} :: Show a (CDictCan)
tryInertDicts:no3 lines
[G] pm_dR1 {0} :: Show a (CDictCan)
Show [a]Adding inert dict3 lines
[G] pm_dR1 {0} :: Show a (CDictCan)
Show [a]end solve
Step 1[l:0,d:0] Kept inert DictCt: [G] pm_dR1 {0} :: Show a
End solver pipeline
End solveSimpleGivens
checkGivens } {}
Constraint solver steps = 1
The whole program after each simplifier iteration. The same banner repeating means separate passes, each running to its own fixed point.-ddump-simpl-iterations
Simplifier iteration=175 lines
---- Simplifier counts for Simplifier iteration=1
Total ticks: 38
---- End of simplifier counts for Simplifier iteration=1
Result size of Simplifier iteration=1
= {terms: 41, types: 31, coercions: 0, joins: 0/0}
-- RHS size: {terms: 14, types: 12, coercions: 0, joins: 0/0}
describe :: forall a. Show a => a -> String
[LclIdX,
Arity=2,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [30 0] 120 40}]
describe
= \ (@a) ($dShow :: Show a) (x :: a) ->
GHC.Internal.Base.augment
@Char
(\ (@b) (c [OS=OneShot] :: Char -> b -> b) (n [OS=OneShot] :: b) ->
GHC.Internal.CString.unpackFoldrCString# @b "value: "# c n)
(show @a $dShow x)
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Prim.Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 20 0}]
$trModule = "main"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Types.TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
$trModule = GHC.Internal.Types.TrNameS $trModule
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Prim.Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 20 0}]
$trModule = "Dict"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Types.TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
$trModule = GHC.Internal.Types.TrNameS $trModule
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
Dict.$trModule :: GHC.Internal.Types.Module
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
Dict.$trModule = GHC.Internal.Types.Module $trModule $trModule
-- RHS size: {terms: 11, types: 8, coercions: 0, joins: 0/0}
use :: String
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=False, ConLike=False, WorkFree=False, Expandable=False,
Guidance=IF_ARGS [] 120 40}]
use
= GHC.Internal.Base.augment
@Char
(\ (@b) (c [OS=OneShot] :: Char -> b -> b) (n [OS=OneShot] :: b) ->
GHC.Internal.CString.unpackFoldrCString# @b "value: "# c n)
(GHC.Internal.Show.$fShowCallStack_itos'
42# (GHC.Internal.Types.[] @Char))Simplifier iteration=184 lines
---- Simplifier counts for Simplifier iteration=1
Total ticks: 4
---- End of simplifier counts for Simplifier iteration=1
Result size of Simplifier iteration=1
= {terms: 43, types: 37, coercions: 0, joins: 0/0}
-- RHS size: {terms: 7, types: 6, coercions: 0, joins: 0/0}
lvl :: forall b. (Char -> b -> b) -> b -> b
[LclId,
Arity=2,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [0 0] 70 0}]
lvl
= \ (@b)
(c [OS=OneShot] :: Char -> b -> b)
(n [OS=OneShot] :: b) ->
GHC.Internal.CString.unpackFoldrCString# @b "value: "# c n
-- RHS size: {terms: 8, types: 6, coercions: 0, joins: 0/0}
describe :: forall a. Show a => a -> String
[LclIdX,
Arity=2,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=True)}]
describe
= \ (@a) ($dShow :: Show a) (x :: a) ->
GHC.Internal.Base.augment @Char lvl (show @a $dShow x)
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Prim.Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 20 0}]
$trModule = "main"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Types.TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
$trModule = GHC.Internal.Types.TrNameS $trModule
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Prim.Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 20 0}]
$trModule = "Dict"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Types.TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
$trModule = GHC.Internal.Types.TrNameS $trModule
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
Dict.$trModule :: GHC.Internal.Types.Module
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
Dict.$trModule = GHC.Internal.Types.Module $trModule $trModule
-- RHS size: {terms: 11, types: 8, coercions: 0, joins: 0/0}
use :: String
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=False, ConLike=False, WorkFree=False, Expandable=False,
Guidance=IF_ARGS [] 120 40}]
use
= GHC.Internal.Base.augment
@Char
(\ (@b) (c [OS=OneShot] :: Char -> b -> b) (n [OS=OneShot] :: b) ->
GHC.Internal.CString.unpackFoldrCString# @b "value: "# c n)
(GHC.Internal.Show.$fShowCallStack_itos'
42# (GHC.Internal.Types.[] @Char))Simplifier iteration=183 lines
---- Simplifier counts for Simplifier iteration=1
Total ticks: 33
---- End of simplifier counts for Simplifier iteration=1
Result size of Simplifier iteration=1
= {terms: 37, types: 29, coercions: 0, joins: 0/0}
-- RHS size: {terms: 7, types: 6, coercions: 0, joins: 0/0}
lvl :: forall b. (Char -> b -> b) -> b -> b
[LclId,
Arity=2,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [0 0] 70 0}]
lvl
= \ (@b)
(c [OS=OneShot] :: Char -> b -> b)
(n [OS=OneShot] :: b) ->
GHC.Internal.CString.unpackFoldrCString# @b "value: "# c n
-- RHS size: {terms: 8, types: 5, coercions: 0, joins: 0/0}
describe :: forall a. Show a => a -> String
[LclIdX,
Arity=2,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [30 0] 90 0}]
describe
= \ (@a) ($dShow :: Show a) (x :: a) ->
GHC.Internal.CString.unpackAppendCString#
"value: "# (show @a $dShow x)
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Prim.Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 20 0}]
$trModule = "main"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Types.TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
$trModule = GHC.Internal.Types.TrNameS $trModule
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Prim.Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 20 0}]
$trModule = "Dict"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$trModule :: GHC.Internal.Types.TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
$trModule = GHC.Internal.Types.TrNameS $trModule
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
Dict.$trModule :: GHC.Internal.Types.Module
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=True, ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 10}]
Dict.$trModule = GHC.Internal.Types.Module $trModule $trModule
-- RHS size: {terms: 5, types: 1, coercions: 0, joins: 0/0}
use :: String
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True,
Value=False, ConLike=False, WorkFree=False, Expandable=False,
Guidance=IF_ARGS [] 90 0}]
use
= GHC.Internal.CString.unpackAppendCString#
"value: "#
(GHC.Internal.Show.$fShowCallStack_itos'
42# (GHC.Internal.Types.[] @Char))Every rewrite rule that fired, in order.-ddump-rule-firings
Rule fired: unpack (GHC.Internal.Base)
Rule fired: ++ (GHC.Internal.Base)
Rule fired: fold/build (GHC.Internal.Base)
Rule fired: Class op show (BUILTIN)
Rule fired: <# (BUILTIN)
Rule fired: unpack-append (GHC.Internal.Base)
Rule fired: unpack-append (GHC.Internal.Base)
What to look for
- Typechecker trace → solveWanteds
- The work list with one Wanted on it: [W] Show a. This is the pile of facts the typechecker chapter ends with, at its smallest.
- Typechecker trace → matchClassInst
- The instance lookup itself, and the dictionary it produces as evidence. This is step four of the solver loop: solve outright from a top-level instance.
- Typechecker trace → Adding inert dict / Kept inert DictCt
- Constraints entering and surviving in the inert set. The paired lines are worth reading closely: [G] $dShow is the Given from the signature, [W] $dShow the Wanted from the call, same class, opposite obligations.