sig
  exception Parse_error of string
  type pattern =
      Epsilon
    | Star of Glob_ast.pattern
    | Class of Glob_ast.character_class
    | Concat of Glob_ast.pattern * Glob_ast.pattern
    | Union of Glob_ast.pattern list
    | Word of string
  and character_class = (char * char) Bool.boolean
  type 'a atom = Constant of string | Pattern of 'a
end