sig
  type source_check_result =
      TemplateUnchanged
    | TemplateChanged
    | TemplateDeleted
  class type source_loader =
    object
      method check :
        template_name:string ->
        load_time:float -> CamlTemplate.Cache.source_check_result
      method load : template_name:string -> string
    end
  val as_source_loader :
    #CamlTemplate.Cache.source_loader -> CamlTemplate.Cache.source_loader
  val make_file_loader :
    template_dir:string -> CamlTemplate.Cache.source_loader
  type t
  val create :
    ?loader:CamlTemplate.Cache.source_loader ->
    ?check_interval:float -> unit -> CamlTemplate.Cache.t
  val get_template :
    cache:CamlTemplate.Cache.t ->
    template_name:string -> CamlTemplate.template
end