struct: Add an interface and a bunch of guards.
struct: Enable pattern matching.

Whoo! And now to sleep.