I was also confused by the claim that Clojure solves it and Haskell does not.

> run into annoying boilerplate related to the orphan rule

I always forget this, but it's not an orphan if you put the instance in the same module as the class definition (as opposed to bundling it with a newtype elsewhere). Class definitions and instances would go in Evaluatable and Stringable.