I've had good luck with prismatic schema https://github.com/Prismatic/schema, which seems to be along a similar direction. It's fairly low commitment and can lead to big gains fairly quickly. I assume this would be similar.
(def Customer {:customer-id s/Int, :address-id s/Int}
(def ProcessedCustomer (merge Customer {:external-id s/Int}))