Abstract
There are two approaches to analysis of functional programs: abstract interpretation and type inference systems. A remarkable work of strictness analysis in the latter approach is an algorithm using a special kind of type, called a lazy type. However, this algorithm is defined as an abstract machine, and it is not so easy to analyze the algorithm. This paper defines a theoretical framework of lazy types, and proposes a new algorithm of strictness analysis on the basis of lazy types. We also examine the properties of the algorithm including correctness and termination. Moreover we show that our algorithm is convenient to implementation with pattern matching in functional programming languages.