Я хотел бы знать, если это плохо, делать что-то вроде этого:
data Alignment = LeftAl | CenterAl | RightAl
type Delimiter = Char
type Width = Int
setW :: Width -> Alignment -> Delimiter -> String -> String
Скорее чем то вроде этого:
setW :: Int -> Char -> Char -> String -> String
Я знаю, что переделывание этих типов фактически ничего не делает, но занимает несколько строк в обмен на более понятный код. Однако, если я использую тип Delimiter
для нескольких функций, это будет гораздо понятнее для того, кто импортирует этот модуль или читает код позже.
Я относительно новичок в Haskell, поэтому я не знаю, что такое хорошая практика для такого рода вещей. Если это не очень хорошая идея, или есть что-то, что улучшит ясность, что предпочтительнее, что это будет?