title: Map.fromIterable specify argument type of key/value extraction lambdas
body: <p>Given this code:</p>
  <pre><code>class Dog{
    String name = &quot;Dog&quot;;
    int age = 2;
  }
  
  final list = [Dog(), Dog()]
  
  final dogNameToAge = Map.fromIterable(
    list, key: (value)=&gt; value.name, value: (value)=&gt;value.age)
  </code></pre>
  <p>Type of 'key' lambda is <code>String Function(dynamic)?</code> is there a way  of using something more like: <code>String Function(Dog)?</code> so that it would be more type safe?</p>