module Language.PureScript.CST.Traversals where import Prelude import Language.PureScript.CST.Types everythingOnSeparated :: (r -> r -> r) -> (a -> r) -> Separated a -> r everythingOnSeparated :: forall r a. (r -> r -> r) -> (a -> r) -> Separated a -> r everythingOnSeparated r -> r -> r op a -> r k (Separated a hd [(SourceToken, a)] tl) = a -> [(SourceToken, a)] -> r go a hd [(SourceToken, a)] tl where go :: a -> [(SourceToken, a)] -> r go a a [] = a -> r k a a go a a ((SourceToken, a) b : [(SourceToken, a)] bs) = a -> r k a a r -> r -> r `op` a -> [(SourceToken, a)] -> r go (forall a b. (a, b) -> b snd (SourceToken, a) b) [(SourceToken, a)] bs