1234567891011121314151617181920212223242526272829303132(* Mark objects as 'ancient' so they are taken out of the OCaml heap. *)type'aancienttypeinfo={i_size:int;}externalmark_info:'a->'aancient*info="ancient_mark_info"letmarkobj=fst(mark_infoobj)externalfollow:'aancient->'a="ancient_follow"externaldelete:'aancient->unit="ancient_delete"externalis_ancient:'a->bool="ancient_is_ancient"externaladdress_of:'a->nativeint="ancient_address_of"typemdexternalattach:Unix.file_descr->nativeint->md="ancient_attach"externaldetach:md->unit="ancient_detach"externalshare_info:md->int->'a->'aancient*info="ancient_share_info"letsharemdkeyobj=fst(share_infomdkeyobj)externalget:md->int->'aancient="ancient_get"