add concat_map and drop_while and reverse and take_while meta function