@kevinmost I implemented it on my side as I need it in my project, and as in the regular lazy, the initializer is called on the first get. For the mutable version, the initializer is dropped if set happens before, so in your example,
setValue
on `foo`'s delegate, which drops the non executed intializer and sets to the passed value, which is 2 and this is what will be printed.