takeWhileAntitone p = fromDistinctAscList . takeWhile (p . fst) . toList takeWhileAntitone p = filterWithKey (\k _ -> p k)
takeWhileAntitone p = fromDistinctAscList . takeWhile p . toList takeWhileAntitone p = filter p