title: Clone not implemented on function... sometimes
body: <p>I have a vector of functiony enums. I want to clone this vector en masse. However, my Action enum can't derive Clone because Clone isn't implemented for a </p>
  
  <pre><code>fn(&amp;mut Vec&lt;i32&gt;)
  </code></pre>
  
  <p>It works if it's </p>
  
  <pre><code>fn(Vec&lt;i32&gt;)
  </code></pre>
  
  <p>though. It doesn't seem to like fns that borrow their parameters. Why is this? Is there a way for me to do this?</p>
  
  <pre><code>#[derive(Clone)]
  enum Action {
      Function (fn(&amp;mut Vec&lt;i32&gt;))
  }
  fn pop(vec:&amp;mut Vec&lt;i32&gt;) {
      let _ = vec.pop();
  }
  fn main() {
      let actions = vec![ Action::Function(pop), Action::Function(pop) ];
      let actions_copy = actions.to_vec();
  }
  </code></pre>