There are different phases to understanding something. Understanding a library is about learning its concepts and utilizing its methods in the correct way. Then comes deeper understanding, such as knowing what methods to use, based on some best practice guide you found in a blog. Finally, you come to a really deep stage of understanding where you want to understand what is going for relay and starts mucking about in the source code itself and maybe try to enhance it by submitting Pull Request to a project, most likely based on GitHub.
This section aims to give you part of that deeper knowledge straight away. We are aware that your head might be spinning a little at this point, with all the new concepts you have learned, together with some nifty operators. Let's start from scratch with the concepts first introduced and attempt to reverse...