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.

Lemma UA_FM_diese_map_law : Map_law UA_FM_diese_fun.
Canonical Structure UA_FM_diese_map := Build_Map UA_FM_diese_map_law.