Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
It picks up
We've stumbled over these kind of things in the past as well (e.g. in spray/spray#990 (comment)). One conservative "solution" would be not to provide any reflection-based implicit marshallers automatically at all. Instead, the developer would need to create a little library of domain type marshallers as suggested by @sirthias in the above thread.
I.e. json4sMarshaller is either made not implicit or at least it is not imported and the user then creates tightly scoped implicits with
implicit def fooFormat = json4sMarshalling[Foo]