Inductive empty_type : Type := .Definition withtype_of_NDfunspec fs := match fs with
  mk_funspec _ _ (rmaps.ConstType A) _ _ _ _ => A | _ => empty_type end.Definition withtype_of_funspec fs := match fs with
  mk_funspec _ _ A _ _ _ _ => A end.

Lemma subsume_funspec_trans: forall fs1 fs2 fs3, subsume_funspec fs1 fs2 -> subsume_funspec fs2 fs3 -> subsume_funspec fs1 fs3.