The NICTA Haskell Course presents the following function to implement on List:data List t =  Nil  | t :. List t  deriving (Eq, Ord)And the function:filtering :: Applicative f => (a -> f Bool) -> List a -> f (List a)filtering _ Nil       = pure Nilfiltering f (x :. xs) = (++) <$> ((\y -> case y of True -> x :. Nil                                                   False -> Nil) <$> f x) <*>                                                            filtering f xsPlease review this implementation.
Implement 'filtering'
haskell