drop package:pipes

(drop n) discards n values going downstream
drop 0 = cat

drop (m + n) = drop m >-> drop n
(dropWhile p) discards values going downstream until one violates the predicate p.
dropWhile (pure False) = cat

dropWhile (liftA2 (||) p1 p2) = dropWhile p1 >-> dropWhile p2