def abstract_relational_comparison(self, other,<EOL>self_first=True):  
px = to_primitive(self, '<STR_LIT>')<EOL>py = to_primitive(other, '<STR_LIT>')<EOL>if not self_first:  <EOL><INDENT>px, py = py, px<EOL><DEDENT>if not (Type(px) == '<STR_LIT>' and Type(py) == '<STR_LIT>'):<EOL><INDENT>px, py = to_number(px), to_number(py)<EOL>if is_nan(px) or is_nan(py):<EOL><INDENT>return None  <EOL><DEDENT>return px < py  <EOL><DEDENT>else:<EOL><INDENT>return px < py<EOL><DEDENT>
self<other if self_first else other<self.
       Returns the result of the question: is self smaller than other?
       in case self_first is false it returns the answer of:
                                           is other smaller than self.
       result is PyJs type: bool or undefined