T8518.hs:14:18: error: • Couldn't match expected type ‘Maybe (F c)’ with actual type ‘F c’ • In the expression: rpt (4 :: Int) c z b In an equation for ‘callCont’: callCont c z b = rpt (4 :: Int) c z b where rpt 0 c' z' b' = fromJust (fst <$> (continue c' z' b')) rpt i c' z' b' = let ... in rpt (i - 1) c'' • Relevant bindings include b :: B c (bound at T8518.hs:14:14) z :: Z c (bound at T8518.hs:14:12) c :: c (bound at T8518.hs:14:10) callCont :: c -> Z c -> B c -> Maybe (F c) (bound at T8518.hs:14:1) T8518.hs:17:78: error: • Couldn't match expected type ‘F a’ with actual type ‘Z a -> B a -> F a’ • In the expression: rpt (i - 1) c'' In the expression: let c'' = fromJust (snd <$> (continue c' z' b')) in rpt (i - 1) c'' In an equation for ‘rpt’: rpt i c' z' b' = let c'' = fromJust (snd <$> (continue c' z' b')) in rpt (i - 1) c'' • Relevant bindings include c'' :: a (bound at T8518.hs:17:30) b' :: B a (bound at T8518.hs:17:21) z' :: Z a (bound at T8518.hs:17:18) c' :: a (bound at T8518.hs:17:15) rpt :: a1 -> a -> Z a -> B a -> F a (bound at T8518.hs:16:9)