Unless you have a &#39;real&#39; type for parse sometime during compile time, TH won&#39;t be able to generate it. A good rule of thumbs is that if you can&#39;t write the code yourself, then you can&#39;t get TH to do it either.<div>
<br></div><div>/J<br><div><br></div><div><div class="gmail_quote">On 27 October 2010 08:50, Andy Stewart <span dir="ltr">&lt;<a href="mailto:lazycat.manatee@gmail.com">lazycat.manatee@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Serguey Zefirov &lt;<a href="mailto:sergueyz@gmail.com">sergueyz@gmail.com</a>&gt; writes:<br>
<br>
&gt; 2010/10/27 Andy Stewart &lt;<a href="mailto:lazycat.manatee@gmail.com">lazycat.manatee@gmail.com</a>&gt;:<br>
&gt;&gt; Hi all,<br>
&gt;&gt;<br>
&gt;&gt; I want use TH write some function like below:<br>
&gt;&gt;<br>
&gt;&gt;  data DataType = StringT<br>
&gt;&gt;                | IntT<br>
&gt;&gt;                | CharT<br>
&gt;&gt;<br>
&gt;&gt;  parse :: [(String,DataType)] -&gt; (TypeA, TypeB, ... TypeN)<br>
&gt;&gt;<br>
&gt;&gt; Example:<br>
&gt;&gt;<br>
&gt;&gt;  parse [(&quot;string&quot;, StringT), (&quot;001&quot;, IntT), (&quot;c&quot;, CharT)]<br>
&gt;&gt;<br>
&gt;&gt; will return:<br>
&gt;&gt;<br>
&gt;&gt;  (&quot;string&quot;, 001, &#39;c&#39;)<br>
&gt;&gt;<br>
&gt;&gt; So how to use TH write &#39;parse&#39; function?<br>
&gt;<br>
&gt; I think that you should use TH properly, without compiler and logical errors.<br>
&gt;<br>
&gt; What actually do you want?<br>
</div>I&#39;m build multi-processes communication program.<br>
<br>
Example i have two processes : Client and Server.<br>
<br>
At Client side, i pass [DataType] to Server, example:<br>
<br>
  [StringT, IntT, CharT]<br>
<br>
Server will handle &quot;user input&quot; with [DataType]<br>
and return result [String] to Client side, example:<br>
<br>
  [&quot;string&quot;, &quot;001&quot;, &quot;c&quot;]<br>
<br>
Then at Client side, i need parse [String] to get real value:<br>
<br>
  (&quot;string&quot;, 001, &#39;c&#39;)<br>
<br>
Because, [DataType] have many different case, so i want pass [String]<br>
between processes, and use TH parse result [String] at Client side.<br>
<br>
Thanks,<br>
<font color="#888888"><br>
  -- Andy<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div></div>