I'll report this to ppx_deriving too. I had similar problems in merlin (incompatibiliy between Ppx_deriving_runtime.string and string, but no problem at compilation though.
#=== ERROR while installing nanomsg.1.0 =======================================#
# opam-version 1.2.2
# os linux
# command ocaml pkg/build.ml native=true native-dynlink=true lwt=true ounit=true
# path /home/sapristi/.opam/system/build/nanomsg.1.0
# compiler system (4.02.3)
# exit-code 10
# env-file /home/sapristi/.opam/system/build/nanomsg.1.0/nanomsg-13706-ad8886.env
# stdout-file /home/sapristi/.opam/system/build/nanomsg.1.0/nanomsg-13706-ad8886.out
# stderr-file /home/sapristi/.opam/system/build/nanomsg.1.0/nanomsg-13706-ad8886.err
### stdout ###
# [...]
# ocamlfind ocamlc -c -g -bin-annot -safe-string -package containers.bigarray -package ipaddr -package containers -package lwt.unix -package lwt.ppx -package ctypes -package ppx_deriving.std -I lib -I lib_test -o lib/nanomsg_lwt.cmi lib/nanomsg_lwt.mli
# ocamlfind ocamlc -c -g -bin-annot -safe-string -package containers.bigarray -package ctypes.foreign -package ipaddr -package containers -package lwt.unix -package lwt.ppx -package oUnit -I lib_test -I lib -o lib_test/suite.cmo lib_test/suite.ml
# + ocamlfind ocamlc -c -g -bin-annot -safe-string -package containers.bigarray -package ctypes.foreign -package ipaddr -package containers -package lwt.unix -package lwt.ppx -package oUnit -I lib_test -I lib -o lib_test/suite.cmo lib_test/suite.ml
# File "lib_test/suite.ml", line 29, characters 13-40:
# Error: This expression has type
# Nanomsg.Addr.connect Nanomsg.Addr.t -> Ppx_deriving_runtime.string
# but an expression was expected of type
# Nanomsg.Addr.connect Nanomsg.Addr.t -> string
# Type Ppx_deriving_runtime.string is not compatible with type string
# Command exited with code 2.```
I'll report this to ppx_deriving too. I had similar problems in merlin (incompatibiliy between Ppx_deriving_runtime.string and string, but no problem at compilation though.