basic type analysis framework