This is pretty cool. I don't know if it's a new paradigm (then again, it's hard to precisely define what a "paradigm" is exactly), but it does have aspects you can expand on further - I'd like to encourage you to do so. People were doing OO-like things before there were OO languages that had built-in support for certain aspects of the OO mental model; similarly I can imagine a future language auto-generating under the hood some of the things you explicitly code here (e.g. methods like
alter
, essentially an explicitly coded multiple dispatch mechanism), allowing for (perhaps) a nicer syntax.