let pretty fmt m =
    match m with
    | Top (t, a) ->
        Format.fprintf fmt "{{ mix of %a. Origin: %a}}"
          Top_Param.pretty t
          Origin.pretty a
    | Map m ->
        let print_binding k v =
          Format.fprintf fmt "@ %a -> %a ;" K.pretty k V.pretty v
        in
        Format.fprintf fmt "{{" ;
        (M.iter print_binding) m;
        Format.fprintf fmt "}}"