  The operational behavior of control operators has been studied
comprehensively in the past few decades, but type systems of control operators
have not. There are distinct type systems for shift, control, and shift0
without any relationship between them, and there has not been a type system
that directly corresponds to control0. This paper remedies this situation by
giving a uniform type system for all the four control operators. Following
Danvy and Filinski's approach, we derive a monomorphic type system from the CPS
interpreter that defines the operational semantics of the four control
operators. By implementing the typed CPS interpreter in Agda, we show that the
CPS translation preserves types and that the calculus with all the four control
operators is terminating. Furthermore, we show the relationship between our
type system and the previous type systems for shift, control, and shift0.
