--- /dev/null
+interface Lexeme where
+import Oberon_Id(Oberon_Id)
+import Oberon_Integer(Oberon_Integer)
+import Oberon_Real(Oberon_Real)
+import Oberon_String(Oberon_String)
+import Symbol(Symbol)
+show_lexeme :: Lexeme -> [Char] -> [Char]
+ {-# ARITY show_lexeme = 0 #-}
+data Lexeme = Symbol_Lexeme Symbol | Id_Lexeme Oberon_Id | Int_Lexeme Oberon_Integer | Real_Lexeme Oberon_Real | Long_Real_Lexeme Oberon_Real | String_Lexeme Oberon_String | Char_Lexeme Oberon_Integer | Error_Lexeme Char | EOF_Lexeme | Unterminated_String_Lexeme | Unterminated_Comment_Lexeme | Malformed_Hex_Integer | Malformed_Real_Number
+instance Eq Lexeme
+ {-# ARITY (==) = 2 #-}
+ {-# ARITY (/=) = 0 #-}
+instance Text Lexeme
+ {-# ARITY readsPrec = 0 #-}
+ {-# ARITY showsPrec = 2 #-}
+ {-# ARITY readList = 0 #-}
+ {-# ARITY showList = 0 #-}
+