functor (L:Level-> functor (M:Media-> 
  struct
    include L
    include M
    let print ?(level=1) s =
      if level <= L.level() then
        M.output level s
      else
        ()
  end