code: func Map(f, xs interface{}) interface{} {
  	chk := ty.Check(
  		new(func(func(ty.A) ty.B, []ty.A) []ty.B),
  		f, xs)
  	vf, vxs, tys := chk.Args[0], chk.Args[1], chk.Returns[0]
  
  	xsLen := vxs.Len()
  	vys := reflect.MakeSlice(tys, xsLen, xsLen)
  	for i := 0; i < xsLen; i++ {
  		vy := call1(vf, vxs.Index(i))
  		vys.Index(i).Set(vy)
  	}
  	return vys.Interface()
  }
docs: // Map has a parametric type:
  //
  //	func Map(f func(A) B, xs []A) []B
  //
  // Map returns the list corresponding to the return value of applying
  // `f` to each element in `xs`.