use of if instead of case over morphism types
support to Mono, Epi, Iso, Normal morphism types