But `ListMap` extends `Map`:

http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.ListMap

The implementation should still be `ListMap`, but I don't think we should expose which `Map` is being used here, we may decide in future to use a different insertion order maintaining map (if one ever exists), but if we return `ListMap`, that would prevent us from doing that.  Returning `Map` means we're free to return `ListMap` or whatever we want.