typed morphism
typed morphism with class