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 : Stdlib.in_channel -> (filename * astread_error) Result.result

Load a marshalled AST from a channel

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

val from_bytes : bytes -> int -> (filename * astread_error) Result.result

Load a marshalled AST from a byte string.

See from_channel description for exception that can be raised.

val to_channel : Stdlib.out_channel -> filename -> ast -> unit

Marshal an AST to a channel

val to_bytes : filename -> ast -> bytes

Marshal an AST to a byte string