I fully agree with your assessment that the API compromise did not work out at all and left us with bad usability.
After discussing this with a few other users I went forward and made all the distributions immutable in the distribution parameters in v3.0.0-beta03. With this change your example will no longer compile. I came to the conclusion that the advantages of the immutable approach prevail. There are a few cases where the mutability was convenient, e.g. where the distribution instance also served as application state - but I believe that even in these cases the change is mostly for the better, leading to a cleaner design and separation.
Thanks again for pointing this out!
Christoph
After discussing this with a few other users I went forward and made all the distributions immutable in the distribution parameters in v3.0.0-beta03. With this change your example will no longer compile. I came to the conclusion that the advantages of the immutable approach prevail. There are a few cases where the mutability was convenient, e.g. where the distribution instance also served as application state - but I believe that even in these cases the change is mostly for the better, leading to a cleaner design and separation.
Thanks again for pointing this out!
Christoph