inline chg/upd functions of product types
remove IORef from type check
make State better inline-able