Type defaulting results in type error
Consider the following program.
test :: Num a => a
test = 42
Evaluating test
in the REPL produces in the following output.
test (_Dict#Num (_impl#+#Prelude.Num#Prelude.Int) (_impl#-#Prelude.Num#Prelude.Int) (_impl#*#Prelude.Num#Prelude.Int) (_impl#negate#Prelude.Num#Prelude.Int) (_impl#abs#Prelude.Num#Prelude.Int) (_impl#signum#Prelude.Num#Prelude.Int) (_impl#fromInteger#Prelude.Num#Prelude.Int))
Evaluating test + 31
even results in a type error (which is not surprising when looking at the output above).
ERROR: type_error(is(_,+(Defaulting.test(Prelude._inst'23Prelude.Num'23Prelude.Int),31)),2,evaluable,/(Defaulting.test,1))