次のように、バイト文字列内の連続するすべてのタブを単一のタブに置き換える必要があります。
"___\t___\t\t___\t\t\t___"
になる
"___\t___\t___\t___"
やり方がわかりません。
30 分ほど考え抜いた後、最初に出現した二重タブを次のように置き換えることができました (これでさえ実際には間違っています。空の文字列にタブが追加されます)。
import qualified Pipes.ByteString as PB
import qualified Data.ByteString as B
removeConsecutiveTabs =
PB.break (== tab) . mapped %~ \p -> do
yield (B.singleton tab)
PB.dropWhile (== tab) p
ただし、連続するタブをすべて置き換える方法はまだわかりません。