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_op_law : MonOp_law UA_FM_diese_map.
Canonical Structure UA_FM_diese :=
Build_MonMor UA_FM_diese_unit_law UA_FM_diese_op_law.