 As I record this video, I respectfully acknowledge that I'm standing on the unceded traditional territory of the Comox First Nation. And this video is about how jig represents literal types. So let's take a look at a few. So there's a variable that I've named A, and the value of it is A. So let's take a look and see how jig shows this. So again, I've loaded jig, so it's ready to go. I've set up my user keys, and by pressing the user key, I get the jig representation. And here, it's actually a two-stage thing that you're seeing with literals. And the one, it's the outside, it tells me it's a literal, and its shape is an atom. That's useful. But if I go and hover over the center part, it also gives me the UTF-8 code, which is 97. And in this case, the path 0, which tells me it's the 0th item in the string, which because we're using index 0, the first point in the string is going to be 0. So that's why paths will be 0. We'll see this a bit clearer as we go on. So that's just looking at A. So let's take a look at B, another one that I declared. And it looks pretty straightforward. Again, go to the outside. It tells me it's a literal, its shape is 4, which is really useful to know. And if I go in the center, I'm back to UTF-8, 97, and the path is 0. So that's great. But as I move along here, you can see the path increments. So it tells me how many literals I am along in the string. So it's really kind of useful that way, especially if you get really long strings. So and I'll just do the return. So that's what B would show. So let's see what C will show. OK, so that's pretty straightforward. It looks like it's an array. Let's take a look and see what it tells me there. So again, here it is, just like I thought. Go to the outside, click on it. It's telling me it's a literal, its shape is 2, 3. I can see that, but I used to have it confirmed. Now though, when I look at the paths, I've got 0, 0, because it's the first item in the first row, and we're talking about index 0. If I go down to here, it's the second row, 1, and then it's 0, the 0th item of the second row. And working my way along, I get to 1, 2, and 1, 1 is here. So it's actually showing me in this array what the different positions are, which is kind of a neat thing. It can be useful when you're dealing with a bigger arrays. OK, this is interesting here. So you can do emojis. And the fact is, emojis are unicode, but they can also be literals. And the reason they can be literals is if you look and see how this is wider, well, to start with, I'm just going to confirm it's a literal, and it is a literal, and its shape is 4. So that's interesting. It's a single character, but its shape is 4. So the reason for that is the UTF-8 encoding. Click on this, and its encoding is 240, 159, 152, 128. So it's taking the unicode and it's converting it over to UTF-8, and that's what it gives. It takes 4 integers to do it, and because it takes 4 integers to do it, when you put it into J, into the J display, it's going to take, it's going to effectively be 4 wide. In spite of that, I've set this up so the path is still 0. There's only one character, and it's the first character. So that's the way I've set that up. So let's take a look at the next little delight I have prepared. And that's this one. So this is a different array. It's got the ABCD across the top. And then in the next row, it's got the emoji. So let's take a look at this, and you can see how that's working. It's working this way. The ABCD across the top, well, first let's verify it's literal. It is literal. You can also tell it's literal, actually. I should have mentioned this right off the bat. You can tell it's literal because it's green with a yellow outline. And that's how I've determined that that's how literals will look. So they're distinctive, and also their shapes start to show you sort of what the underlying information is. So for instance, if I go here, I've got path 0, 3, and the UTF-8 is 100. That's what the literal D is. However, if I go down here, I've got the path is 1, 0, because it's the next row down, and then it's the 0th item of that row. And then the UTF-8 is 240, 159, 152, 128. So that's pretty straightforward. But Jig really shows you how that works. And again, if you click on this, it's a literal of shape 24, even though when you're looking at it, you're seeing four characters and one character. This one character is going to be four UTF-8 integers. Now, this is where we start to run into problems. And it's what the problem is. It's not really a problem, but what the problem would be is that if you start messing around with Unicode and start changing shapes of arrays that include Unicode, you're essentially changing shapes of arrays that have integers. And because of that, you have certain combination of integers, and they're not going to display at all. And we're staying with literal, as we'd expect. So it's literal shape 23. But now the problem is each one of these is going to be a single UTF-8 number, including D. But then I get to here, and it's going to just be the 240 of the UTF-8 of the emoji. And this is going to be the next one, 159. But the problem is, as soon as you can't have something you can display, because it's only got the first two numbers. It requires all four numbers to display the character that's the emoji. It needs those. If it doesn't have those, it says this is broken, and it just shows the question marks. And so if you are going to work with emojis and you're going to work with literal, be very careful about how you work with your arrays, because you can really mess things up. But the nice thing about jig is it's going to show you exactly how things are. And that's a useful thing to do when stuff starts to go off the rails. You go, oh, right, I've clipped these last two numbers off of here. I really need those. And that's kind of a useful thing with jig. Let's see what we've got for g. Oh, it's a number. Well, no, it's not a number, of course, because we're talking about literals. I just threw this in here. Again, even though it looks like a number in textual, when you go to jig, it is, in fact, a literal. It's shape is an atom. And then you can actually see the encoding for it. Its encoding is 52. So this is where jig is really useful in working with literals and knowing what's a literal, what's not a literal. And when you start working with Unicode, some of the aspects that can happen with the numbers of integers that are required to encode something like an emoji, some special characters in other languages, there's a lot of things to deal with with Unicode. And jig makes it a little easier to diagnose any problems you might have. So that's how jig looks at literals. I hope you found that useful.