introduced the notion of a 'mk-struct' with racket generics.  also cleanup