Data nodes

Arunkumar S Jadhav <[email protected]> Thu, 3 Mar 2005 18:32:04 +0530
Newsgroups gmane.comp.lang.haskell.nhc.user
Organization KReSIT
Message-ID <[email protected]>
Hello,

As per my understanding following hold true about macroes for
data nodes.

CONSTR(e, s, ws): This is used to construct header for the data nodes
	which contain more than one constructors e.g List, Tree etc

CONSTRW(s, e) and CONSTRP(s, e) : Are used to construct header for
	data nodes which contain single constructor e.g Pair.

I just wrote a program :
----------------------------------
data MyPair a = ThisPair a a a

selectThird (ThisPair 1 x y) = ThisPair 1 1 1
selectThird (ThisPair _ _ y) = ThisPair y y y
------------------------------------

When I saw the corresponding bytecode, I saw (To my surprize)
CONSTR(0, 3, 0) being used to construct the data node in 
the function selectThird (i.e "ThisPair 1 1 1" etc).

What is happening here ? If this is the case, then when exactly are the
meaning of CONSTR() and CONSTRW(), CONSTRP()

Regards,
------------------------------------
Arunkumar S Jadhav, Masters Student, 
KReSIT, IIT-Bombay, India
Ph: +91-22-25764967
http://www.it.iitb.ac.in/~arunk
------------------------------------
I exist because I work.