  Side effects are a core part of practical programming. However, they are
often hard to reason about, particularly in a concurrent setting. We propose a
foundation for reasoning about concurrent side effects using sessions.
Primarily, we show that session types are expressive enough to encode an effect
system for stateful processes. This is formalised via an effect-preserving
encoding of a simple imperative language with an effect system into the
pi-calculus with session primitives and session types (into which we encode
effect specifications). This result goes towards showing a connection between
the expressivity of session types and effect systems. We briefly discuss how
the encoding could be extended and applied to reason about and control
concurrent side effects.
