Ещё немного и в хаскеле изобретут Dependency Injection
Не просто DI, а полноценный Spring или какой-нибудь Castle Windsor с резолвом на основе текстового конфига.
Мне кажется, можно попробовать соорудить что-то на основе синглтонов, чтобы в зависимости от нужного внешнего условия резолвился тот или иной тип, для которого уже резолвился бы инстанс тайпкласса с нужным алгоритмом.