Hi Roelof, I think you misunderstood it. There are two things here: types and values (value-constructors). They exist in different world, not touching each other. In Haskell, you define a type as: data <Type_Name> = <ValueConstructor_Name> <Type_Name> <Type_Name> <Type_Name> You can create values as: let varName = <ValueConstructor_Name> <Value> <Value> <Value> You need to put <Value> of some type, not type name itself in place of those <Value>s. So, with datatype you provided, you have two data-constructors: Leaf and Node <val> <val> <val> You can create a leaf: let leaf = Leav or a node: let node = Node Leaf "msg" Leaf You can see that Node is a data-constructor that takes 3 values, not type-names as it's parameters. Hope this helps. On Thu, Feb 26, 2015 at 3:21 PM, Roelof Wobben <r.wobben@home.nl> wrote:
Hello,
Suppose we have this definition of a tree :
data MessageTree = Leaf | Node MessageTree LogMessage MessageTree deriving (Show, Eq)
let Message = LogMessage "E 1 this is a test error" let Message = LogMessage "e 2 this is the second test error "
As I understand it right I can make the first entry like this : first_entry = Node Messagetree Message Messagetree
And the second one like this second_entry = Node Message Messagetree Message2 Messagetree ??
Roelof
_______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners