Подтвердить что ты не робот

Как правильно оптимизировать функции MArray для скорости?

Я работаю над сортировочной библиотекой для MArrays. Скорость важна, поэтому я хочу как можно больше ее оптимизировать.

В настоящее время я просто INLINE выполняет функции сортировки. Это ускоряет код более чем в 10 раз по сравнению с неоптимизированным кодом. Однако это может легко взорвать размер кода, если функции используются в нескольких местах и ​​замедляет компиляцию.

Единственная альтернатива, по-видимому, СПЕЦИАЛИЗИРУЕТ функции для всех существующих экземпляров MArray. Это также увеличивает полученный код, но только постоянным фактором, который не зависит от того, сколько раз функции используются. Вопрос в том, возможно ли появление новых экземпляров MArray? Или MArray настолько особенный и связан с внутренними компонентами Haskell, чтобы я мог быть уверен, что никакие новые экземпляры не могут быть определены каким-либо другим модулем?

4b9b3361