func squares<T: Numeric>(of values: [T]) { values.map { (a) in a * a } }
// closure #1 in squares<A>(of:) sil private @$s2c17squares2ofySayxG_tSjRzlFxxXEfU_ : $@convention(thin) <T where T : Numeric> (@in_guaranteed T) -> @out T {
.map
の型チェックの前に、AST変形かけたらいけるような気もする