added right associativity, ':' cons operator,