Now strings are supported as arguments.

This involved some ugly python string parsing trickery such as
using __repr__ on non-strings and __str__ on strings... ugly, indeed.