@Test public void twoEmpty() throws Exception { DMap.Two<Integer, String, Long, Date> dmap = DMap.<Integer, String, Long, Date>twoEmpty(); dmap =dmap.put1(10,"hello"); dmap = dmap.put2(10l,new Date(10)); System.out.println(dmap); assertThat(dmap.get(left(10)),equalTo(LazyEither3.left1("hello"))); assertThat(dmap.get(right(10l)),equalTo(LazyEither3.left2(new Date(10)))); }