-filteredStream :: Word16 -> [Word16] -> [Word16]
-filteredStream f str = filter ((== 0) . ( .&. f)) str
+stream' :: Int -> (Int -> Int) -> Int -> [Word16]
+stream' f gen n0 = map toWord16 $ filter ((== 0) . (`mod` f)) $ drop 1 $ iterate gen n0
+
+
+-- filteredStream :: Word16 -> [Word16] -> [Word16]
+-- filteredStream f = filter ((== 0) . ( .&. f))
+