Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not quite. It's equivalent to either

    contains :: (NameClass, QName) -> Bool
or

    contains :: NameClass -> (QName -> Bool)
In other words, you can treat it as a function taking two arguments, or one function taking one argument and returning another function.


It is equivalent to the second, not the first. The first is a completely distinct type -- though you can certainly write a function with that type, given the original function, by uncurrying it.


FWIW, I think the person you are responding to is using the non-Haskell requested mental syntax used by the person who asked the original question, in order so they better understand the semantics (even if at a cost of confusing them for later development in Haskell).


Yup. They're distinct types, but mentally they are the same (and the standard library has functions to convert between the two forms).




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: