Is there such thing as "sequential types"?
The seminal paper on this topic is Linear Types Can Change the World! by Phil Wadler.
Of course, with a title like that, you know it has to be a Wadler paper. It's a pun, the implication being that linear/uniqueness type system allows you to represent operations which mutate the world state.
You can use linear types today in languages such as Clean. See, for example, Aachen et al, High Level Specification of I/O in Functional Languages.
In logic languages, you can do the same thing with strong modes rather than strong types, such as in Mercury. (Full disclosure: I'm one of the original Mercury developers.) See Fergus Henderson's honours thesis, Strong Modes can Change the World!
EDIT
I think I may have misinterpreted the question, which I thought was about types for imperative code.
The answer to your question is &quot;yes, absolutely&quot;. There is a tradeoff between types and programs. At one end of the spectrum, you have a completely dynamic type system, where every program has the same type. At the other end, you have a hyper-static type system, where every type only has one program that is of that type, with the type essentially encoding the program.
In the middle ground, there are many programming languages whose type systems are Turing-complete, including Haskell, Java, TypeScript, and Rust.