
Figuring out how to tell what type ghci is defaulting to was an interesting exercise. The sum [] trick seemed cool, so I tried a variant: Prelude> let f xs = const xs $ show xs Prelude> f [] [] Prelude> :t it it :: [()] -- ryan On Thu, Jun 30, 2011 at 6:44 PM, Ivan Lazar Miljenovic < ivan.miljenovic@gmail.com> wrote:
On 1 July 2011 11:35, Brent Yorgey
wrote: On Fri, Jul 01, 2011 at 09:05:05AM +1000, Ivan Lazar Miljenovic wrote:
On 1 July 2011 08:58, Joshua Ball
wrote: GHCi seems to be clever about some things:
If I try to print the empty list in ghci, I encounter no problems:
Prelude> [] [] Prelude> show [] "[]" Prelude> print [] []
Even though the type of the list is clearly unknown, it must be picking SOME type. (why does it print [] instead of "")?
Type defaulting: if you don't specify a type, then ghci makes it [Integer].
In this case I'm pretty sure it is [()] since there is only a Show constraint. If there were a Num constraint it would pick Integer.
Yeah, I forgot about ()
-- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe