show tree

Tom Pledger Tom.Pledger@peace.com
Thu, 1 May 2003 08:08:31 +1200


James Grist writes:
 | ok, 
 | I've got a prob with this 'ere piece of code
 | there is no Show instance for Tree, so I anticipated
 | the result of typing...
 | 
 | Nil
 | 
 | at the hugs console, which was...
 | 
 | ERROR - Cannot find "show" function for:
 | *** Expression : Nil
 | *** Of type    : Tree a

This is a variation on a frequently asked question: why does typing

    []

at the prompt cause an error message?

You _do_ have a Show instance for Tree, thanks to your 'deriving Show'
clause.  The problem here is that hugs doesn't know what the type
variable 'a' stands for.  If it's a non-showable type, such as a
function or an IO action, then 'Tree a' isn't showable either.

Try it with a type signature:

    Nil :: Tree ()