try constraint type checker
try constraint type checker
generalize root for different typing relations
constraint-based type checking works except for gensym