module Regexp: sig .. end
module type RegexpType = sig .. end
module MakeRegexpType: functor (Letter : Set.OrderedType) -> RegexpType  with type letter = Letter.t
module type GlushkovType = sig .. end
module MakeGlushkovType: functor (Letter : Set.OrderedType) -> GlushkovType  with type Regexp.letter = Letter.t
       and type NFA.letter = Letter.t
       and type NFA.Alphabet.elt = Letter.t
       and type NFA.StateToTransitionMap.key = int
       and type NFA.TransitionMap.key = Letter.t
       and type NFA.StateSet.elt = int
       and type DFA.letter = Letter.t
       and type DFA.Alphabet.elt = Letter.t
       and type DFA.StateToTransitionMap.key = int
       and type DFA.TransitionMap.key = Letter.t
       and type DFA.StateSet.elt = int
       and type NFAPair.letter = Letter.t
       and type NFAPair.Alphabet.elt = Letter.t
       and type NFAPair.StateToTransitionMap.key = int * int
       and type NFAPair.TransitionMap.key = Letter.t
       and type NFAPair.StateSet.elt = int * int