typeDefinition :: TopLevel -> Printer ()
typeDefinition (TLEnum{ enum_name = ename, enum_labels = labels })
 = do sayln' $ "enum " ++ ename ++ " {"
      mapM_ (\EnumLabel{ label_name = lname, label_val = lval }
              -> sayln' $ "  " ++ lname ++ " = " ++ show lval ++ ","
            ) labels
      sayln' $ "};"
typeDefinition :: TopLevel -> Printer ()
typeDefinition (TLEnum{ enum_name = ename, enum_labels = labels })
 = do sayln' $ "enum " ++ ename ++ " {"
      mapM_ (\EnumLabel{ label_name = lname, label_val = lval }
              -> sayln' $ "  " ++ lname ++ " = " ++ show lval ++ ","
            ) labels
      sayln' $ "};"
typeDefinition (TLEnum{ enum_name = ename, enum_labels = labels })
 = do sayln' $ "enum " ++ ename ++ " {"
      mapM_ (\EnumLabel{ label_name = lname, label_val = lval }
              -> sayln' $ "  " ++ lname ++ " = " ++ show lval ++ ","
            ) labels
      sayln' $ "};"