title: How to implement a Read instance with the actual parsing already complete, in Haskell?
body: <p>In <a href="https://stackoverflow.com/questions/10408046/implementing-read-for-a-left-associative-tree-in-haskell/10410178#10410178">this answer</a>, one finds the statement that it would not be very hard to implement a <code>Read</code> instance for the datatype <code>Tree</code>, with the actual parsing already complete.  </p>
  
  <p>However, I am having a hard time to understand how such a function as <code>read</code> works: AFAIK, I should implement a <code>readsPrec</code> function instead of <code>read</code> and this <code>readsPrec</code> should perform the reading for strings consisting of only one character. Is this correct?<br>
  If that is the case, then how should one implement a <code>Read</code> instance of <code>Tree</code> when the parsing is done via <code>ParsecT</code>? Can we break the parsing word by word, or is there any need to do so?  </p>
  
  <p>I didn't think of <code>read</code> as a difficult feature in Haskell, but now I find it quite perplexed and confusing, and I am lost in searching <code>Hoogle</code> for all such unfamiliar things as <code>readP_to_S</code>, <code>readS</code>, etc.  </p>
  
  <p>Any help or reference will be greatly appreciated.</p>