{"action":"created","issue":{"url":"https://api.github.com/repos/mirage/ocaml-github/issues/109","repository_url":"https://api.github.com/repos/mirage/ocaml-github","labels_url":"https://api.github.com/repos/mirage/ocaml-github/issues/109/labels{/name}","comments_url":"https://api.github.com/repos/mirage/ocaml-github/issues/109/comments","events_url":"https://api.github.com/repos/mirage/ocaml-github/issues/109/events","html_url":"https://github.com/mirage/ocaml-github/issues/109","id":145577497,"number":109,"title":"Move from atdgen to ppx_deriving_yojson","user":{"login":"rgrinberg","id":139003,"avatar_url":"https://avatars.githubusercontent.com/u/139003?v=3","gravatar_id":"","url":"https://api.github.com/users/rgrinberg","html_url":"https://github.com/rgrinberg","followers_url":"https://api.github.com/users/rgrinberg/followers","following_url":"https://api.github.com/users/rgrinberg/following{/other_user}","gists_url":"https://api.github.com/users/rgrinberg/gists{/gist_id}","starred_url":"https://api.github.com/users/rgrinberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rgrinberg/subscriptions","organizations_url":"https://api.github.com/users/rgrinberg/orgs","repos_url":"https://api.github.com/users/rgrinberg/repos","events_url":"https://api.github.com/users/rgrinberg/events{/privacy}","received_events_url":"https://api.github.com/users/rgrinberg/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2016-04-04T03:59:44Z","updated_at":"2016-04-12T15:36:51Z","closed_at":null,"body":"Or to jsont if it ever gets released. My main motivation for this is to add the common deriving converters to the type definitions like sexp."},"comment":{"url":"https://api.github.com/repos/mirage/ocaml-github/issues/comments/208965958","html_url":"https://github.com/mirage/ocaml-github/issues/109#issuecomment-208965958","issue_url":"https://api.github.com/repos/mirage/ocaml-github/issues/109","id":208965958,"user":{"login":"rgrinberg","id":139003,"avatar_url":"https://avatars.githubusercontent.com/u/139003?v=3","gravatar_id":"","url":"https://api.github.com/users/rgrinberg","html_url":"https://github.com/rgrinberg","followers_url":"https://api.github.com/users/rgrinberg/followers","following_url":"https://api.github.com/users/rgrinberg/following{/other_user}","gists_url":"https://api.github.com/users/rgrinberg/gists{/gist_id}","starred_url":"https://api.github.com/users/rgrinberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rgrinberg/subscriptions","organizations_url":"https://api.github.com/users/rgrinberg/orgs","repos_url":"https://api.github.com/users/rgrinberg/repos","events_url":"https://api.github.com/users/rgrinberg/events{/privacy}","received_events_url":"https://api.github.com/users/rgrinberg/received_events","type":"User","site_admin":false},"created_at":"2016-04-12T15:36:51Z","updated_at":"2016-04-12T15:36:51Z","body":"> If debugging is the only reason, formatters can do the job. If you really insist on sexps then you don't need to generate them, a codec function for a datatype should be only a few typed indexed combinators away.\r\n\r\nSo we can at least agree that sexps solve real problems.\r\n\r\n* Don't have to write any code to pretty print for debugging. \"A few typed indexed combinators away\" is still an annoying distraction to me when I'm debugging\r\n* sexp functions can be selected with quotations `[%sexp_of: typ]`\r\n\r\nFormatters are fine for debugging too, [because I can also generate them](https://github.com/whitequark/ppx_deriving#plugin-show).\r\n\r\n> I hope you had a look at the result of the invocation I mentioned earlier. I'm not sure why I have to depend on shared-memory-ring if I want to interact with github using curl the tool or curl the library. In my book this is called an engineering disaster. What we have here a library that doesn't compose in a graceful way (if not at all) with different usage scenarios.\r\n\r\n> But then maybe you like bloat.\r\n\r\nNo, I agree with this point. ocaml-github can certainly structure the dependencies better. But I distinguish between different dependencies. Some like you've pointed out are overly specific and require users to pay in portability, binary bloat, external dependencies, etc. I just don't think sexp is one such dependency. I guess I still don't understand your objections against ppx?!\r\n\r\n@avsm how did lambda-term make that list?"}}