Learned about Scala typing (co/contravariance)

- `<%` can be thought of as meaning "such that".
  Like Haskell's `=>` from: `Num a => a ...`