If we do:
p = Presentation("abc")
p.rules = ["aaaa"]
p.rules[0] = "bbb"
p.rules
["aaaa"]
I think either we should make p.rules assignable (not sure if this is feasible) or it should throw an exception, silently failing like this caused me some confusion.