sig
  type t
  exception Failure of string
  type flag =
      Symlink
    | Compress
    | Devices
    | Mime
    | Continue
    | Check
    | Preserve_atime
    | Raw
  val make : ?flags:Magic.flag list -> string list -> Magic.t
  val create : ?flags:Magic.flag list -> string list -> Magic.t
  val close : Magic.t -> unit
  val file : Magic.t -> string -> string
  val buffer : Magic.t -> ?len:int -> string -> string
  val setflags : Magic.t -> Magic.flag list -> unit
  val load : Magic.t -> string list -> unit
  val compile : Magic.t -> string list -> unit
  val check : Magic.t -> string list -> bool
end