Section ua_fm_diese_def.
Variables (B : Monoid) (f : Map A (FunForget B)).
Fixpoint UA_FM_diese_fun (l : FreeMonoid A) : B :=
match l with
| Empty => Munit B
| Concat1 a m => f a +_M UA_FM_diese_fun m
end.
Canonical Structure UA_FM_diese_map := Build_Map UA_FM_diese_map_law.
Canonical Structure UA_FM_diese :=
Build_MonMor UA_FM_diese_unit_law UA_FM_diese_op_law.
End ua_fm_diese_def.

Lemma UA_FM_law2 : UA_law2 UA_FM_mor UA_FM_diese.