title: What's your naming convention for helper functions?
body: <p>In functional programming, it's often important to optimize any "looping" code to be tail recursive. Tail recursive algorithms are usually split between two functions, however - one which sets up the base case, and another that implements the actual loop. A good (albeit academic) example would be the reverse function.</p>
  
  <pre><code>reverse :: [a] -&gt; [a]
  reverse = reverse_helper []
  
  reverse_helper :: [a] -&gt; [a] -&gt; [a]
  reverse_helper result [] = result
  reverse_helper result (x:xs) = reverse_helper (x:result) xs
  </code></pre>
  
  <p>"reverse_helper" isn't really a good, descriptive name. However, "reverse_recursive_part" is just awkward.</p>
  
  <p>What naming convention would you use for helper functions like this?</p>