Initial implementation of struct-type contract generation.

Why cannot I export an unknown struct type for a unknown type and fail at later operations? Isn't that what `struct-type/sc` does currently?