Playing around with ideas from the paper: "An Extended Comparative Study of Language Support for Generic Programming" by Garcia, Jarvi, Lumsdaine, Siek and Willcock http://www.osl.iu.edu/publications/prints/2005/garcia05:_extended_comparing05.pdf
trying it out in Swift