
Hallo! I have this code: ---------------------------------------- q1 :: EName -> [ApprenticeInfo] q1 c = [apprenticeInfo n | n <- allApprentices, member ((sq4 c) (firstOf5(n))) == True] sq4 :: ESurname -> [IDB] sq4 c = (sq3 (sq1 (c))) firstOf5 :: (a,b,c,d,e) -> a firstOf5 (n,_,_,_,_) = n member :: [IDB] -> IDB -> Bool member [] y = False member(x:xs) y = (x==y) || member xs y ---------------------------------------- sq4 works correctly and returns [IDB] Unfortunately member ((sq4 c) (firstOf5(n))) gives this error: Type error in application *** Expression : sq4 c (firstOf5 n) *** Term : sq4 *** Type : ESurname -> [IDB] *** Does not match : a -> b -> c As far as I see it I'm not writing the correct syntax for a function of 2 functions. I have g(x): Esurname->[IDB] h(y): (IDB,_,_,_,_) -> IDB f(x,y): ([IDB], IDB) -> Bool I want to obtain f(g(x), h(y)) and I obtain something else. Where am I wrong? Thanks