title: Tree to ordered list with tail recursion
body: <p>I am actually sitting over a hour on a problem and don´t find a solution for it.
  I have this data type:
  <code>type 'a tree = Empty | Node of 'a * 'a tree * 'a tree</code></p>
  
  <p>And i have to find a function which converts a given tree in a ordered list. There is also no invariant like that the left child has to be less then the right. I already found a "normal" recursion solution but not a tail recursive solution. I already thought about to build a unordered list and sort it with <code>List.sort</code>, but this uses a merge sort which is not tail recursive. Maybe someone has a good advice.</p>
  
  <p>Thank you!</p>