author | wenzelm |
Mon, 12 Nov 2018 15:14:12 +0100 | |
changeset 69289 | bf6937af7fe8 |
parent 69280 | e1d01b351724 |
permissions | -rw-r--r-- |
{- generated by Isabelle -} {- Title: Tools/Haskell/Buffer.hs Author: Makarius LICENSE: BSD 3-clause (Isabelle) Efficient text buffers. See also "$ISABELLE_HOME/src/Pure/General/buffer.ML". -} module Isabelle.Buffer (T, empty, add, content) where newtype T = Buffer [String] empty :: T empty = Buffer [] add :: String -> T -> T add "" buf = buf add x (Buffer xs) = Buffer (x : xs) content :: T -> String content (Buffer xs) = concat (reverse xs)