I am looking at signatures for Arrow and Composable classes and I cannot understand some of them. Could you please explain me the following:
Let's take for example the following:
class FunAble h => FunDble h where
resultFun :: (h b -> h b') -> (h (a->b) -> h (a->b'))
class FunAble h where
secondFun :: (h b -> h b') -> (h (a,b) -> h (a,b')) -- for 'second'
in the signatures:
resultFun :: (h b -> h b') -> (h (a->b) -> h (a->b'))
secondFun :: (h b -> h b') -> (h (a,b) -> h (a,b'))
if (h b -> h b') is the input of these functions where does 'a' comes from in the output?
Thanks,