title: Return type for rusqlite MappedRows
body: <p>I am trying to write a method that returns a <code>rusqlite::MappedRows</code>:</p>
  
  <pre><code>pub fn dump&lt;F&gt;(&amp;self) -&gt; MappedRows&lt;F&gt;
      where F: FnMut(&amp;Row) -&gt; DateTime&lt;UTC&gt;
  {
      let mut stmt =
          self.conn.prepare("SELECT created_at FROM work ORDER BY created_at ASC").unwrap();
  
      let c: F = |row: &amp;Row| {
          let created_at: DateTime&lt;UTC&gt; = row.get(0);
          created_at
      };
  
      stmt.query_map(&amp;[], c).unwrap()
  }
  </code></pre>
  
  <p>I am getting stuck on a compiler error:</p>
  
  <pre class="lang-none prettyprint-override"><code>error[E0308]: mismatched types
    --&gt; src/main.rs:70:20
     |
  70 |           let c: F = |row: &amp;Row| {
     |  ____________________^ starting here...
  71 | |             let created_at: DateTime&lt;UTC&gt;  = row.get(0);
  72 | |             created_at
  73 | |         };
     | |_________^ ...ending here: expected type parameter, found closure
     |
     = note: expected type `F`
     = note:    found type `[closure@src/main.rs:70:20: 73:10]`
  </code></pre>
  
  <p>What am I doing wrong here?</p>
  
  <p>I tried passing the closure directly to <code>query_map</code> but I get the same compiler error.</p>