I like this. It remedies the most obvious representational flaw in functional languages -- at least compared to OO. Does it depend on R6RS? . . . I might consider a port to Chicken.<p>(There is an inconsistency, though: the typing of fields is the reverse of the typing of instances)