Я работаю над некоторым кодом на Haskell и хочу определить тип, который принимает два KnownNat
и приводит к наименьшему коэффициенту второго KnownNat
, который больше первого.
ДляНапример, с учетом чисел 13
и 100
результат будет 20
, поскольку 20
делит 100
чисто, и между 13
и 20
нет числа, которое делит 100
чисто.Другой пример приводится 96
и 10000
результат будет 100
.
Я хотел бы выразить это в Haskell, как-то использовать пакет typelits для его вычисления.,Но я не могу понять, как.
type a b = ...?
Любая помощь или указатели приветствуются!