first (partly?) working version of type unification with subtype inclusion