scalaz/scalaz — pull request #168 by S11001001 (2012-10-16 19:56:27+00:00)
Title: Bind for Name and Need are too strict

I also included ap for both to reduce delay tree sizes.

```scala
// Entering paste mode (ctrl-D to finish)

val x = Need{println("hi"); 42}
val xx = x flatMap (a => Need{println("hi again"); a + 3})
^D
// Exiting paste mode, now interpreting.

// "hi" prints here without this change
x: scalaz.Need[Int] = scalaz.Need$$anon$4@42f52f61
xx: scalaz.Need[Int] = scalaz.Need$$anon$4@6ef9ab9e

scala> xx.value
hi
hi again
res1: Int = 45
```