title: best way to write a-> ..->[a] recursive functions in haskell
body: <p>So I keep having this small problem where I have something like</p>
  
  <pre><code>func :: a -&gt; b -&gt; [a]  -- # or basically any a-&gt; ...-&gt; [a] where ... is any types  -&gt;
  func x y = func' [x] y -- '# as long as they are used to generate a list of [a] from x
  
  func' :: [a] -&gt; b -&gt; [a] 
  func' = undefined -- # situation dependant generates a list from
                    -- # each element and returns it as one long list
  </code></pre>
  
  <p>should I keep it like this?</p>
  
  <p>should I use func' hidden by a where?</p>
  
  <p>should I only use the [a] -> b -> [a] version and leave the responsibility of passing [variable] to the callee?</p>
  
  <p>I might well need to compose these functions and might want to mess around with the order so I'm leaning towards option 3. What do you think?</p>