:: ([item>][>field]) ( tuple hash quot-pair -- quot1 quot2 ) quot-pair first2 :> ( key setter ) key [ hash at ] compose setter [ tuple drop ] compose ; : hash-item>field ( tuple hash pair -- tuple ) [ dup ] 2dip ([item>][>field]) [ (( -- obj )) call-effect ] dip '[ _ (( obj -- )) call-effect ] when* ;