filter using flatMap
zipWith
hasSubsequence impl
tree functions