typed morphism