sig
  module Jslib_ast :
    sig
      type loc = unit
      type unop =
          Jdelete
        | Jvoid
        | Jtypeof
        | Jadd2_pre
        | Jsub2_pre
        | Jadd_pre
        | Jsub_pre
        | Jtilde
        | Jnot
        | Jadd2_post
        | Jsub2_post
      and binop =
          Jhashref
        | Jmul
        | Jdiv
        | Jmod
        | Jadd
        | Jsub
        | Jlt
        | Jgt
        | Jleq
        | Jgeq
        | Jlsr
        | Jlsl
        | Jasr
        | Jeq
        | Jneq
        | Jinstanceof
        | Jseq
        | Jsneq
        | Jland
        | Jlor
        | Jand
        | Jxor
        | Jor
        | Jcomma
        | Jassign
        | Jmul_assign
        | Jdiv_assign
        | Jmod_assign
        | Jadd_assign
        | Jsub_assign
        | Jlsl_assign
        | Jlsr_assign
        | Jasr_assign
        | Jand_assign
        | Jxor_assign
        | Jor_assign
      and exp =
          Jthis of Ocamljs.Inline.Jslib_ast.loc
        | Jvar of Ocamljs.Inline.Jslib_ast.loc * string
        | Jarray of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp
        | Jobject of Ocamljs.Inline.Jslib_ast.loc *
            (Ocamljs.Inline.Jslib_ast.exp * Ocamljs.Inline.Jslib_ast.exp)
            list
        | Jstring of Ocamljs.Inline.Jslib_ast.loc * string * bool
        | Jnum of Ocamljs.Inline.Jslib_ast.loc * string
        | Jnull of Ocamljs.Inline.Jslib_ast.loc
        | Jbool of Ocamljs.Inline.Jslib_ast.loc * bool
        | Jregexp of Ocamljs.Inline.Jslib_ast.loc * string * string
        | Jfun of Ocamljs.Inline.Jslib_ast.loc * string option *
            string list * Ocamljs.Inline.Jslib_ast.stmt
        | Jfieldref of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp * string
        | Junop of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.unop * Ocamljs.Inline.Jslib_ast.exp
        | Jbinop of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.binop * Ocamljs.Inline.Jslib_ast.exp *
            Ocamljs.Inline.Jslib_ast.exp
        | Jite of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp * Ocamljs.Inline.Jslib_ast.exp *
            Ocamljs.Inline.Jslib_ast.exp
        | Jcall of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp * Ocamljs.Inline.Jslib_ast.exp
        | Jnew of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp *
            Ocamljs.Inline.Jslib_ast.exp option
        | Jexp_nil of Ocamljs.Inline.Jslib_ast.loc
        | Jexp_cons of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp * Ocamljs.Inline.Jslib_ast.exp
        | Jexp_Ant of Ocamljs.Inline.Jslib_ast.loc * string
      and stmt =
          Jvars of Ocamljs.Inline.Jslib_ast.loc *
            (string * Ocamljs.Inline.Jslib_ast.exp option) list
        | Jfuns of Ocamljs.Inline.Jslib_ast.loc * string * string list *
            Ocamljs.Inline.Jslib_ast.stmt
        | Jreturn of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp option
        | Jcontinue of Ocamljs.Inline.Jslib_ast.loc * string option
        | Jbreak of Ocamljs.Inline.Jslib_ast.loc * string option
        | Jswitch of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp *
            (Ocamljs.Inline.Jslib_ast.exp * Ocamljs.Inline.Jslib_ast.stmt)
            list * Ocamljs.Inline.Jslib_ast.stmt
        | Jites of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp * Ocamljs.Inline.Jslib_ast.stmt *
            Ocamljs.Inline.Jslib_ast.stmt option
        | Jthrow of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp
        | Jexps of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp
        | Jtrycatch of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.stmt *
            (string * Ocamljs.Inline.Jslib_ast.stmt) option *
            Ocamljs.Inline.Jslib_ast.stmt
        | Jfor of Ocamljs.Inline.Jslib_ast.loc *
            (string * Ocamljs.Inline.Jslib_ast.exp option) list *
            Ocamljs.Inline.Jslib_ast.exp option *
            Ocamljs.Inline.Jslib_ast.exp option *
            Ocamljs.Inline.Jslib_ast.exp option *
            Ocamljs.Inline.Jslib_ast.stmt
        | Jdowhile of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.stmt * Ocamljs.Inline.Jslib_ast.exp
        | Jwhile of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp * Ocamljs.Inline.Jslib_ast.stmt
        | Jblock of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.stmt
        | Jwith of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.exp * Ocamljs.Inline.Jslib_ast.stmt
        | Jlabel of Ocamljs.Inline.Jslib_ast.loc * string *
            Ocamljs.Inline.Jslib_ast.stmt
        | Jstmt_nil of Ocamljs.Inline.Jslib_ast.loc
        | Jstmt_cons of Ocamljs.Inline.Jslib_ast.loc *
            Ocamljs.Inline.Jslib_ast.stmt * Ocamljs.Inline.Jslib_ast.stmt
        | Jstmt_Ant of Ocamljs.Inline.Jslib_ast.loc * string
    end
  external inline_exp : Ocamljs.Inline.Jslib_ast.exp -> 'a = "$inline_exp"
  external inline_stmt : Ocamljs.Inline.Jslib_ast.stmt -> unit
    = "$inline_stmt"
  external inline_rstmt : Ocamljs.Inline.Jslib_ast.stmt -> 'a
    = "$inline_rstmt"
  external inline_antiexp : '-> Ocamljs.Inline.Jslib_ast.exp
    = "$inline_antiexp"
  val _loc : Ocamljs.Inline.Jslib_ast.loc
end