type { { \2 *, \4 ** }, { \2 *, \4 ** } } implementation