This looks like a no-brainer to me:

forever :: Applicative f => f a -> f b
forever a = let x = a *> x in x