finishing touches

changed the handling of a and b being of similar but uncomparable types
to avoid errors being thrown in vain.
and added rune types so ppl can use 'a'=="a" and {'a','b'}=="ab" and so
on
although it became alot of code for such a utility function i think i
got ir right now.