2014-06-16 5 views
0

Если я пытаюсь использовать следующую команду Hoogle (v4.2.33) для поиска функций, содержащей сигнатуру типа ByteString->[ByteString]:Hoogle запрос возвращение функции, которые не соответствуют сигнатуре

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 

Почему Hoogle возвратные функции с подписью ByteString -> ByteString и т.д., когда я указать тип подписи, чтобы быть ByteString->[ByteString]?

+4

Hoogle делает какое-то нечеткий матч. –

+1

Предположительно, потому что эти функции могут быть использованы для реализации функций типа вам нужно, и если вы действительно не хотите их, вы можете просто игнорировать их. –

ответ

2

Hoogle использует понятие "согласование approximate" типа, обобщающий тип и зачистки конструкторов найти близкие соответствия.

Смежные вопросы