> could do the same just in different ways
Write a function that works with any monad? No?
Write a function that works with any numeric type? No?
You can fake type-classes, but it’s in no way a first class citizen. You can’t easily fake higher kinds.
You may not need those features, it doesn’t make my original statement any less true.