We propose a generic imperative programming language STR that captures PTime computations, on both infinite inductive structures and families of finite structures. The approach, set up in [29] for primitive-recursive complexity, construes finite partial-functions as a universal canonical form of data, and uses structure components for loop variants. STR is obtained by the further refinement that assigns ranks to finite partial-functions, which regulate the interaction of loops, yielding programs that run in polynomial time.STR captures algorithms that have eluded ramified recurrence, and is promising as an artifact of Implicit Complexity which is malleable to static analysis implementations.