  The $\pi$-calculus is used as a model for programming languages. Its contexts
exhibit arbitrary concurrency, making them very discriminating. This may
prevent validating desirable behavioural equivalences in cases when more
disciplined contexts are expected. In this paper we focus on two such common
disciplines: sequentiality, meaning that at any time there is a single thread
of computation, and well-bracketing, meaning that calls to external services
obey a stack-like discipline. We formalise the disciplines by means of type
systems. The main focus of the paper is on studying the consequence of the
disciplines on behavioural equivalence. We define and study labelled
bisimilarities for sequentiality and well-bracketing. These relations are
coarser than ordinary bisimilarity. We prove that they are sound for the
respective (contextual) barbed equivalence, and also complete under a certain
technical condition. We show the usefulness of our techniques on a number of
examples, that have mainly to do with the representation of functions and
store.
