functor (X : Alphabet.T-> T