alphabets have a string representation
alphabet can receive a stream of symbols and so it returns a stream of ids
alphabet can receive a stream of ids and so it returns a stream of symbols
IIDModel can receive streams
refactoring streams
IIDModel can generate random streams