let map_table ?style ?(attrs = []) ?tr_style ?(tr_attrs = []) ?td_style ?(td_attrs = []) f t =
    let m = table ?style ~attrs:attrs [] in
      set_attr_opt m "style" style ;
      for y = 0 to Array.length t - 1 do
        let tr = tr ?style:tr_style ~attrs:tr_attrs [] in
          for x = 0 to Array.length t.(y) - 1 do
            let td = td ?style:td_style ~attrs:td_attrs [f y x t.(y).(x)]in
              Node.append tr td ;
          done ;
          Node.append m tr ;
      done ;
      m