module HaskellWorks.Data.Json.Internal.Doc ( hEncloseSep ) where import Text.PrettyPrint.ANSI.Leijen hEncloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc hEncloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc hEncloseSep Doc l Doc r Doc s [Doc] ds = case [Doc] ds of [] -> Doc l Doc -> Doc -> Doc forall a. Semigroup a => a -> a -> a <> Doc r [Doc d] -> Doc l Doc -> Doc -> Doc forall a. Semigroup a => a -> a -> a <> Doc d Doc -> Doc -> Doc forall a. Semigroup a => a -> a -> a <> Doc r [Doc] _ -> [Doc] -> Doc hcat ((Doc -> Doc -> Doc) -> [Doc] -> [Doc] -> [Doc] forall a b c. (a -> b -> c) -> [a] -> [b] -> [c] zipWith Doc -> Doc -> Doc forall a. Semigroup a => a -> a -> a (<>) (Doc l Doc -> [Doc] -> [Doc] forall a. a -> [a] -> [a] : Doc -> [Doc] forall a. a -> [a] repeat Doc s) [Doc] ds) Doc -> Doc -> Doc forall a. Semigroup a => a -> a -> a <> Doc r