add type alias for mode instances
add inference (non-recursive)
add README