functor (Entry : AtomData) (Link : AtomData) (Extensions : AtomData->
  sig
    type entry_t = Entry.t
    type link_t = Link.t
    type extensions_t = Extensions.t
    type t = {
      etag : string;
      kind : string;
      authors : Author.t list;
      categories : Category.t list;
      contributors : Contributor.t list;
      generator : Generator.t;
      icon : atom_icon;
      id : atom_id;
      updated : atom_updated;
      entries : entry_t list;
      links : link_t list;
      logo : atom_logo;
      rights : Rights.t;
      subtitle : Subtitle.t;
      title : Title.t;
      totalResults : opensearch_totalResults;
      itemsPerPage : opensearch_itemsPerPage;
      startIndex : opensearch_startIndex;
      extensions : extensions_t;
    }
    val etag : (t, string) GapiLens.t
    val kind : (t, string) GapiLens.t
    val authors : (t, Author.t list) GapiLens.t
    val categories : (t, Category.t list) GapiLens.t
    val contributors : (t, Contributor.t list) GapiLens.t
    val generator : (t, Generator.t) GapiLens.t
    val icon : (t, atom_icon) GapiLens.t
    val id : (t, atom_id) GapiLens.t
    val updated : (t, atom_updated) GapiLens.t
    val entries : (t, entry_t list) GapiLens.t
    val links : (t, link_t list) GapiLens.t
    val logo : (t, atom_logo) GapiLens.t
    val rights : (t, Rights.t) GapiLens.t
    val subtitle : (t, Subtitle.t) GapiLens.t
    val title : (t, Title.t) GapiLens.t
    val totalResults : (t, opensearch_totalResults) GapiLens.t
    val itemsPerPage : (t, opensearch_itemsPerPage) GapiLens.t
    val startIndex : (t, opensearch_startIndex) GapiLens.t
    val extensions : (t, extensions_t) GapiLens.t
    val empty : t
    val to_xml_data_model : t -> GdataCore.xml_data_model list
    val of_xml_data_model : t -> GdataCore.xml_data_model -> t
    val parse_feed : GdataCore.xml_data_model -> t
  end