My main concern is predictability. Imagine that I define a type Foo and start playing around with it - define some functions that work on foot, perhaps one or two types that hold foos, and manipulate a bunch of Foo instances.
Then, I redefine the Foo type - say, I add a field. Which of the other things that I have defined are still valid? If I understand the motivation for this feature correctly, it's to make exploratory programming easier. However, I think it would actually make it a lot more difficult - it would basically give you a bazooka so heavy that the only thing you can reasonably aim at is your own foot... //T
