<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content=text/html;charset=iso-8859-1>
<META content="MSHTML 6.00.6001.18183" name=GENERATOR></HEAD>
<BODY id=MailContainerBody 
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-TOP: 15px; WORD-WRAP: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space" 
leftMargin=0 topMargin=0 CanvasTabStop="true" name="Compose message area">
<DIV><FONT face=Calibri>thanks!</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>suppose we have </FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>&gt; data Tree a = Leaf a | Branch (Tree a) (Tree a) 
deriving Show</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>and how I could define a function </FONT><FONT 
face=Calibri>foo :: a -&gt; Tree a that</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>foo a = Leaf 
a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where a is not a type of 
Tree</FONT></DIV>
<DIV><FONT face=Calibri>foo b = 
b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where 
b is one of the type of Tree (Leaf or Branch) ?</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>The following code seems not working......</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>foo (Leaf a) = a</FONT></DIV>
<DIV><FONT face=Calibri>foo&nbsp;a = Leaf a</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>saying 'Couldn't match expected type `a' against 
inferred type `Btree a''</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>any idea?</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri>Thanks,</FONT></DIV>
<DIV><FONT face=Calibri>Max</FONT></DIV>
<DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
<DIV style="FONT: 10pt Tahoma">
<DIV><BR></DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A 
title="mailto:allbery@ece.cmu.edu&#10;CTRL + Click to follow link" 
href="mailto:allbery@ece.cmu.edu">Brandon S. Allbery KF8NH</A> </DIV>
<DIV><B>Sent:</B> Thursday, January 01, 2009 7:35 AM</DIV>
<DIV><B>To:</B> <A 
title="mailto:max.cs.2009@googlemail.com&#10;CTRL + Click to follow link" 
href="mailto:max.cs.2009@googlemail.com">Max.cs</A> </DIV>
<DIV><B>Cc:</B> <A 
title="mailto:allbery@ece.cmu.edu&#10;CTRL + Click to follow link" 
href="mailto:allbery@ece.cmu.edu">Brandon S. Allbery KF8NH</A> ; <A 
title="mailto:beginners@haskell.org&#10;CTRL + Click to follow link" 
href="mailto:beginners@haskell.org">beginners@haskell.org</A> ; <A 
title="mailto:haskell-cafe@haskell.org&#10;CTRL + Click to follow link" 
href="mailto:haskell-cafe@haskell.org">haskell-cafe@haskell.org</A> </DIV>
<DIV><B>Subject:</B> Re: [Haskell-cafe] definition of data</DIV></DIV></DIV>
<DIV><BR></DIV>
<DIV>
<DIV>On 2009 Jan 1, at 2:32, Max.cs wrote:&nbsp;</DIV>
<BLOCKQUOTE type="cite">
  <DIV id=MailContainerBody 
  style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-TOP: 15px" 
  name="Compose message area" leftmargin="0" topmargin="0" canvastabstop="true">
  <DIV><FONT face=Calibri>data Tree a = a |&nbsp;Branch (Tree a) (Tree a) 
  deriving Show</FONT></DIV>
  <DIV><FONT face=Calibri></FONT>&nbsp;</DIV>
  <DIV><FONT face=Calibri>but it seems not accpetable in haskell ?</FONT></DIV>
  <DIV><FONT face=Calibri></FONT></DIV></DIV></BLOCKQUOTE><BR></DIV>
<DIV>You need a constructor in both legs of the type:</DIV>
<DIV><BR></DIV>
<DIV>&gt; data Tree a = Leaf a | Branch (Tree a) (Tree a) deriving Show</DIV>
<DIV><BR></DIV>
<DIV apple-content-edited="true"><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 11px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; border-spacing: 0px 0px; -khtml-text-decorations-in-effect: none; -apple-text-size-adjust: auto; orphans: 2; widows: 2">
<DIV 
style="WORD-WRAP: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space"><SPAN 
class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 11px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; border-spacing: 0px 0px; -khtml-text-decorations-in-effect: none; -apple-text-size-adjust: auto; orphans: 2; widows: 2"><SPAN 
class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 11px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; border-spacing: 0px 0px; -khtml-text-decorations-in-effect: none; -apple-text-size-adjust: auto; orphans: 2; widows: 2">
<DIV><FONT class=Apple-style-span face=Monaco><SPAN class=Apple-style-span 
style="FONT-FAMILY: Monaco"><SPAN class=Apple-style-span 
style="FONT-FAMILY: Monaco">--&nbsp;</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=Apple-style-span face=Monaco><SPAN class=Apple-style-span 
style="FONT-FAMILY: Monaco"><SPAN class=Apple-style-span 
style="FONT-FAMILY: Monaco">brandon s. allbery 
[solaris,freebsd,perl,pugs,haskell] <A 
href="mailto:allbery@kf8nh.com">allbery@kf8nh.com</A></SPAN></SPAN></FONT></DIV>
<DIV><FONT class=Apple-style-span face=Monaco><SPAN class=Apple-style-span 
style="FONT-FAMILY: Monaco"><SPAN class=Apple-style-span 
style="FONT-FAMILY: Monaco">system administrator [openafs,heimdal,too many hats] 
<A 
href="mailto:allbery@ece.cmu.edu">allbery@ece.cmu.edu</A></SPAN></SPAN></FONT></DIV>
<DIV><FONT class=Apple-style-span face=Monaco><SPAN class=Apple-style-span 
style="FONT-FAMILY: Monaco"><SPAN class=Apple-style-span 
style="FONT-FAMILY: Monaco">electrical and computer engineering, carnegie mellon 
university &nbsp; &nbsp;KF8NH</SPAN></SPAN></FONT></DIV><SPAN 
class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 11px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; border-spacing: 0px 0px; -khtml-text-decorations-in-effect: none; -apple-text-size-adjust: auto; orphans: 2; widows: 2"><BR 
class=Apple-interchange-newline></SPAN></SPAN></SPAN></DIV></SPAN></DIV><BR></BODY></HTML>