Are there other things to consider when choosing the method of error implementation between vanilla interface, vanilla class, extended Data.Case interface, or extended Data.TaggedClass besides Equal implementation not working? There isn't anything like Effect.catchTag that requires a value and not reference or something right?