[00:02:02] Because all we're doing is sending immunity data into it like an HTTP post or a get and there were receiving immutable data back from it, which we then decoded into our application. And at no point, do we ever have to worry about sacrificing any of these guarantees, any function period, anything like that?
[00:03:19] It's going to actually result in a command with a lower case M. So we're gonna go on a brief tangent and explain what that means when you have a command with a type variable that is unbound which is to say a command where the type variable has a lower case m, but there's no message anywhere else in this function.
[00:03:37] Up to this point, every time we've seen a type variable, there have been two of them. All right, we had list out reverse had list elem to list elem. This is just command message, lower case m, but there is no other message anywhere. It's like not corresponding to anything.
[00:03:51] What does that actually mean? Okay, so at this point, all of our type variables have come in pairs, but list.length is one that we sort of intuitively know how it works. But it doesn't come in a pair, right? List.length says, you can give me a list of anything and I can tell you what the result is, it's an Int.
[00:04:12] No matter what type of list you give me. You can give me a list of strings, a list of integers, a list of floats, anything and I'll tell you what the length is. So kind of intuitively we can figure out, well, all right, that makes sense. I guess it's saying, it's a type variable, because what it means is.
[00:04:26] This is flexible. We can give it any list we want and it will be able to give us back an ent.