I think you should make JsArrayConverter and JsObjConverter into an implicit classes and remove the implicit defs. You're already using an implicit JSStringQuoter so the implicit class feature is already being used a few lines higher up. The implicit defs aren't useful because no one will want to call them directly.