This is how Haskell achieves parametric types.
これがHaskellが多相型を獲得した方式である。