use JSON::PP for its in-coreness