Допустим, мы имеем:Почему haskell вынуждает всегда вводить общие типы?
data Data a b c = Build (a,b,c) deriving Show
foo :: Data a b c -> Data a b c
foo d = d
main = print $ foo $ Build (1, 1, "a")
Есть ли способ избежать написания a b c
для каждого использования типа данных?
Использование типа, что-то вроде:
foo :: Data -> Data
foo d = d
На самом деле вы не * имеете *, чтобы писать сигнатуры типов вообще. Если вы их опустите, Haskell выведет их для вас. –
@WillemVanOnsem, я знаю об этом, скажем, кроме этого. Будет ли редактировать – Netwave