<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>
<div>
<div>Hi haskellers, </div>
</div>
</div>
<div><br>
</div>
<div>I am trying to understand why I get the following error in learning applicative style.</div>
<div><br>
</div>
<div>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
Prelude> let estimates = [5,5,8,8,2,1,5,2]</p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
Prelude> (/) <$> Just $ foldl (+) 0 estimates <*> Just . fromIntegral $ length estimates</p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0); min-height: 16px;">
<br>
</p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
<interactive>:54:1:</p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
    Non type-variable argument in the constraint: Fractional (Maybe r)</p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
    (Use FlexibleContexts to permit this)</p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
    When checking that ‘it’ has the inferred type</p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
      it :: forall a r.</p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
            (Fractional (Maybe r), Num a, Num (Int -> Maybe a -> r)) =></p>
<p style="margin: 0px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">
            Maybe r -> Maybe r</p>
</div>
<div><br>
</div>
<div>All the parts work individually. If use let and assign the parts to x and y it also works.</div>
<div><br>
</div>
<div>E.g. This works</div>
<div>let x = Just $ foldl (+) estimates</div>
<div>Let y = Just . fromIntegral $ length estimates</div>
<div>(/) <$> x <*> y</div>
<div><br>
</div>
<div>I clearly do not understand exactly how these work. :-)</div>
<div><br>
</div>
<div>Thanks for any help,</div>
<div>-wes</div>
</body>
</html>