implicit-state-passing