# Module Ast_404.Docstrings

    module Docstrings: sig .. end

    type docstring = {

`` | `ds_body : `string`;`
`` | `ds_loc : `Location.t`;`

}

    val docstring : string -> Location.t -> docstring

    val docstring_body : docstring -> string

    val docstring_loc : docstring -> Location.t

    type docs = {

`` | `docs_pre : `docstring option`;`
`` | `docs_post : `docstring option`;`

}

    val empty_docs : docs

    val docs_attr : docstring ->
           string Location.loc * Ast_404.Parsetree.payload

    val add_docs_attrs : docs ->
           (string Location.loc * Ast_404.Parsetree.payload) list ->
           (string Location.loc * Ast_404.Parsetree.payload) list

    type info = docstring option

    val empty_info : 'a option

    val info_attr : docstring ->
           string Location.loc * Ast_404.Parsetree.payload

    val add_info_attrs : docstring option ->
           (string Location.loc * Ast_404.Parsetree.payload) list ->
           (string Location.loc * Ast_404.Parsetree.payload) list

    type text = docstring list

    val empty_text : 'a list

    val text_attr : docstring ->
           string Location.loc * Ast_404.Parsetree.payload

    val add_text_attrs : docstring list ->
           (string Location.loc * Ast_404.Parsetree.payload) list ->
           (string Location.loc * Ast_404.Parsetree.payload) list