Initial implementation of struct-type contract generation.

I'm not sure why this is not just a structural combinator. Is it because you will need to examine the struct-type contract eventually?