John Napier

Results 20 comments of John Napier

Apparently `CompletableFuture.allOf` behaves the same way: ```java CompletableFuture.allOf(CompletableFuture.supplyAsync(() -> { throw new IllegalStateException("kaboom"); }), CompletableFuture.supplyAsync(() -> { LockSupport.park(); return null; })).join(); // blocks forever, never throws ```

There's certainly a good reason for it to wait forever (and that's currently what would happen), but there's no reason that the operational semantics couldn't be specified by the consumer...

The similarities to me seem to end with the idea that they'd both be inductively defined. I have extreme contempt for `Const Void` in any type signature, and the utility...

I don't implicitly find either `Inject` or `Project` to be hateful concepts, so I'm certainly open to them.

Tracking on the [mvar](https://github.com/palatable/lambda/tree/mvar) branch.

@7h3kk1d wants it, @7h3kk1d gets it.

Merged in on [mvar](https://github.com/palatable/lambda/tree/mvar), further work will continue there.

Probably worth offering the same for `S` and `T`

This should be attempted again when addressing #15

Apparently `HListLens#3-HListLens8` are completely out of the equation as well, since proving the lens laws just for _3 blows up the javac stack under ~1G and then takes God knows...