<div dir="ltr"><span style="font-size:14px">> what is the "default" structure if you don't specify any</span><div><br></div><div>similar to:</div><div><br></div><div>display::Show a => a -> String</div><div>display = show</div><div><br></div><div>fa::(Applicative f, Num a) => f a</div><div>fa = pure 1</div><div><br></div><div>f and a are <i>bounded</i> by Applicative and Num, so to say. No default. Or, it is typed however type is a bit broader than *</div><div><br></div><div><br>> ​<span style="font-size:14px"> </span><span style="font-size:14px">In this case it defaults f to IO and a to Int, </span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px">does it though?</span></div><div><span style="font-size:14px"><br></span></div><div><span style="font-size:14px"><br></span></div><div><div>Prelude> let a1 = pure 1</div><div>Prelude> let a2 = pure 1</div><div>Prelude> a1 == a2</div><div style="font-size:14px"><br></div></div><div style="font-size:14px"><div><interactive>:20:1: error:</div><div>    • Ambiguous type variable ‘a0’ arising from a use of ‘a1’</div><div>      prevents the constraint ‘(Num a0)’ from being solved.</div><div><br></div></div></div>