Add tagged types to enforce existence of subprograms in separate packages/files