string-compare.s 740 Bytes
showString = map (s) -> () [
    writeString ("\""); writeString (s); writeString ("\"")
];

compare = map (s1, s2, op; v) -> () [
    showString (s1); writeString (op); showString (s2);
    writeString (" <=> "); writeBool (v);
    writeString (".\n")
];

a, b: string;

readStrings = map () -> bool [
    writeString ("String 1: ");
    a := readString();
    ? [ a = "" -> ^ false
      |   *    -> writeString ("String 2: ");
		  b := readString();
		  ^ true ]
];

program = map () -> () [
    * [ readStrings() -> compare(a, b, " <  ",  a<b);
			 compare(a, b, " <= ", a<=b);
			 compare(a, b, " =  ",  a=b);
			 compare(a, b, " ~= ", a~=b);
			 compare(a, b, " >= ", a>=b);
			 compare(a, b, " >  ",  a>b);
			 writeString("\n") ]
]