<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>"Square root of negative one" doesn't make a lot of sense if you
ignore the context of complex arithmetic. And it appears to make
even less sense that this expression should have several different
solutions. Yet quaternions are used today to describe the rotation
of robots.</p>
<p>In other words: Robots – more than meets the i! Robots are cool.
Don't hate on robots. Don't be uncool.</p>
<p>An analog is true for <i>Traversable</i> and <i>Foldable</i>.
Part of the missing context here is that you can write generic
functions and later plug in things like the 1-tuple (<i>Identity</i>)
and get cool things. Just look at lenses.</p>
<p>What the instances in question really show is that some
operations are transparent in relation to type-level products
(i.e. tuples). A different place that shows the same are functions
like "first" and "second" that you'll find in the context of
profunctors, categories, and arrows. There's more than meets the
eye here, and part of the reason you don't get to benefit a lot
from it is that that's still an active area of research. From my
own gut feeling it may well be where part of the future of
programming lies. Which, in my eyes, is pretty cool.</p>
<p>But then I'm just a random type still in the process of folding
Haskell theory through my Identity.</p>
<p>Cheers,<br>
MarLinn</p>
</body>
</html>