complete type checking whitout recursive support
fix
improve some error message