semantics ... based on Haskell while using eager evaluation is kind of a contradiction in terms. The difference between eager and lazy evaluation is rather large.
Definitely. Type classes are the semantic part of Shem taken from Haskell. Perhaps that is not the best summary, it's the type system that is the most obvious connection between Shem and Haskell.