WIP - start new implementation in Types2.hs