(* A slight shortening of bug 6078 *)
(* This bug exposed a different behavior of unshelve_unifiable depending on which projection is found in the unification heuristics *)
Inductive type := Arrow (_ _ : flat_type).
Definition interp_type (t : type)
:= interp_flat_type (match t with Arrow s d => s end)
-> interp_flat_type (match t with Arrow s d => d end).

Axiom Expr : type -> Type.
Axiom Interp : forall {t : type}, Expr t -> interp_type t.
Axiom Wf : forall {t}, Expr t -> Prop.
Axiom a : forall f, interp_flat_type f.