interface Lexer_Buffer where add :: Char -> Lexer_Buffer -> Lexer_Buffer {-# ARITY add = 2 #-} empty :: Lexer_Buffer {-# ARITY empty = 0 #-} flush :: Lexer_Buffer -> Lexer_Buffer {-# ARITY flush = 1 #-} len :: Lexer_Buffer -> Int {-# ARITY len = 1 #-} to_string :: Lexer_Buffer -> [Char] {-# ARITY to_string = 1 #-} data Lexer_Buffer