Initial implementation of struct-type contract generation.

Yes, just as with `VectorTop`.