{-# LANGUAGE ViewPatterns #-} module Text.HTML.TagStream.Utils where import Data.Monoid (Monoid(..)) import Text.HTML.TagStream.Types splitAccum :: Monoid s => [Token' s] -> (s, [Token' s]) splitAccum :: forall s. Monoid s => [Token' s] -> (s, [Token' s]) splitAccum [] = (s forall a. Monoid a => a mempty, []) splitAccum ([Token' s] -> [Token' s] forall a. [a] -> [a] reverse -> (Incomplete s s : [Token' s] xs)) = (s s, [Token' s] -> [Token' s] forall a. [a] -> [a] reverse [Token' s] xs) splitAccum [Token' s] tokens = (s forall a. Monoid a => a mempty, [Token' s] tokens)