Haskell totally has subtyping, yes it does