Big +1 to what @Karl , @DevAndArtist and @Max_Desiatov said, i think this proposal needs another iteration with carefully consideration of the alternative ideas and future directions (generic protocols)
i would like to also hear about the ideas of Chris cc @Chris_Lattner3