This looks like a no-brainer to me:
forever :: Applicative f => f a -> f b forever a = let x = a *> x in x