Notation "[ 'eta' f ]" := (fun x => f x) : function_scope.Notation "'fun' => E" := (fun _ => E) : function_scope.Notation id := (fun x => x).Notation "@ 'id' T" := (fun x : T => x) (only parsing) : function_scope.Definition idfun T x : T := x.Definition phant_id T1 T2 v1 v2 := phantom T1 v1 -> phantom T2 v2.

Lemma oapp_comp x : oapp (g \o f) x =1 (@oapp _ _)^~ x g \o omap f.