# Module Migrate_parsetree_ast_io

    module Migrate_parsetree_ast_io: sig .. end

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

    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 = 'concrete0) * 'concrete0` -> `ast``

    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 * ast,
            read_error)
           Pervasives.result

Load a marshalled AST from a channel

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

    val from_bytes : bytes ->
           int ->
           (filename * ast,
            read_error)
           Pervasives.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