@@ -1335,7 +1335,12 @@ checkPossible info fc tcgen fname lhs_in
13351335
13361336 checkRec (App f a) p@(P _ _ _) = checkRec f p
13371337 checkRec p@(P _ _ _) (App f a) = checkRec p f
1338− checkRec (App f a) (App f' a') = checkRec f f' && checkRec a a'
1338+ checkRec fa@(App _ _) fa'@(App _ _)
1339+ | (f, as) <- unApply fa,
1340+ (f', as') <- unApply fa'
1341+ = if (length as /= length as')
1342+ then checkRec f f'
1343+ else checkRec f f' && and (zipWith checkRec as as')
13391344 checkRec (P xt x _) (P yt y _) = x == y || ntRec xt yt
13401345 checkRec _ _ = False
13411346