-- |> joinWith ":" ["ab", "c", "def"]
-- > ==> "ab:c:def"
-joinWith ∷ Ascii → [Ascii] → AsciiBuilder
+joinWith ∷ Ascii → [AsciiBuilder] → AsciiBuilder
{-# INLINEABLE joinWith #-}
joinWith sep = flip go (∅)
where
- go ∷ [Ascii] → A.AsciiBuilder → A.AsciiBuilder
+ go ∷ [AsciiBuilder] → AsciiBuilder → AsciiBuilder
{-# INLINE go #-}
go [] ab = ab
- go (x:[]) ab = ab ⊕ A.toAsciiBuilder x
- go (x:xs) ab = go xs ( ab ⊕
- A.toAsciiBuilder sep ⊕
- A.toAsciiBuilder x )
+ go (x:[]) ab = ab ⊕ x
+ go (x:xs) ab = go xs (ab ⊕ A.toAsciiBuilder sep ⊕ x)
-- |> quoteStr "abc"
-- > ==> "\"abc\""