sig
  val decode :
    OpamJson.decoder ->
    [ `Await
    | `Comment of [ `M | `S ] * string
    | `End
    | `Error of OpamJson.error
    | `Lexeme of OpamJson.lexeme
    | `White of string ]
  val pp_decode :
    Format.formatter ->
    [< `Await
     | `Comment of [ `M | `S ] * string
     | `End
     | `Error of OpamJson.error
     | `Lexeme of OpamJson.lexeme
     | `White of string ] ->
    unit
  val encode :
    OpamJson.encoder ->
    [< `Await
     | `Comment of [ `M | `S ] * string
     | `End
     | `Lexeme of OpamJson.lexeme
     | `White of string ] ->
    [ `Ok | `Partial ]
end