X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=topics%2Fweek7_introducing_monads.mdwn;h=81ccafb2ccd3729ab970574b98cc3b6a8af8468a;hp=b04f517e7b0deb57c270604befb9690b5e20b54d;hb=a914ff0ed48112619a514100394a5f2a0fcbc132;hpb=a6c01f0671ccbed18f9938799f7b50eeb5bc4c50 diff --git a/topics/week7_introducing_monads.mdwn b/topics/week7_introducing_monads.mdwn index b04f517e..81ccafb2 100644 --- a/topics/week7_introducing_monads.mdwn +++ b/topics/week7_introducing_monads.mdwn @@ -84,7 +84,7 @@ For instance, the following are Kleisli arrows: In the first, `P` has become `int` and `Q` has become `bool`. (The boxed type Q is bool). Note that the left-hand schema `P` is permitted to itself be a boxed type. That is, where -if `α list` is our box type, we can write the second arrow as +if `α list` is our box type, we can write the second type as: int -> int list @@ -107,11 +107,11 @@ Here are the types of our crucial functions, together with our pronunciation, an <=< or mcomp : (Q -> R) -> (P -> Q) -> (P -> R) ->=> or mpmoc (flip mcomp): (P -> Q) -> (Q -> R) -> (P -> R) +>=> (flip mcomp, should we call it mpmoc?): (P -> Q) -> (Q -> R) -> (P -> R) >>= or mbind : (Q) -> (Q -> R) -> (R) -=<< or mdnib (flip mbind) (Q) -> (Q -> R) -> (R) +=<< (flip mbind, should we call it mdnib?) (Q) -> (Q -> R) -> (R) join: P -> P