basic functional is-inference
add basic support of datatypes