sig
  type ast =
      Impl :
        (module Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.structure = 'concrete) *
        'concrete -> Migrate_parsetree_ast_io.ast
    | Intf :
        (module Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.signature = 'concrete) *
        'concrete -> Migrate_parsetree_ast_io.ast
  type filename = string
  type read_error = Not_a_binary_ast of string | Unknown_version of string
  val from_channel :
    Pervasives.in_channel ->
    (Migrate_parsetree_ast_io.filename * Migrate_parsetree_ast_io.ast,
     Migrate_parsetree_ast_io.read_error)
    Pervasives.result
  val from_bytes :
    bytes ->
    int ->
    (Migrate_parsetree_ast_io.filename * Migrate_parsetree_ast_io.ast,
     Migrate_parsetree_ast_io.read_error)
    Pervasives.result
  val to_channel :
    Pervasives.out_channel ->
    Migrate_parsetree_ast_io.filename -> Migrate_parsetree_ast_io.ast -> unit
  val to_bytes :
    Migrate_parsetree_ast_io.filename ->
    Migrate_parsetree_ast_io.ast -> bytes
end