38185


新しいOCamlではCamlp4の代わりにppxが使われるようになり、[Real World
OCaml](https://realworldocaml.org/v1/en/html/data-serialization-with-s-
expressions.html)にあるようなS式を取り扱うコードも一部適用できなくなったことを知りました。例えば`with
sexp`の代わりに`[@@deriving sexp]`と書く、といった具合です。

[code]

    # require "ppx_sexp_conv";;
    # type some_type = { foo: int; bar: string } [@@deriving sexp];;
    type some_type = { foo : int; bar : string; }
    val some_type_of_sexp : Sexplib.Sexp.t -> some_type = <fun>
    val sexp_of_some_type : some_type -> Sexplib.Sexp.t = <fun>
    
[/code]

Camlp4の場合は他にも、無名の型に対して変換関数を生成する`<:sexp_of<型>>`という記法がありますが、これと同じものはppx版のsexplibにもあるのでしょうか？（また、ない場合は自前で書くことはできるでしょうか？）


CC BY-SA 3.0
2017-09-25T13:29:26.353
38178
2017-09-26T08:10:35.383
2017-09-26T08:10:35.383
13199
13199
question
ocaml
ppx版のsexplibで旧来の<:sexp_of<型>>に相当するものはあるのでしょうか？


  * `[%sexp_of: ty]`
  * `[%of_sexp: ty]`

困ったことに現在 `deriving` 関連は

  * `ppx_deriving`
  * `ppx_type_conv` (Jane Street製)

の２つのライブラリがあります。この２つを混ぜる事は現在できなくなっています。(前はできたのですが)

`ppx_type_conv` 側に、 `ppx_deriving` での書き方、 `[%derive.sexp_of: ty]` とか
`[%derive.of_sexp: ty]` は今のところありません。


CC BY-SA 3.0
2017-09-25T22:33:46.380
38185
2017-09-26T01:22:51.317
2017-09-26T01:22:51.317
898
898
38178
answer