Section funfreemon_mor_def.
Variable f : Map A B.
Fixpoint Dist_fun (l : Tlist A) : Tlist B :=
match l with
| Empty => Empty B
| Concat1 a l1 => Concat1 (f a) (Dist_fun l1)
end.
Canonical Structure Dist_map := Build_Map Dist_map_law.
Canonical Structure FunFreeMon_mor :=
Build_MonMor Dist_map_unit_law Dist_map_op_law.
End funfreemon_mor_def.
Canonical Structure FunFreeMon_map := Build_Map FunFreeMon_map_law.
End funfreemon_map_def.

Lemma FunFreeMon_fcomp_law : Fcomp_law FunFreeMon_map.