Index: pyyaml/branches/working-on-emitter/lib/yaml/events.py
===================================================================
--- pyyaml/branches/working-on-emitter/lib/yaml/events.py	(revision 121)
+++ pyyaml/branches/working-on-emitter/lib/yaml/events.py	(revision 122)
@@ -1,11 +1,10 @@
 
 class Event:
-    def __init__(self, start_mark, end_mark):
+    def __init__(self, start_mark=None, end_mark=None):
         self.start_mark = start_mark
         self.end_mark = end_mark
     def __repr__(self):
-        attributes = [key for key in self.__dict__
-                if not key.endswith('_mark')]
-        attributes.sort()
+        attributes = [key for key in ['anchor', 'tag', 'value']
+                if hasattr(self, key)]
         arguments = ', '.join(['%s=%r' % (key, getattr(self, key))
                 for key in attributes])
@@ -13,5 +12,5 @@
 
 class NodeEvent(Event):
-    def __init__(self, anchor, start_mark, end_mark):
+    def __init__(self, anchor, start_mark=None, end_mark=None):
         self.anchor = anchor
         self.start_mark = start_mark
@@ -22,5 +21,5 @@
 
 class ScalarEvent(NodeEvent):
-    def __init__(self, anchor, tag, value, start_mark, end_mark):
+    def __init__(self, anchor, tag, value, start_mark=None, end_mark=None):
         self.anchor = anchor
         self.tag = tag
@@ -30,5 +29,5 @@
 
 class CollectionEvent(NodeEvent):
-    def __init__(self, anchor, tag, start_mark, end_mark):
+    def __init__(self, anchor, tag, start_mark=None, end_mark=None):
         self.anchor = anchor
         self.tag = tag
