Move signature copying to __copy__
Added domain and codomain checking in morphism