Abstract. We present a programming language called Do which has an effect system. Do is motivated by Wadler’s extension of the computational lambda calculus. Do is specified by augmenting (the language of) the extension with a set of predefined effects and with provision for programmers to create their own application-specific effects. Do is accompanied by Dome (Do model extractor), a tool to extract models of Do programs for model-checking. Models are created with regard to a particular computational effect or set of effects. A key difference between our approach and previous approaches is that vertices in program graphs represent the effect behaviour of statements, rather than the statement itself.