X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=hints%2Fassignment_7_hint_2.mdwn;h=9c1079c3858e0ad4ba53b24fcf85ae08d58efb24;hp=02f3b158003f87c06944aee8ac302ac20e0c94d5;hb=0ffedd938c14e7d37e912259eaf632a4fec5ec42;hpb=1b40bc7e0915e247ecaa6ea9d583b26790c31a74 diff --git a/hints/assignment_7_hint_2.mdwn b/hints/assignment_7_hint_2.mdwn index 02f3b158..9c1079c3 100644 --- a/hints/assignment_7_hint_2.mdwn +++ b/hints/assignment_7_hint_2.mdwn @@ -20,9 +20,9 @@ Since `dpm`s are to be a monad, we have to define a unit and a bind. These are just modeled on the unit and bind for the state monad: - let unit_dpm (x : 'a) = fun (r, h) -> (x, r, h);; + let unit_dpm (value : 'a) : 'a dpm = fun (r, h) -> (value, r, h);; - let bind_dpm (u : 'a dpm) (f : 'a -> 'b dpm) = + let bind_dpm (u : 'a dpm) (f : 'a -> 'b dpm) : 'b dpm = fun (r, h) -> let (a, r', h') = u (r, h) in let u' = f a