I think the following contract constructors would be useful. I'm not sure
if they'd be hard/impossible.
;; I imagine (promiseof a) should be similar to (-> a)
(promiseof contract) ; ho
;; similar to vector/p
(struct/p struct-type flat-contract ...) ; flat
;; similar to immutable-vectorof
(immutable-structof struct-type contract ...) ; ho
Dave