Module Qcert.EJson.Operators.ForeignEJsonRuntime


Require Import String.
Require Import EquivDec.
Require Import List.
Require Import Utils.
Require Import ForeignEJson.
Require Import EJson.

Section ForeignEJsonRuntime.
  Class foreign_ejson_runtime
        (foreign_ejson_runtime_op : Set)
        {foreign_ejson_model:Set}
        {fejson:foreign_ejson foreign_ejson_model}
  : Type
    := mk_foreign_ejson_runtime {
           foreign_ejson_runtime_op_dec :> EqDec foreign_ejson_runtime_op eq
           ; foreign_ejson_runtime_op_tostring :> ToString foreign_ejson_runtime_op
           ; foreign_ejson_runtime_op_interp
               (f:foreign_ejson_runtime_op)
               (dl:list (@ejson foreign_ejson_model)) : option (@ejson foreign_ejson_model)
           ; foreign_ejson_runtime_tostring : (@ejson foreign_ejson_model) -> string
           ; foreign_ejson_runtime_fromstring : string -> option foreign_ejson_runtime_op
           ; foreign_ejson_runtime_totext : (@ejson foreign_ejson_model) -> string
         }.

End ForeignEJsonRuntime.