Module Migrate_parsetree_ast_io

type ast =
| Impl : (module Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.structure = 'concrete) * 'concrete ‑> ast
| Intf : (module Migrate_parsetree_versions.OCaml_version with type Ast.Parsetree.signature = 'concrete) * 'concrete ‑> ast

A marshalled ast packs the ast with the corresponding version of the frontend

type filename = string

A simple alias used for the filename of the source that produced an AST

type read_error =
| Not_a_binary_ast of string

(** The input doesn't contain a binary AST. The argument corresponds to the bytes from the input that were consumed. *)

| Unknown_version of string

(** The input contains a binary AST for an unknown version of OCaml. The argument is the unknown magic number. *)

val from_channel : Pervasives.in_channel ‑> (filename * astread_errorResult.result

Load a marshalled AST from a channel

Any exception raised during unmarshalling (see Marshal) can escape.

val from_bytes : bytes ‑> int ‑> (filename * astread_errorResult.result

Load a marshalled AST from a byte string.

See from_channel description for exception that can be raised.

val to_channel : Pervasives.out_channel ‑> filename ‑> ast ‑> unit

Marshal an AST to a channel

val to_bytes : filename ‑> ast ‑> bytes

Marshal an AST to a byte string