Haskell не поддерживает перегрузку в стиле C ++ (хорошо, это sortof делает с классами типов, но мы не используем их одинаково). И да, есть некоторые драконы, связанные с его добавлением, в основном связанные с выводом типа (становится экспоненциальным или неразрешимым или что-то в этом роде). Тем не менее, видеть такой «удобный» код довольно редко в Haskell. Какой это, Int
или Double
? Поскольку ваш метод Int
делегируется методу Double
, я предполагаю, что Double
является "правильным". Просто используйте это. Из-за буквальной перегрузки вы все равно можете назвать это как:
findVal whatever 42
И 42
будет рассматриваться как Double
. Единственный случай, когда это происходит, - если вы получили что-то, что является по существу и Int
где-то, и вам нужно передать это в качестве аргумента. Затем используйте fromIntegral
. Но если вы будете стремиться к тому, чтобы ваш код везде использовал «правильный» тип, этот случай будет необычным (и когда вам придется конвертировать, стоит обратить на это внимание).