Hoogle-запрос, возвращающий функции, которые не соответствуют сигнатуре типа
Если я попытаюсь использовать следующую команду Hoogle (v4.2.33) для поиска функций, содержащих сигнатуру типа ByteString->[ByteString]
:
hoogle --count 40 "ByteString->[ByteString]"
затем к концу вывода я получаю:
Data.ByteString.Char8 transpose :: [ByteString] -> [ByteString]
Data.ByteString.Lazy transpose :: [ByteString] -> [ByteString]
Data.ByteString.Lazy.Char8 transpose :: [ByteString] -> [ByteString]
Codec.Compression.Zlib.Raw compress :: ByteString -> ByteString
Codec.Compression.GZip compress :: ByteString -> ByteString
Почему Google возвращает функции с подписью ByteString -> ByteString
и т.д., когда я указываю тип подписи ByteString->[ByteString]
?
1 ответ
Решение
Hoogle использует концепцию " приблизительного" сопоставления типов, обобщающие типы и конструкторы зачистки для поиска близких совпадений.