subMode -> submode
add constraints
make MType from Type
fix comment
remove tracing
add constraint-based inference