в 64-битной системе Int64 должно быть в порядке, хотя я точно не знаю.
Что еще более важно, если вы выполняете шифрование или генерацию случайных чисел, вы ДОЛЖНЫ использовать тип данных, который, по словам алгоритма, будет использоваться, также будьте осторожны с подписью. Если вы этого не сделаете, у вас будут неправильные результаты, которые могут означать, что ваша криптография небезопасна или ваш генератор случайных чисел не является действительно случайным (ГСЧ сложны, и многие выглядят случайными, но не).
Для любого другого типа работы используйте Integer везде, где вы можете, или даже лучше, сделайте вашу программу полиморфной, используя тип-класс Integral. Затем, если вы думаете, что ваша программа медленнее, чем должна быть, профилируйте ее, чтобы определить, где вы должны сосредоточиться, когда вы пытаетесь ускорить ее. если вы используете класс типов Integral, легко перейти с Integer на Int. Haskell должен быть достаточно умен, чтобы специализировать (большую часть) код, который использует полиморфизм, чтобы избежать накладных расходов.