问题
I'm trying to understand if there's a fundamental reason for why Hoogle and Hayoo aren't matching, for instance
(b -> c) -> (b' -> c') -> (b, b') -> (c, c')
to
a b c -> a b' c' -> a (b, b') (c, c')
which happens to be the type of Control.Arrow.***:
(***) :: a b c -> a b' c' -> a (b, b') (c, c')
— is this likely just something that's as-of-yet unimplemented, or is there something fundamental that is preventing this sort of type based search from ever being implemented?
回答1:
With Hoogle, it seems to be a consequence of how ->
is handled. Issue #64 in the GitHub tracker, which is very similar to what we are discussing here, includes this comment by Neil Mitchell:
Currently I quickly split out the result type from the arguments. I guess one approach would be to find instances for
->
and pregenerate a version with->
substituted in.
来源:https://stackoverflow.com/questions/33234878/hayoo-hoogle-not-matching-monomorphic-less-polymorphic-signatures-with-polymorph