私はシリアライズしOCamlの型をシリアル化するsexplibを使用して
type eff = Add of {username: string; pwd: string}
| AddFollowing of {leader_id: id}
| RemFollowing of {leader_id: id}
| AddFollower of {follower_id: id}
| RemFollower of {follower_id: id}
| Blocks of {follower_id: id}
| GetBlocks
| IsBlockedBy of {leader_id: id}
| GetIsBlockedBy
| GetInfo
| GetFollowers
| GetFollowing [@@deriving sexp]
を次のように私はこの私が手ocamlfind ocamlc -package sexplib,ppx_sexp_conv -linkpkg microblog_app.ml
を使用してコンパイルしようとするインライン定義を持つカスタムOCamlのレコード型をデシリアライズするためにsexplibを使用しようとしていますエラーFailure("Pcstr_record not supported") File "microblog_app.ml", line 1: Error: Error while running external preprocessor
。
ppx_sexp_convは、現在のリリースでインライン定義をサポートしていないことがわかりました。残念ながら、 は他のパッケージとバージョンの競合を引き起こすため、私は開発リリースを使用できません。だから私は、私は私の後のコード内の関数sexp_of_eff
とeff_of_sexp
を使用
type usernamePwd = {username: string; pwd: string}
type leaderId = {leader_id: id}
type followerId = {follower_id: id}
type eff = Add of usernamePwd
| AddFollowing of leaderId
| RemFollowing of leaderId
| AddFollower of followerId
| RemFollower of followerId
| Blocks of followerId
| GetBlocks
| IsBlockedBy of leaderId
| GetIsBlockedBy
| GetInfo
| GetFollowers
| GetFollowing [@@deriving sexp]
を次のようにインライン定義を変更しようとしました。私がこれをコンパイルすると、エラーError: Unbound value usernamePwd_of_sexp
が出ます。私は自分のコードでこの関数を全く使用しません。誰かがこのエラーを解決する方法を教えてもらえますか?