fix "rewrite" and add equal_fst function for ordered sets
represent matches and derivatives as ordered sets instead of unordered
added more examples and started writing about the state of the art