From c8fd5635d402bd3ae8073725257bef20e161256e Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 20 Mar 2015 11:52:11 -0400 Subject: [PATCH] double box --- topics/week7_introducing_monads.mdwn | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/topics/week7_introducing_monads.mdwn b/topics/week7_introducing_monads.mdwn index 4ce25641..60a36aad 100644 --- a/topics/week7_introducing_monads.mdwn +++ b/topics/week7_introducing_monads.mdwn @@ -83,10 +83,18 @@ 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 type as: +Note that the left-hand schema `P` is permitted to itself be a boxed +type. That is, if `α list` is our box type, and `P` is to boxed type +`int list`, we can write the boxed type that has `P` as its left-hand +side as int -> int list +If it's clear that we're uniformly talking about the same box type (in +this example, `α list`), we can equivalently write + +int -> int + Here are some examples of values of these Kleisli arrow types, where the box type is `α list`, and the Kleisli arrow types are int -> int (that is, `int -> int list`) or int -> bool:
\x. [x]
-- 
2.11.0