Exploring contravariance using Swift | Hacker News Reader