Good evening as friends, I welcome you all to the Hindu Daily News Analysis brought to you by Shankar Iyer's Academy for the newspaper dated 6th of January 2023. Displayed here are the list of articles that I have taken up for discussion today. Go through it. There are 8 articles. Without much delay, we will get into the first article discussion. See this editorial article here, it talks about the history of Indian cable television. See, before the LPG reforms, the government basically had a monopoly over the TV broadcasting. So it is only after 1990s, the private players started entering the race. So in this phase, the cable television networks and foreign television networks started growing rapidly in India. So the government of the day decided to regulate the growing industry and it framed the Cable Television Network Act of 1995. However, from 1990 to 2000, India did not have any ground port or ground station. So in this period, the cable TV networks had to send their video cassettes containing programs to either Russia, Hong Kong or Singapore to upload their shows. So basically in this period, the cable TV networks had to send their video cassettes having their program to either Russia, Hong Kong or Singapore to uplink their shows to the geostationary satellites. Taking this into consideration, in 2000, an uplinking facility was first created in India through the VSNL or the Videsh-Sanshar-Nigam Limited. After this, what happened? Cable TV networks can send their video cassettes containing their programs to the New Delhi office of VSNL. Now they don't have to send it to Russia or Singapore. Now as an upgrade, the government allowed private players to provide uplinking services from Indian soil. So now private players are also coming into the play. Since all these developments are happening in 2000, the Ministry of Information and Broadcasting notified the guidelines for uplinking from India. And again this was revised in 2011 as the guidelines for uplinking and downlinking of satellite television channels in India. This was done to adapt to the changing technology and market scenario. And again very recently the union cabinet has approved the guidelines for uplinking and downlinking of television channels in India 2022. See this guideline is mainly focusing on making India into an uplinking hub. So it took nearly 30 odd years for India to transfer from sending tapes to foreign countries for uplinking to foreign countries sending tapes to India for uplinking. Before we used to send tapes to the foreign countries for uplinking and now we are going to receive the tapes from other countries for uplinking from our Indian soil. So this is about the editorial. So in this context let us discuss about the guidelines. I have highlighted the relevant syllabus here, go through it. Now let us start by understanding what is uplinking and downlinking. See this image. When information is beamed from ground station to the satellite when it is called uplinking and when the information from the satellite is beamed back to the ground station it is called downlinking. Now here you have to note that for telecommunication purposes what satellites are used? Geostationary satellites are used. Now you know what is uplinking and downlinking. Now we will see what are the main advantages of this new guidelines. First of all the new guidelines simplified various procedures to the permission holder. Here the permission holder refers to the private players who already have the license. First change is with respect to the permission for live telecast. See earlier what was happening was that the permission holders must seek a prayer permission for live telecast of events. Now in this new guidelines this provision is done away. Now only the prior registration of the event is necessary. So this has simplified the procedure for live telecast by the TV channels. The next major change is regarding the permission for change of language or change of picture quality. See earlier if you are a person who is operating a particular channel and if you wanted to change the language or change the picture format from SD to HD then you will have to seek permission. And only if it is approved the changes can be implemented. But according to the new guidelines the licensed TV channels need not seek permission. So in essence you will have to intimate the authorities about the changes that you are about to make. Another major change is about the permission for news gathering. Before understanding that have a look at this image. This is called a digital satellite news gathering. So what is this about? This basically helps the news reporters to broadcast from the remote location outside a TV studio. This particular vehicle will have all the setups that are necessary to broadcast the news. So you don't have to come back to the studio to report the news. The new guidelines is saying that the permission for the use of digital satellite news gathering is required. But the use of other equipments like optic fiber, backpack and mobile for news gathering need no separate permission. These are the changes related to permission holders. Now the new guidelines has also simplified certain procedures to aid ease of doing business. Firstly for the grant of permission a certain time limit is specified. Now you are a person who wants to set up a new TV channel. You will seek permission from the Ministry of Home Affairs and the authorities will conduct a background check. Now a report will be made and it will be submitted to the Ministry of Information and Broadcasting. This report will be reviewed by the Ministry of Information and Broadcasting within 30 days. After that you will pay the necessary fee and you will get the license for the company to run the TV channel for 10 years. So this will fasten the process of approval or rejection and also it will help to streamline the business. Secondly this new guidelines allows the Indian teleports or Indian ground stations to uplink foreign channels. So this will take India to the path of becoming an uplinking hub. Also this will create additional employment opportunities. Then there is something for the news channels. Earlier the license for the news channels would be extended one year at a time. If you are getting a license this year it has to be renewed in the following year or the next year. But right now it is extended to 5 years. So this will smoothen the functioning of news channels. Finally the new guidelines allows the limited liability partnership companies to seek permission and establish a news channel. Earlier only a limited company was allowed to seek permission. Now here what is the difference between limited liability partnership and a limited company. See in a limited liability company the partners hold the ownership of the company and they also hold powers to manage the company. For example Mr. X is a partner in the limited liability partnership company. He can act as both owner and a manager. On the other hand if you see private limited companies the shareholder that is the owners. Do not necessarily have to have management powers. There could be separate boards which take care of the management process. Basically small businesses tend to register as limited liability partnership companies. And large businesses tend to register as private limited companies. So these four changes will aid in the ease of doing business. Now the new guidelines have also rationalized various procedures. Before there used to be two guidelines one for uplinking and other for downlinking. Now we have one composite set of guidelines and this will avoid duplication. Then the penalty clause have been rationalized in the new guidelines. Earlier common penalty was provided for all types of violation. But right now different penalties are provided for different violations. For serious violations there will be serious penalties. And if it is not so serious there will be lesser penalty. All this is fine. But there is one controversial provision in this new guidelines that is discussed very often. That is regarding the content of national interest. If you see according to the new guidelines everyday television channels must broadcast 30 minutes of content on topics of national interest and social relevance. See these are the eight themes that are given by the guidelines. So basically the channels must comply with the central government directives in publishing the content surrounding these themes. This is not applicable for foreign channels and sports channels. Other than this provision which is slightly controversial all the changes brought about by the 2022 guidelines will give a major boost to the Indian TV broadcasting industry. So in this discussion we saw about the history of Indian cable television how it evolved. We saw about uplinking and downlinking. We also saw some major changes that was brought about by the guidelines of uplinking and downlinking 2022. This is all that I wanted to discuss regarding this news article. Now let's move on to the next article discussion. Look at this editorial article. It explores the India-Nepal relationships in the wake of their elections in Nepal. One of the authors of this article is a former ambassador of India to Nepal. Hence this article assumes significance. Now we will use this opportunity to understand about India-Nepal relationship and we will see some way forwards as suggested by the author. I have attached the syllabus relevant to this discussion here. Go through it. Now we all know Nepal is a close neighbour of India. So Nepal shares a border of over 1850 km. Some sources also say it is just 1751 km. Totally five Indian states share border with Nepal. They are Sikkim, West Bengal, Bihar, Uttar Pradesh and Uttarakhand. See we have such a close border and because of this friendship and cooperation between the two countries developed at varied levels. There are also people-to-people contacts, similar cultures, food habits etc. Apart from this at a higher level we also have diplomatic relations. It was initiated by the India-Nepal Treaty of Peace and Friendship of 1950. So under this treaty Nepalese citizens avails facilities and opportunities on par with Indian citizens. Which also means that there is an open border system. So the citizens of both countries cross over the border for livelihood opportunities, marriages, familial ties, so on and so forth. Now in the last few years the relation between the two countries have seen a renewed momentum. There were high level political exchanges which included the visits of Prime Ministers and Foreign Ministers of one country to another. There were regular meetings of bilateral mechanisms across diverse sectors of cooperation. So this was all part of India's neighbourhood first policy. We have converging interest in so many levels. India reminds Nepal's largest trade partner in 2019-20 our bilateral trade crossed 7 billion US dollars. Then in February 2021 13 Terai road packages were completed under India's assistance of nearly 400 crore rupees that was handed over to the government of Nepal. Apart from this India also supplies a total of 600 MW of power to Nepal through different transmission lines. This is to help Nepal to overcome the power shortage. This multifaceted relations led to the expansion of economic and development partnership. And this gave boost to connectivity, cooperative initiatives in water resources and hydropower sectors, defense, security etc. So this is a brief on India-Napal bilateral relations. Earlier I was talking about the Nepal election and I also told you that it is in that context that this article is being written. This election is a talk of the town because Nepal as a country has gone through a lot of developments. One of the major developments is the assimilation of Maoist into the Nepal's democratic political mainstream. So what do I mean by this? See Maoism is a form of communism developed by Mao Seton. So the Maoists believe in bringing political change through force. So what they do? They bring about insurgent military strategy. They involve in continuous revolution and through these means they try to establish a people's government. First of all, why all this happened in Nepal? See, Nepal is a country with poor governance, corruption and there was also a apathetic attitude that was expressed by the government towards the people. And all this led to continuous political instability. So the Maoists took this opportunity and they started a party which is called as the Communist Party of Nepal, Maoist. This was a radical faction which got separated from the existing Communist Party of Nepal. It was started by Pushpa Kamaldahal who is also known as Prachanda. So this party launched Gorilla Warfare that shook Nepal in 1996. They call it as the People's War. And this party promised self-rule and autonomy to various ethnic groups in Nepal. They also said that they will bring about an end to the discrimination that was existing between different groups. So this particular insurgency lasted from 1996 to 2006. As a result of this insurgency, Nepal's monarchy was overthrown and it was replaced by a democratically elected government. Finally, in 2015, Nepal's new constitution was promulgated. This is just one side of the story. Since I told you that a democratically elected government was formed in Nepal, you might have thought everything would have gone like a catwalk after that. But the political instability in Nepal still continued. From 2006 to 2017, Nepal sought 10 prime ministers. So when there is so much political instability, a country cannot develop, right? Because political instability hinders the ability of the government to address the challenges confronting the country. Later, however, a coalition government was formed where different factions came together and Mr. Prachanda was chosen as the Nepal's new prime minister. Before seeing what this development means, let us see what are the irritants in the India-Nepal relations. First, Nepal is placing so many acquisitions on India. Nepal is accusing India of blocking access to fuel, medicine and other essential supplies and they believe this led to the humanitarian crisis in Nepal. This is basically a misunderstanding and Nepal was concerned because it is a landlocked country and it has to rely on India for imports, right? Another irritant in the relation is the boundary issue. In 2019, Nepal played cartographic aggression. That is, it published a map with Indian territories as its territories. Through the map, Nepal asserted that the three disputed territories of Limpiatura, Lipulek and Kalapani are part of its territory. This further strained the relation between the two countries. And another major issue is that the Nepalist politicians are using these issues for their personal gains and they are creating anti-India sentiments in the minds of the people. Some believe that this has happened due to Chinese backing. Yes, this is another concern for India. There is growing Chinese influence in Nepal. China has increased its investments, aids and loans to Nepal. It even considers Nepal as a key partner in its Belt and Road Initiative and it wants to invest in Nepal's infrastructure. As we were talking about the Nepal elections, now we will try to understand what this means for India and what it means for China. China seems happy because a communist government has been formed in Nepal. So, China seems to think it can now easily promote its own interest. Second, because this is detrimental for India. China thinks that the current political leadership in Nepal is not pro-India. So, Indian interest must be at stake. However, the author feels that India should not be worried about this because India has been dealing with Nepal for past several decades even when there was turmoil and instability in Nepal. The author says this because the new Nepali government is adopting a policy of equi-proximity with India and China. What do I mean by this? Nepal is maintaining an equal distance with India and China. Apart from this, geographically also, Nepal is closer to India than to China. So, now it is with the Indian leadership to do the needful to establish strong ties with Nepal. The author says that India and Nepal should use soft power and mutual empathy. Soft power means attracting and persuading rather than using force on one another. So, as a part of this, India should frame policies regarding Nepal while considering the fact that Nepal is a transforming country. We can jointly work together at various levels including economic governance and human welfare. Under economic governance, we can deal with economic recovery, sub-regional and regional cooperation. Restructuring supply chain can also be brought into the picture along with enhancing energy cooperation. Such a policy could help both the countries which are reeling with the after-effects of COVID-19 pandemic, Russia-Ukraine war, etc. This would create a win-win situation for both the sides. So, in this article discussion, we saw about the issues in the relationship between India and Nepal and how Nepal election results are going to affect India and China. We also saw some ways to improve the relation between India and Nepal. This is all that I wanted to discuss regarding this news article. Now, let's move on to the next article. Now, see this front-page article. It talks about the decennial census exercise that has been postponed till September. The government has informed the states that the date of freezing of administrative boundaries has been extended till June 30. But as per norm, if you see, census can be conducted only three months after freezing of the boundary limits of the administrative units such as districts, sub-districts, tassels, talukas and police stations. This is the crux of the news article given here. In this context, let us understand about census from the exam perspective and we will also see some important provisions of the Census Act 1948. Fine? Before that, I have given the syllabus relevant to this discussion here. Kindly go through it. First of all, what is census? See, census is the total process of collecting, compiling, analyzing, evaluating, publishing and disseminating the statistical data of what? Of the population and housing and their geographical location. So simply, it is a survey about population. India has a permanent legislation for this, which is the Census Act of 1948. This particular act gives the legal backing for the exercise of census by the central government for the whole or part of India. Now, what kind of information collected in the census? See, through census, authentic information on demography, economic activity, literacy and education, housing and household amenities, urbanization, fertility and mortality, scheduled costs and scheduled tribes, language, religion, migration, disability and many other socio-cultural and demographic data are collected. This means that census contains data about various characteristics about a group of population. It is only because of this reason, it makes the data very valuable. It can be used as a basis for reviewing the country's progress in the past decade and if there are certain schemes of the government, it can be easily monitored. For example, if you take the Mandrega scheme, who are the beneficiaries and all this can be easily identified using the census data. Apart from this, it can also be used for making plans for the future. As we all know, the census is conducted for every 10 years. The first such census was conducted non-synchronously in different parts of India in the year 1872. This means that the first census was conducted in British India. Now, the coming 2021 Decadal census, which is yet to be conducted, will be the 16th in series and it will be the 8th after independence. However, it is postponed due to the COVID-19 pandemic. Now, this news article tells that the census operations are being postponed till September. Now, we will move on to understand how census is taken in India. See, census operation is carried out in basically two phases. The first phase is called as the house listing and housing census. And the second phase is population enumeration. So, basically, the first phase sets a base for the population enumeration, which is the second phase. So, what happens in the first phase? All buildings, census houses and households, all these are identified and systematically listed in the schedules. With this data, we can easily analyze the condition of human settlements, amenities and assets available to the households, housing deficit and housing requirement. All these data can be used in the formulation of housing policies. Now, after this first phase, second phase, which is the population enumeration follows. And this happens with a gap of 6 to 8 months after the first phase. So, it is only in the second phase of census, each person is enumerated and their individual particulars are collected. So, the offices asks us about the details of our age, marital status, religion, schedule cast or schedule tribe, mother tongue, education level, disability, economic activity, migration, fertility and all these data. All this is fine. But who conducts census in India? The responsibility of conducting the census basically rests with the office of Registrar General and the census commissioner of India. They are functioning under the Ministry of Home Affairs. How are these offices appointed? They are appointed under the census act of 1948. But this act only provides for the appointment of census commissioner to supervise the taking of the census. This act empowers the central government to notify the date for the census to appoint the census commissioner and superintendents of the census operation in states. This act instructs every citizen to assist the offices in taking of the census. That means it is the obligation on the part of every citizen to answer the census questions truthfully. You can't give false answers or you can't simply remain without giving answers. Because these two things will attract penalty. Now, who are going to conduct the census? The act provides for appointment of census officers to take the census in a specified area. So these offices are mainly drawn from local school teachers, central state government officials and officials of the local bodies. They visit every household and conduct the census. Apart from this, this act also provides for amenities, facilities and requisitioning of premises or vehicles, power to obtain information, power to ask question, so on and so forth. Now, also know that there is something called as the census division. So this census division assists the registrar general and the census commissioner for conducting the census operation. And the directors of census operation coordinate the work of census in the respective states and union territories. So in this discussion, we covered the following aspects. What is census? What kind of information are obtained during census? And finally how census is conducted in India. This is all that I wanted to discuss regarding this news article. Now let's move on to the next article discussion. See this news article here. It talks about the Asian elephants. Recently, a research paper was published in the international journal called the conservation. So this research paper says that the endangered Asian elephants has lost most of its optimal habitat in the Neelgris biosphere reserve. So this research points out that human settlements are hindering the movement of elephants and because of this they are forced to keep themselves confined to the hilly areas. This is about this news article. So in this discussion, we will understand about the Asian elephants. First of all, the scientific name of Asian elephant is LFS Maximus. And you should also know that more than half of the wild Asian elephants are found in India. And they are the largest land mammal on the Asian continent. So these Asian elephants live in a range of habitats including grasslands, scrublands, evergreen and deciduous forests. They mostly prefer low lying areas where they can move around easily. See, you would have heard this. People used to say that if an elephant is chasing you run down the hill because it is difficult for an elephant to run down the hill with its huge body weight. And that is why they usually prefer low lying areas. And they avoid steep slopes. This is one of the major characteristics about their habitat. See, another major important thing about the Asian elephant is that they are extremely sociable. They live in large groups led by the oldest female member. Yes, you guessed it right. Their community is matriarchial. Apart from this, we all know that elephants are herbivorous animals and they live close to a source of fresh water. This is because they need to drink water at least once a day. Now, note that there are three major subspecies of this Asian elephant. These includes the Sri Lankan elephant, Sumatran elephant and the Indian elephant. We will see how they differ from each other. First, the Indian elephant has the widest range and they account for the majority on the Asian continent. Then, the Sri Lankan elephant. This elephant is physically the largest of the subspecies and they are also the darkest in colour. And finally, the Sumatran elephant is the smallest of the subspecies. However, there are some studies which suggest that the Borneo islands have a separate subspecies of Asian elephants. If this Borneo elephant are considered separate subspecies then they would be the smallest of all the other elephants found in the Asian subcontinent. Now, we will see a little more about the Indian elephant. See, these elephants occur in the Central and Southern Western Cards then in Northeast India, in Eastern India, Northern India and in some parts of the Southern Peninsula India. Now, we will move on to the elephants. Firstly, these elephants are poached for ivory and other body parts which are traded for huge profit in the illegal markets. Then, as we saw in this article, there is loss of habitat, fragmentation of population. See, for example, if a road is laid down in the middle of a forest so this road is now dividing the forest into two halves. This leads to fragmentation of the population, right? The fragmented degradation that is decline in the quality of the forest itself due to deforestation, construction activities, so on and so forth. Then, there is loss of genetic viability resulting from small population size and isolation. This is happening because there could be a lot of inbreeding since the population size is very small. Apart from this, the elephants are used in hunting other terrestrial food industry. Now we will see the conservation status of Asian elephants. Firstly, they are categorized as endangered under the IUCN Red List of 300 species. Then, they are placed under Appendix 1 of sites that is the convention on international trade in endangered species of wild fauna and flora. They also come under Appendix 2 of CMS which is convention on migratory species. Also, they fall under Schedule 1 of the Wildlife Protection Act of 1972. So, in this article, we saw about Asian elephants, their habitats, the subspecies in the Asian elephants, threats faced by them and finally the conservation status of the Asian elephants. This is all that I wanted to discuss regarding this news article. Now we will move on to the next article. See this article here. It says that the chief justice of India recused himself from hearing a contempt of court petition against stand up comedian, Kunal Kamra. So, the petition was filed because Mr. Kamra made comments on social media in connection with Supreme Court's decision to grant bail to the journalist, Arnab Goswami. This is about the news. We will use this opportunity to learn some points about the Chief Justice of India. See, Chief Justice of India is the head of Indian judiciary and he is also the chief judge of the Supreme Court of India. Do you know who is the current Chief Justice of India? Comment the name of Chief Justice in the comment box below. See, Chief Justice of India is called as the master of the roster. Why is he called so? Because he is vested with exclusive discretionary power to constitute Supreme Court benches and he can also allocate the cases. So, how Chief Justice of India is appointed? He is appointed by the President of India under Article 124 Clause 2 of the Constitution. The Article 124 2 says that every judge of the Supreme Court shall be appointed by the President by warrant under his hand and seal. As we all know, Chief Justice of India is the Chief Judge of Supreme Court. So, the Article 124 2 implicitly provided that the Chief Justice of India is also appointed by the President. You should know one thing here. The appointment is to be done after consultation with judges of the Supreme Court. This means that the President should consult the Collegium of the Supreme Court while he is appointing the Chief Justice of India and other Supreme Court judges. Note that the Supreme Court in the second judges case of 1993 ruled that the senior most judge of the Supreme Court alone be appointed to the office of the Chief Justice of India. So, what the Collegium usually does is that it recommends the senior most judge of Supreme Court to the appointment of the Chief Justice of India. Now, what are the qualifications that are needed to become the Chief Justice of India? As I said earlier, he should be the senior most judge of the Supreme Court. So, that his name will be recommended by the Collegium. Apart from this, the other qualifications are same as that to become a Supreme Court judge. That is, he should be a citizen of India. He should have been a judge of a High Court or High Courts in succession for 5 years or he should have been an advocate of a High Court or High Courts in succession for 10 years or he should be a distinguished jurist in the opinion of the President. Note one thing here the constitution has not prescribed any minimum age for appointment here. Now, coming to the 10 year of the Chief Justice of India. It is same as that of Supreme Court judges. However, he should know that the constitution has not fixed the 10 year of the judge of the Supreme Court. However, Article 124 2 says that the Supreme Court judge holds office until he or she attains the age of 65 years. So, the Chief Justice of India will also be in the office until he attains the age of 65. CJI or the Chief Justice of India can form his office by writing to the President. Then coming to the removal process. It is also same as that of Supreme Court judges. A judge of the Supreme Court can be removed from office by an order of the President. The President can issue the removal order only after an address by the Parliament has been presented before him for such removal. The removal address has to be passed in the same session of the Parliament and it must be supported by a special majority of each House of the Parliament. He can be removed on the grounds of prudent misbehaviour or incapacity. Now finally, we will see what are the functions that are being performed by the Chief Justice of India. Firstly, the Chief Justice of India is responsible for the allocation of cases and appointment of constitutional benches to deal with important matters of law. This is why I earlier told you that he is called as the master of the rooster. He carries out the functions of maintenance of rooster and then appointment of court officials. The Chief Justice of India also deals with general and miscellaneous matters relating to the supervision and functioning of the Supreme Court. And finally, he shall act as the President of India. Yes, President of India in the event of the offices of both the President and the Vice President being vacant. In simple terms, if the Office of President and Vice President are being vacant, then the Chief Justice of India acts as the President of India. So in this discussion we saw about the Chief Justice of India, how he is appointed, the qualifications needed to become CJA, the tenure of CJA, removal process and finally we saw what are the functions that are being performed by him. This is all that I wanted to discuss regarding this news article. Now let's move on to the next article. Look at this news article. It is regarding the rate filed against the Governor of Tamil Nadu in Madras High Court. A writ of Co-Varanto was filed against the Governor saying that he is holding an Office of Profit. Now, in this case the High Court has ruled that the writ is not maintainable. This means the writ filed is not proper or not as per the provisions of the law of the land. In short, the writ has been dismissed. In this context, let us quickly revise about the Rits. See, issuing Rits comes under the writ jurisdiction of the courts. Remember, writ jurisdiction is a part of the basic structure of the Constitution. In our country, both the Supreme Court and the High Courts are empowered to issue Rits for the enforcement of the fundamental rights. So, moving the Court for issuing Rits is their remedy for the violation of fundamental rights. Supreme Court enjoys this power to issue Rits under article 32 and High Court enjoys the same power under article 226 of Indian Constitution. But there are differences between the writ jurisdiction of the Supreme Court and High Courts. Especially, the writ jurisdiction of the High Court is wider than that of the Supreme Court. Why? Because the Supreme Court can issue Rits only for the enforcement of the fundamental rights. This means that it cannot issue Rits for other purposes. But High Courts can issue Rits for other purposes also. This means, when there is a leaked breach of an ordinary legal right, then also the High Court can issue Rits. Here, you should know that the remedy under article 226 is discretionary. Which means, the High Court can refuse to exercise its writ jurisdiction. Now, let me tell you briefly about the type of Rits. First is Habers-Karpus. It is filed to seek relief from the unlawful detention of a person. So, this writ is a guardian of individual liberty against arbitrary detention. Note that this writ can be issued both against public authorities and private individuals. Second is the writ of mandamus. It is a comment issued by the court to a public official asking her to perform the official duties that she has failed or refused to perform. It can be issued against public body, corporation, inferior court, tribunal or government. Third writ is the writ of prohibition. It is issued by a High Court to a Low Court or Tribunal to prevent the Lower Court or Tribunal from exceeding its jurisdiction or taking over a jurisdiction that it does not possess. Next is certiorary. It is issued either to transfer a case pending to High Court or to completely squash the order of a Lower Court or Tribunal in a case. Finally, quawarantu. It is issued by a court to incur into the legality of a climb of a person to a public office. Hence, it prevents illegal usurpation of public office by a person. That's all regarding this article. Now we will move on to the next article. See this news article. It mentions that all India rubber industries association has requested the government to ease the restrictions placed on rubber imports. In India, if you see, the demand for rubber is higher than the domestic production. So, therefore, India imports rubber to meet its domestic demands. But presently, due to Russia-Ukraine war, the price of rubber in international markets have increased. This has affected the Indian rubber industry as a whole. The All India Rubber Industry Association has asked the government to increase rubber production in India on one hand and it has also asked the government to reduce the import duty on the imported rubber. This is about the news article. In this context, let us quickly go through about the Indian rubber industry. See, natural rubber is actually a polymer of isoprene. So, basically, if you see, natural rubber is a very large molecule which is formed by repeating units of isoprene. You may be surprised to know this. See, this particular rubber latex comes from a variety of trees. Of these, Hevia briscelliensis is the most important kind. So, rubber latex is not something unique to the rubber plantation that we see today. Hevia briscelliensis is a native of the Amazon basin and it was introduced from there to different countries in the tropical belts of Asia and Africa. This happened during the late 19th century. See, I told you it came from Amazon basin. So, it is an equatorial crop. But, under special circumstances, it can be grown in tropical and subtropical areas as well. So, that is why it was brought to India and other countries. Rubber requires moist and humid climate with rainfall of more than 200 centimetres. It grows well when the distribution of rainfall is uniformly high all over the year. A temperature of 25 degree Celsius is optimal for the growth of rubber plantations. The tree is pretty sturdy and can withstand the temperature ranging between 20 to 35 degree Celsius. This is in spite of the fact that it basically is an equatorial tree. But, if the temperature falls below 20 degree Celsius it is detrimental to the tree. Now, we will see what is the requirement of the soil. The rubber trees grows well in the deep and well-drained soil. They can also grow in acidic soil as well. Rubber has many commercial uses. It is an important industrial raw material. It is only because of this reason it is grown as a plantation crop. See, plantations are a type of commercial farming where a single crop like tea, coffee or rubber are grown with the help of huge labour and capital. Now, we will see about the rubber production in India. According to NCRT, in India rubber is grown mainly in Kerala, Tamil Nadu, Karnataka and Andaman and Nicobar Islands and Garo Hills of Mehalaya. So, these are the traditional areas. But, currently rubber plantations have been established in other areas also. These are called the non-traditional areas. These areas include Goa, Maharashtra's Kongan region, coastal Andhra Pradesh, Assam and Tirupura. Because of the increasing rubber plantation, there is threat to biodiversity. Because rubber plantation leads to monoculture, which is basically a practice of growing a single crop over a large area. And there was even an article in Down to Earth magazine two days ago about the rubber plantation affecting the monkey population in Tirupura. Now, commercial cultivation of natural rubber was introduced in India by British. In 1873 itself, the British were experimenting with commercial cultivation at the botanical gardens of Calcutta. But, the first commercial natural rubber plantation in India was established at Tatekardu, Kerala in 1902. Even today, Kerala accounts for the majority of rubber production in India. It accounts for something around 75% of rubber production in India. It is followed by Tirupura, Karnataka, Assam and Tamil Nadu. Now, who oversees this? It is the rubber board which plays an important role in the development of rubber industry in India. The rubber board evolved from the erstwhile, Indian rubber board which was established under the Rubber Production and Marketing Act of 1947. In 1954, the rubber production and marketing act was passed which renamed the Indian rubber board to rubber board. This is all regarding this article. Now, we will move on to the next article discussion. Look at this news article. The news further says that the coverage of food crops in Tamil Nadu is marginally lower than last year. So, this is about the news article. Now, in this discussion, we will cover two famous cash crops of India. First, we will see cotton and followed by that we will see jute. First, let's take cotton. Cotton is one of the most important fibre and cash crops of India. It plays a very dominant role in the industrial and agricultural economy of our country. It provides livelihood for nearly 6 million farmers and nearly 40 to 50 million people are employed in cotton trading and India has 10 major cotton growing states. They are Punjab, Haryana, Rajasthan, Madhya Pradesh, Maharashtra, Gujarat, Andhra Pradesh, Telangana, Karnataka and Tamil Nadu. Now, what are the climate and soil requirements for growing cotton? Cotton is grown in tropical and subtropical conditions. It needs a minimum of 15 degree Celsius so that better germination of seeds can take place. During the vegetative growth they need around 21 to 27 degree Celsius. But here you should know that cotton can tolerate temperature even to the extent of 43 degree Celsius. But something below 21 degree Celsius is detrimental to the crop. They have something called as the fruiting period. So in this period warm days and cool nights with large diurnal variations are conducive because they result in good fibre development. Cotton can be grown in a variety of soils. In North India it grows in well drained and deep alluvial soil. Then in the Central India it grows in black clayey soils. And in Southern India it grows in black mixed black and red soils. So this is about cotton. Now we will move on to jute. See, jute is an important natural fibre and cash crop that is grown in India next to cotton. It is also called as the golden fibre. Why is it used basically? It is used for making gunny bags, mats, ropes, carpets and other artefacts. Which are the states that are majorly producing jute? West Bengal, Assam, Bihar, Orissa and Andhra Pradesh. However the Indian jute industry mainly depends on the state of West Bengal because it has the highest number of jute mills. Now coming to the climatic and soil conditions, see jute requires a hot and humid climate. Their tolerance temperature range is 15 degree Celsius to 35 degree Celsius. Know that constant drain or waterlog conditions are harmful to jute cultivation. Particularly during the seedling stage it is not at all conducive to have waterlogged conditions. Then alternate sunshine and rainy days are most helpful to the jute growth. Jute can be raised on many kinds of soil. That is from clayey soil to sandy loam. However particularly if you see loamy alluvial soil is best suited for jute cultivation. But laterite and gravel soils are not suitable for this crop. The new grey alluvial soil which are receiving silt from the annual floods are the best for jute cultivation. This is all that I wanted to discuss regarding this news article. Now we will move on to the next part of our discussion which is practice questions. There are 5 questions. 4 will be discussed by me and 1 will be the quiz question for the day. Question number 1. With reference to the Chief Justice of India consider the following statements. Statement 1. The constitution of India provides for fixed tenure to the Chief Justice of India. Statement 2. The Chief Justice of India can be removed from her office or her office by the President of India based on the removal address by the parliament. Which of the statements given above are correct? Here Statement 1 is incorrect. The constitution has not fixed the tenure for the Chief Justice of India. However we saw in the discussion article 124 2 of the constitution says that the Judge of the Supreme Court holds office until he or she attains the age of 65 years. So as the senior most judge of the Supreme Court the Chief Justice of India would be in office till 65 years of age. Here statement 2 is also correct. The CJA can be removed from his or her office by the President of India based on the removal address passed by the parliament. Here the question is asking for the correct statement. So the correct answer for this question is option B 2 only. Question number 2. Consider the following statements regarding natural rubber. Statement 1. He via Breslensis which is the major source of natural rubber is native to Amazon basin. Statement 2. Bresl is the world's largest natural rubber producer. Statement 3. Currently synthetic rubber is replacing the natural rubber because synthetic rubber offers higher stretch ratio, higher resilience and is extremely waterproof. Which of the above statements is RR correct? Here statement 1 is correct. We saw that natural rubber is native to Amazon basin. Now statement 2 is incorrect. Although this rubber plant is native to Amazon basin Thailand is currently the largest producer of natural rubber. Finally statement 3 is also incorrect. Actually natural rubber offers higher stretch ratio, higher resilience and is extremely waterproof than the synthetic rubber. But the major disadvantage associated with natural rubber is that it does not perform well when exposed to chemical and petroleum derivatives. So the correct answer here is option B 1 only. Question number 3. Which of the following statements is RR correct with reference to RIT jurisdiction of both the Supreme Court and High Courts. Statement 1. Both can issue RITs for the enforcement of the fundamental rights. Statement 2. Both can issue RITs for enforcing an ordinary legal right. Statement number 3. Both can issue the RITs of certiorae and quawarantoo. Statement number 4. Both can refuse to exercise their RIT jurisdiction. See here. Statement 1 is correct. Enforcing the fundamental rights is one of the main purpose behind issuing RITs. Statement 2 is incorrect. Supreme Court can issue RITs only for enforcement of fundamental rights. But High Courts can do so for enforcing even ordinary legal right. Statement 3 is also correct because both Supreme Court and High Court can issue the RITs of certiorae and quawarantoo. Now Statement 4 is incorrect. See a remedy under article 32 is itself a fundamental right. And hence Supreme Court cannot refuse to exercise its RIT jurisdiction. On the other hand a remedy under article 226 is discretionary. Therefore a High Court may refuse to exercise its RIT jurisdiction. This is mainly because the Supreme Court is the defender and guarantor of fundamental rights. So the correct answer here is option A, 1 and 3 only. Question number 4. This is a previous question from Prillams 2020. The crop is subtropical in nature. A hard frost is injurious to it. It recures at least 210 frost free days and 5200 cm of rainfall for its growth. A light well drained soil capable of retaining moisture is ideally suited for the cultivation of the crop. Which one of the following is that crop? Here answer is A, cotton. Now this is the quiz question for the day. Read this question carefully. Write down the answers in the comment box below. These are the main questions for your practice. Interested candidates can write the answer and post it in the comment box below. If you have found a video to be useful like the video, share it with your friends. Remember to subscribe the channel. Happy Learning.


Yeah, we're here to talk about cats And let me just before we get started. I'll say a little bit about myself My name is Michael O'Connor, but there's nobody Besides my mother left on the planet who actually calls me Michael. So everyone should call me stew If you want to know why you can ask me personally some other time I'm currently a software architect for division of Verizon called on cue We're based in San Jose. We have We're doing lots and lots of Scala. We have in the location where I work There are as triple digits of Scala developers So lots and lots of Scala and we're doing lots of functional programming. It's lots of Scala's ed that kind of stuff so I originally had signed up to talk about something else to talk about one of my Verizon projects but John then I know I talked to him about me You know, he talked to me about talking about cats and he was like, oh god Can we talk about cats when you talk about cats because he thought it would have a much more broader appeal to people and I said, you know It is true cats and the internet seem to go hand in hand. So We're gonna start off with you know We're gonna start off with a category that I think a lot of people are gonna be familiar with which is the domestic cats feline domesticus, maybe we'll get into some Medium-sized cats like ocelots and bobcats later, but no, okay. All right, this will be my only site gag But How many people here in the room? Let's say use Scala's ed Excellent and how many people have heard of cats how many people know exactly what cats is Okay, so I'm hoping that What we I really I've prepared some stuff to talk about But my plan was really to kind of to have this be an introduction to cats and to talk about what we're doing Why we're doing it how it relates to Scala's ed And all that stuff, but I Want you guys to stop me if you ever have questions I don't you know, I don't have I have a I have a Deck full of slides that I want to try to get through But I really just want it to be a a guidelines of things we can talk about if there's anything you want to Talk about a questions you have to ask, you know of me. Just stop me ask me questions. I'm happily to Pull up a rebel if we need to I'm happy to use this white board that seems to be black and So just You know it stopped me as we we go along the way so Cats is a another library which is trying to kind of occupy the same space as Scala's ed It's doing the things we're hoping that it's going to be a library We'd use at times when you might use Scala's ed so It's there to enable pure functional programming in Scala and So It's a project that was recently started. It's a couple months old now. I don't remember exactly when we started but it's was started initially by Eric Oshheim who is well known for being the one of the primary authors of the spire project and someone who Also now algebra and a few of you know lots of other great stuff in Scala a lot of people here I assume know who we're talking about When the project was started it was clear that like there was a lot of Excitement about it we Like I said, it's only been a couple months old and we already have I think 30 contributors to the project All right, who here who here has contributed cats already? All right, there's a there's a handful of us here already, which is great and You know also just you know to show how excited people were When you know we all kind of knew that something was coming with that We're gonna start some new functional programming library and you know, there were a bunch of people that had Toss some stuff out on github Mike Pilquist created his structures project, which was kind of being the same place I had some stuff. I was playing with I know I'm sure that other people did Eric was the first one to finally said all right. Here it is. It's called cats And Once he threw it up on github, you know within the first week we had already merged a hundred pull requests, which I think you know It shows like how excited people were for so for this new You know this new library to come around So some of the goals of the project is that we're We're trying to keep it small And you know small modular But but I think the one of the things that we're gonna try and use as an underlying goal Which is really important is we're gonna try and make it approachable and you know friendly newcomers so a lot of you were in the room for the previous two talks which were also about Scala's Ed and you know they feel like You know, I know Brandon and Colt both said okay Scala said if that thing that you were so scared of because it was like oh my god My head's gonna explode and you know and it this is a a common problem people have trying to come to these these These ideas that are in these libraries, you know and these problems come from them not being complicated But actually being very simple, but So what we we've been doing You know something I'm gonna go back to over and over again probably over the over the course of talk is that it's been Really fun to Take a library like this and Scala said, you know, it's on version 7 and it's come through, you know, many many sometimes very drastic iterations but It's been really fun to be able to create a new library And really get to rethink and revisit a lot of the decisions we made In the past and and think about okay, what right now? We don't have any users, right? You don't have to worry about like we can't change this because we do we're gonna break You know break code for a lot of people. It's like no no one no one's using this yet So, you know, we get to really revisit and rethink some of this stuff. And so when we rethink some of this stuff or we're trying to all the time say now, let me try and think of this from the perspective of a newcomer and try to Figure out how we can make this library so it doesn't have to be that you know so that a couple years from now you know Brandon isn't standing up and being like cats, you know that thing you're so scared of that you never wanted to use so You know, we're hoping that we can do that. You know, we're we're In the chat room and stuff for all the time talking about a lot of people are saying like okay so I was trying to teach my co-workers about you know disjunction, you know the the left slash right slash and you know talking about was that a problem for people? did people have Find that that that syntax off-putting or not and and trying to sometimes say You know, well, I really like that syntax and that syntax is natural for me we're trying to maybe make some compromises on what I like based on What someone who was newly coming to the the library might think? and so So, you know again another another way that we're going to try and make things more approachable is that I especially am trying to be a little bit hard-assed about saying If you're gonna, you know, if you're gonna put it into the library I want it to be documented and we're we're not you know, we don't have a hundred percent coverage I'd like to get a hundred percent coverage. I like to see everything that goes into the cats library be documented have examples and and the other thing that we're gonna do in order to You know like I have up there already is another thing we're gonna do to try and keep it more approachable is to try and keep it small So that we're not Including every possible thing from category theory that can be done just to do it We're trying to ask that things that are be brought into the library Have an obvious motivation. So it We're not looking for you to say, you know Theoretically I could use this thing in this way and category theory says that you know if I can't immediately say, you know How am I gonna use that thing? I want your I'm gonna ask you to say show me an example where this is actually useful so that It's not in there occupying more space than it's earning So while we're doing this And we're making these choices or maybe we're changing things to be more approachable we're trying really hard not to Compromise the principles. We're trying to make sure that everything is lawful and we'll talk more about laws later but we're trying to make sure that You know that we don't we don't compromise our Functional programming standards in order to make things more approachable. So we still want to keep everything pure We're gonna keep everything, you know purely functional and law abiding that having said We're totally willing to compromise on our credentials. I Mean I can I on our principles When it's earning it's keep and so we will make some we will we're gonna allow some things in that maybe you're lawless If they are earning their place that is they're saying that They're providing enough value that it's that we're gonna, you know, say, okay, maybe I can't reason about this totally but it's you know And because sometimes there are things that are just so useful that you you want to have them Okay, so more goals that we have is that It's been I don't know how annoying I am to Eric Osheim and Cody Allen another person who is a heavy contributor to cats. These are some of the most annual tent of Developers on the planet, which is great But I'm sure I'm driving I'm crazy because they all wanted to be you know I've had to change emacs setting to make sure my stars on my comments line up just right and that You know no trailing white space, you know everything and so they're very As soon as I just throw the pull requests in there I'm like here you go here's some stuff and they're like I'm stew your stars aren't lining up in here You know so these guys are you know, especially because we're starting from scratch and it's not like, you know Coach coming from here coach over there. We're like they're being great gatekeepers about like We're gonna write things all the same way and we're thinking about things like you know when we're passing in Implicit parameters where you can use like a context bound Which is shorthand for having an implicit parameter passed in you know When are we gonna do one versus one are we gonna do another and we're you know We're we're actually having long conversations about style Trying to make sure that Everything is written in a very clear coherent and very consistent way And we've tried as much as we can to leverage the tools we have Like you know style of style and stuff so and I'm terrible I you know throw a commitment in there and then failed Jenkins or not Jenkins Travis will tell me It's no good because it's twirling white space somewhere So another goal is that we are trying as much as possible to make everything serializable and Some of you probably Are not sure why we care about serializable and this is I'm talking about Java serializable Who knows why I know you know I'd Albert Spark exactly It's because you know anytime you're doing a spark and you have what you're writing code Which might be shipped off to some some slave they use Java serialization right now. I think you know and so But we're just trying to be very active about putting it everywhere We possibly can so that we you know because a lot of us who are using this stuff are ending up Writing code that's gonna end up in spark at some point Um Scala doc everywhere, I'm I'm trying to go through and make sure that every method we have Has scala doc attached on and this is somewhat of a difference from some of the attitudes that some people have in Scala Zed and this is not I'm you know, there's I think that they're both completely different And totally valid ways of thinking about it, but you will see some people in the Scala Zed community Who will say I don't need the documentation because the types of the documentation I think that's that's true to some extent and I think it's it would it you know When I started learning all this stuff I started learning all the stuff from Scala Zed and I did learn how to read the type signature and learn that the type signature really is Fantastic documentation between type signatures and laws you should know everything you need to know however That doesn't work for everybody and I think it's you know It's hard to say that adding the Scala doc everywhere is worse So I'm we're just gonna err on the side of you know try to document as much as possible So it that again that person who's coming along who might be a little bit intimidated might have a You know something to read that'll help a lot more than reading a bunch of one-letter type signature name, you know so So we are trying to scala doc everything the other goal is that we have is of course search engine optimization That's what we chose cats as a really horrible name All right, so We'll talk about Some of the type classes that are in there I'm gonna assume that most of you are in here are familiar with what these type classes are I wasn't planning on going into and talking about like what is a functor or what is a monad? But you know just just talk about what we've got If you're familiar with this stuff So we have kind of the ones we're hoping that we have all the ones that you use all the time So, you know functor is something that comes up all the time the applicative functor Monads come up all the time and so these you know, we're trying to make sure that all these things that that We're all using you know all the things that we actually use all the time for Scala's ed are the first things that we put in there Traverse of course That's the one that you will hear a bunch of us say that 50% of all questions that come into the pound Scala's ed channel the answer is traverse So it was one of the first ones going there some of them are missing however, and that's because some of them are we get from algebra? And the those the ones that we're getting right now are moan added semi group also equal And so what the algebra project is algebra project is another project started by Eric the same guy who started the cast project and It tries it's trying to be some common ground For different libraries who are going to share some of the same concepts So in there, they've got a mona a monoid and a semi group and the the the initial motivation It was started by him and it was started by some Some guys from Twitter so that there could be a common language for trading ideas between spire and Algebra, so that they said why don't we you know We all using these monoids. Why don't we agree? We'll put a very small lean Implementation of an definition of what is a monoid? What is a semi group and we could share those and then hopefully that it will Ease some work on developers at some point down the road who are trying to use both libraries In there, they also have a bunch of other type classes that we're not using yet So they have you know, they have things like Abelian monoid, you know monoids where we're not just associativity is guaranteed, but Communitivity is in stuff like that and we're not using those yet, but we I think at some point. We'll probably add those as well There are some things that we're missing and I and I you know I kind of alluded to this earlier There's some things that are in scholar's ed that we don't have but we don't have them And I think it's a good thing and some of these things are are these guys And then these are the things that when you look at the scholar's ed project and look at all the things There sometimes you look at them. You're like, okay, what is this thing? What is a con extension? And it's like it It's a thing. It's an interesting thing to learn about it I bet you there is no one in this room who has ever in their time of functional programming said, you know what? This is a right extension over identity, you know like who Yeah, okay, you don't count none You haven't done it in Scala how about that And and so, you know, we've decided that a lot of these things if they're not something that come up and things that we don't use We're just gonna leave them out for now because we think the library is better and more approachable if we just don't stick everything in That's category theory for category theory's sake And other things along the same line, you know adjunctions adjunctions if you read once you start reading category theory books You know, you'll see things like adjunctions are everywhere And if you take one thing away from category theory learn to recognize that adjunctions are everywhere That might be the case. They're nowhere in people's Scala projects So so we're not gonna have them for right now lenses is an interesting one lenses are a Super useful concept and Scala Z does have lenses and they are super useful and they're fun However, I think the the what's happened is what's come along as there's a monocle project And if you guys aren't familiar with it, you should check it out It's a really really great lens library And I think that what's happening is a lot of people who would be who are using Scala Z are not using the Scala Z lenses They're starting to move towards monocle And I think we're kind of it's one of those things where I think there's a lot of you know If you look at the lenses we have in Scala Z and you look at the lens They have in monocle is the lens of the monocle are far more mature and then you go look at something like Ed commits lens library for For Haskell and it's like okay There's a whole lot more we could be doing and I think that it's one of those instances We're gonna say I think that that development's gonna happen in the monocle space and we're gonna you know We're gonna stay away from it And which I think is probably where Scala Z is headed is that we might see in some future major rewrite of Scala Z That it no longer has lens So there there's a few things that we hopefully that's you guys can read that there's a few things that we've renamed Yes, absolutely I Think it is it's just one that you know it's one that is I I do see that that one is being useful It's just one that most of us just haven't become familiar about and there aren't it's one where you know If you look at a Scala Z source code There are no examples if you search around for people using representable functors in in Scala you won't find I bet I bet you won't find a single example other than okay So here's this thing I feel like I should try and use it so I'm trying to use it Just try and use it for a toy, but I wonder if you'll even find that was representable functors So it's a type of thing where if you were to come along and come up with a pull request for cats It says here's a representable functors I'll be like great show me some example code that makes that motivates me to say like this is something I want to have right so I mean there's certainly you know in like distributive functors or another ugly or one the Distributive type class, which is another one You know like another thing that works like traverse and applicative to like turn structures inside out another one Definitely useful and definitely even comes up It's just one that you don't find a lot of motivating examples to have yet So when they come along we're happy to include them It's just that if you know it's also you know very new library and You know the things that have made it in so far are like the ones, you know like Monad use that all the time and so we use this opportunity of Kind of starting scratch from scratch to rethink some of the names so some of the names that from Scala Z We translate We changed Some of these are well people might think they're good some people might think they're bad We some of these we toil over a lot But you know we so like the some of the bigger ones, you know plus became semi-group K plus was is a is like a Semi-group so if you're thinking if you're familiar with semi-groups whereas You know semi-group has is a type class Over fully specified types so types that are don't that are You know not Type constructors like list where you know list you might say here people say it's kind star arrow star Saying that it takes a concrete type and gives you back a concrete type It has one type whole And that's what the semi-group says I need a fully specified type give me an a another a I can add them I can add an int to an int I can add a list of ints to a list of its plus and plus empty are the the We might say the universal quantified versions of these these are Just like the semi-group where we have an append to add an a to an a but it is only works for types where they are type constructors so it's Things that have one type whole so a list we can add a list to a list or an option to an option and they have slightly different semantics So that it's kind Yeah And I'm not guaranteeing these won't change again, but that the K came from the fact that it's a higher-kinded semi-group. It's one And another one is that we took the I don't the the one on the right on the bottom the the disjunction that we Renamed an X or which is for an exclusive or and then we renamed the other one which people haven't seen as much which is pronounced these Which is an inclusive or so, you know if you guys are probably familiar with the exclusive or that says either everything's either a Right or a left The these which is the inclusive or is everything is a right or a left or both Oh my slug got broken so validation became validated was the other one So talking a little more about the data types we have we have the one and which cult talked about One and being a way of making a non-empty something So if you have a one end of list it's a non-empty list a one end of vectors a non-empty vector You can make non-empty sets. You can make non-empty streams. We don't have a non-empty list that stands alone from the one And we don't have a separate one a non-empty list structure right now that definitely could change The one of the motivations to having a non-empty list Which is separate from the one-end type classes. There are a lot of useful methods that you can put on to a non-empty list Which are specific to lists? Which don't necessarily fit on the one end, which is too generic. We've got I think I've managed to get more Methods on one end to make it more useful than one in Scala Zed, but it's clearly there's we could do better So we talked about XOR and IR which is exclusive or an inclusive or before and the XOR does have a monad transformer now as well The validated type class is just like validation like it just like validation just that we've named it renamed it From validation to validated and we renamed the constructors from success and failure to valid and invalid and people seem to like that We do have Clisly now Which is a reader T or a reader monad And that's about all we've got in there for data structures right now. I'm probably missing a couple. There's constant stuff But but we plan on adding more. This is you know, this is just as far as we've gotten so far There are soothed there are few that are missing that are that are notoriously missing like ones that we really really want And we're really gonna miss a writer, which is you know someone similar, you know similar to a reader It's the it's left adjunct to a reader or something right left doesn't matter An RwST is a handy jam all the reader the writer the state all together in one big monad transformer So those are things that I'm sure will be coming. It's just a matter of someone's no one's written down and banged out in Implementation and made the pull request yet The next two tasks in process are kind of big ones You know task is a is kind of maybe the current Scala is that implementation of an IO Monad is one way to thinking of it. It's it's a way of modeling a computation which may perform side effects may succeed may fail It's one that I personally use all over the place anytime. I'm rating code I'm doing anything that might side effect or you know, then I'm gonna wrap it in a task And so my code is littered with tasks and right now task is in the Scala Z library And so we don't have a task in rotation task in Scala Z depends on the Scala Z Scala Z future implementation and it's a really hairy implementation and it's one that's Got some bugs on it and it's and So I think that we're gonna see a rewrite of task I think there's one already in is no, there's not one in Scala Z yet, but Right I was just gonna ask you like I mean Well, it's so it's it's I don't know I don't care necessarily does it have to live in cats or to have to live a separate thing But I yeah, I don't know Could be it's just that you know when when the people so none of us, you know I know that Travis has fooled around with putting cats into a library And people have said okay, I ported my toy project from Scala Z to cats Most of us were developing cats aren't like going in my day job and being like okay guys It's cats now, you know and one of the reasons the thing that's gonna stop me from being able to do that is task Like I just need task to operate and and task is tied to Scala Z now like you know You know internally the it's a it's a disjunction and stuff like that and so That's that's been talked about there's a there's a big issue about in the Scala Z stream issues tracker right now about One of the things that Paul Chiasano said he might want to do is to pull task back into Scala Z stream So they have control over it like Daniel saying like we need to fix the bugs ourselves And you don't want to tie they don't want to tie Scala Z stream doesn't want to necessarily tie itself to the Scala Z release cycle Yeah, absolutely Yeah, and I think Paul has talked about even yet pulling it away from Scala Z and maybe renaming it and stuff like that And you know another thing that we and I think we're gonna see more of that like for instance Mike Pilquist also has the S codec project which is a fantastic project and if you're doing any kind of binary serialization You should check out as codec and it's streaming alternative. Yeah, it's it's just so pleasant to work with You know what we say a lot at work is like the highest The highest compliment you can give any libraries like it's a very reasonable library to work with Yeah, and so when this all came up in the whole I think Colts called it the switcheroo or something When the whole switcheroo came up Mike Pilquist did what I think we're gonna see some other libraries to do is to say I'm just gonna pull back. I'm gonna implement my own monad and I don't need much from Scala Z or cats I don't want to pick a winner So maybe we'll see that happen with process and task and those but my point is just that those are the kind of Things that need to happen before I can wholeheartedly switch to cats because I can't operate without task And I'm starting to right now process is the big hammer.  Yeah Yeah, probably yeah And hopefully even better soon So some things are out of scope for cats we've decided and these are things that were added to these are data structures that were added to Scala Z along the way and their stuff. That's not they're super useful and well sometimes they're maybe you could You know, maybe some of these are questionably useful. I list for example is just a list It's just a re-implementation of lists. That's trying to be a little better It's the list that we wish was in the standard library the things that we like about it better are that You should entertain yourself sometime by looking up Rob Norris's tea pole cats diagram of all of the things that a list inherits from in the super type hierarchy and it's like a Huge page was like 30 things on it. You're like wow. I knew it was a lot, but that's 35 super classes. Yeah, so Another thing is that I list the I and I list comes from the fact that it's invariant and that's a Questionable thing, you know, there are reasons why it's nice to have a list that's that's covariant and there but it can cause some problems So one thing that list change I list changes is to make lists not invariant and then another thing that it does is it just gets rid of the stupid method that shouldn't be there like You know dot head you should only you should never if you're calling dot head you should you you know By convention you must anywhere you call dot head you must add a comment that says YOLO because You know Head option is the answer that you should be going so going down So there's also a maybe type in Scala Zed, which is just like option but again doesn't have the dot get method where you must put YOLO and And it's also invariant and then the next one down is I Had a co-worker who would that's that's Scala Zed's map and it's a it's a map the story as a tree But it's an immebable map structure very nice structure to work with Again doesn't have 35 supertypes and has a lot of the things that you said God. Why doesn't that map have that like? Why don't I have something? It's like Update and if it's not there at it if it is combine it with a semi-group That one lovingly referred to by a previous co-worker of mine as the dick arrow We're also missing finger tree and we have known Double-ended queue these kind of things are stuff We just decided this is not the business cats want to get into love to see some other library started up that says okay I want to do data structures right we just don't see that it's necessarily a strong relationship to to cats We had you know like I said before it's been fun to like kind of rethink some of the old ideas we had that you know Are just being able to think of you know new stuff that that we could try and we've had a couple that we've You know we've had a couple notable ones that we've tried and said you know that was a bad idea Let's forget it one thing it came up. We were come redoing disjunction We are coming up with our new exclusive or which went through about 25 different possible names for we could call it You know we could call it or we could call it either we could call it You know these things and then the the constructor names that could be the right and left it could be good and bad or good and evil You know And I think good and bad or good and evil are the ones that's galactic uses Is that right? It's good or bad or good and evil I don't remember and that's Bill Venner's library and he can't got in and started talking to us and made a really good case For trying to tell us that our exclusive or should be left biased, which was a really interesting discussion And so we actually considered Making it left bias so that it would be the the good values on the left and the errors on the right and that was one where My good friend Rob Norris over here sent me an instant message or an IRC's message saying hey Stu get over the Gats channel because I'm about to lay down in front of the bulldozer over this right bias And we ultimately decided that we really do need to stick with a right-based Exclusive or are just right biased in general another one that which which is yeah, go ahead Right Okay, yeah, I'll give you here's the here's the example that convinces me So Let's say When you when you talk about the monad instance, right? You're gonna write the monad instance on XOR of some maybe XOR where the errors are strings and And The the parameter we're leaving free is this one over here now. Let's talk about XOR T which is the monad transformer over some some monad and string is the error and Here is the thing I'm abstracting over and that like the Although we don't have this in Scala. We don't have type currying like we do in Haskell it does seem to Be easier to to to remember or think about where we have This parameter that were the one that were that were letting vary the one that we're keeping free is always the last one like this You know having having that thing stuck in the middle This this kind of this right yeah So I don't it just it just it just feels more natural than most of us I think and I you know so What's that? It is right So another one we we that I played around with and I actually have a working implementation of is using Trying to do some trickery some Maybe some nasty little things To try and have maybe just one some type It's an interesting idea. I don't think it's fully fleshed out, but something where you know we have these things like Validation which has a left value and a right value Success failure have you want to call it we haven't you know in either we have a disjunction we have you know All of these different things that have the exact same structure is that you know They're a product of two types And we talked about in the Scala Z talk how we have one of them which Operates monantically where you can only have one error and Things must be strictly sequenced and one that is works in an applicative manner where we can accumulate errors and we can you know one One computation doesn't depend on the result of another computation And so when you're using these things you might have to when you need one behavior versus the other switch from one type to another You know so another way you could do this perhaps is to have a Generic product of two things and then use tags or some other way or some nasty is instance of trick To be able to switch the behavior without necessarily causing another allocation But it's not one that we're really the idea to really didn't go anywhere All right any questions before we move on So one thing that we've tried to do is to modularize the the project a little more and this is something I'm not sure if it's this is one where there's gonna be some pushback on this But the idea is that we wanted to have a really tight small core so you could you know I think there's some people that had this this idea of like well I don't want to pull you that pull that whole huge scala Zed library into my pride I don't want that on my class path And I'm not sure that's that's a well-founded Idea, but we were trying to have just a really tiny core that had just the type classes that we needed to do Functional programming and try to not bring anything else into it and Then have we have the std the standard stuff, which is the type class instances for the standard library So for example in core is where you're gonna have something like Functor and in standards where you're gonna have something like list has a valid functor Or option has a valid functor So all the things you know all all of the type class instances for the stuff in the standard library would go there Then we have a separate project where we're just packaging the laws the laws which say things like Ammonoid has to be associative or Says that a functor when you map on the identity function, you don't change the original value So those kind of laws are stuck in there We'll talk about docs in a bit, but docs is the is a sub project where we're generating all the documentation for the project And that includes And that's you know, it's where that we generate the website from it's what generates the scala doc and stuff like that free We have a free monad implementation And we stuck it in a separate project called free and this is one the reason it's in its own project is I think that How many people here are like using the free monad and and are like writing interpreters for free algebras and doing that fun Stuff that runar likes to talk about if you're not you should try and do it It's a fun exercise and it's really worth it. We're starting to do it everywhere but you know this this idea of of using free in order to You know model your domain and then we're able to write interpreters that perform the the actual Nasty IO and stuff that it needs to do your actual business It's an idea that's really hot in the FP scala world right now And I think you know like scholars that stream where you know, you need we need want to iterate those things Separately from scala said we think that this Free because it's becoming so hot and we're having new ideas about it And there's lots of ways that things could be better as far as being more efficient when you're doing this Maybe not so efficient way of computation that we want to keep that so it can iterate a little bit separately But the last one on my list state that is an artifact of why maybe this modularization is not a good idea because What has happened is that we've you know, we've we had that we started with this this this idea of grandeur We'll make everything very modular and very small and and and just you know interdependencies between them But then we realize right away like we used to have a separate data project where we had things like and are exclusive or type and are You know all of the you know the that's where the Clisly lives and this and that but then we very quickly said all right. I actually need some of that stuff in core So now we had to pull that stuff into core and now we have a problem in core where? anyone who's done a lot of pure functional programming in and scala has realized eventually you probably need a trampoline because You know you can't do monadic computation for example in a stack safe way in scala without using something like trampolines And since the most you know common commonly We'll see and what is done in scala is that as a trampolines are are built on top of a free monad So because trampolines are based on free we don't get used in free is in its own project We don't get to use trampolines in core, which is a bit of an issue And now because state being that monadic computation that you can't do in a stack safe way needs a trampoline Now we have this extra state project, which we've only had since like Wednesday Which depend which is his own project only because it depends on free and in core Doesn't need to be that trampoline could be your monad you're operating over but Clisly is very useful without I'm sure Okay, so There are any questions. I'm gonna I was gonna run through really quickly one One one one very specific example. I thought was really interesting that came out of you know actually forget it I'm gonna skip that one So we're running longer on time than we thought All right, I want to I was gonna start to talk about some of the so Some of the other cool things that it happened Because we were starting this product project fresh is that we were able to make use of some of the some some cool new Technology and scala that which is making our lives a lot easier I just wanted to highlight some of them some of them are super fun and things that you should be checking out for your Own project the first one I threw some slides in just because Colt told me I had to in his talk Which is about kind projector So the idea behind kind of director It's a it's it's a it's a compiler plugin that's been around for a long time And I don't some reason just just now we got it into scala Zed like a couple months ago and we're using it in Cats it's the one that lets you get rid of if you look at The the second line there so so the idea here is the first line we want to write We want to use some monad for our exclusive or type. That's our disjunction But we can't do that because it's in the wrong shape monad wants you to be Defined for some type class that looks like this. It's got one hole, but XOR has two right It's got an error and a success type. So it's the wrong shape. So that does that first one doesn't work It doesn't compile You've probably seen if you played around with scala Zed very For a while you've seen the second one which is called a type lambda and the idea is it does some this is like Something if someone figured out you could do Not like a planned feature, but it's just it's defining if you look at it and you try to break this down It's really not that bad once you understand what's going on. It's like You're defining an anonymous structure It's got a single type alias in it and that type alias has the right shape Because we fixed this one So now we have this type alias will pull it out of there and that's the thing that we're doing So what we've done is we've just we've taken two holes when we filled one with string there You can get around this by defining your type alias Just defining a type alias here. I have a string error, which now string error is in the right shape. So this works Now why wouldn't you just do that all the time? You typically do but there are situations like the very last one where we need to refer to this is a scary type Signature that comes out of the cats library that we need and I don't want to tell you what it does but the thing I want you to The thing I want you to understand is the reason I can't do this trick to simplify Where I define a type alias and just use a type alias is that this type where I need the hole is defined in saw earlier in in the In the method definition so I don't have no place to define the type alias So I have to do it here So this used to be that big scary type lambda But now I get to where the whole thing and just just say What the kind projector plug and lets you do is just say stick the question mark where you want the hole to be and then we get to you know It Yeah Okay, another one since we're running short on time is discipline. That's what we use for our law checking I didn't talk much about laws. I thought what I'm going to talk about laws a lot It's a super nice plug-in that lets you write the law. So a lot of these things like functor There a lot of these concepts to come from category theory that becomes so useful because they're so general and what they let let us do is to You know manipulate our programs algebraically And what I mean by that is just think of you know think of when you have an algebra problem like 2x equals Ten like I can figure out what x is because I can manipulate this algebraically This is what we learned in algebra as I learned that since these things follow certain laws I can just apply things and say it like take the x over here put the two and put it over here and just you know Software x I want to be able to do the same thing with my code and see things like I have a map I have you know f a map f map g. I know I can change that into f a map G compose f And I can do that only because these things are following laws So for instance, I'm you know, I'm defining that law down here that says that f a map f then map g is the same as Mapping over just a composite function So we have some nice thing that discipline is a nice Library let's me just write my laws like that and then run scholar check to check that my list moan hat is actually Behaving correctly this one simulacrum is one that I'm super excited about It's another one from my quipil quest who I've mentioned several times What it tries to do is try to standardize how we deal with type classes and type class instances in order to eliminate a lot of boilerplate, so Here is how you might define a semi-group This is how it's defined in cats is that we just say that a semi-group just has a single method called combine Just takes two a's combine them to a single single a All we're going to do is we're going to add Just this annotations to say that By the way, semi-group is also a type class And then what simulacrum is going to do is generate all this code for us all this boilerplatey code And there's not much of interest here, which is another reason why you don't want to write it yourself But there's a couple things that it lets us do which are super handy. We want to do all the time for example In the first thing here what I'm doing is I've called semi-group int And that's calling an apply method that's been added by simulacrum Which lets me conjure up a semi-group for int if one is in implicit scope and then just call the method on And I don't have to write that apply method on some Object called semi-group that just comes for free just by putting that type class annotation Another is that I get this syntax like in and how I've gotten that it's just if you go back to my definition You see that I just put the op This thing is an operator, which I want you to have a type alias I'm sorry a and a method alias for to say you can call that with pipe plus pipe And that just all of a sudden works and that works by adding lots of implicit for you stuff that you don't have to Write yourself, but you get this handy syntax And so that's simulacrum moving fast because we're running out of time one huge thing that That I my favorite part of the entire cats project and if you look I'm someone who likes to do is pretty good at Making you think I know what I'm talking about But really all I do on these projects like Scala Zed and one of the top committers cats in the top committer All I'm doing is actually just writing documentation I don't actually run any of the code So I'm super excited about this stuff Art our documentation for cats is first of all, yeah, I think it's good. I do say so myself but it's it's compiler verified and that's done with a SPT plugin from Rob over there called tut and what it lets you do is it lets you write some Markdown in your readme's that have These code blocks that are labeled by tut they're referred to did you make up the term touch heads? They're called touch heads Okay, so what it lets me do is in my documentation in my markdown. I get to have a touch head that has some code Right, what happens is the tut actually runs a compile time and converts it into a repel session so what it actually does is fires up a repel and shoves your code into the repel and Replaces your markdown with now a Scala shed, which has the exact Running your your your documentation through a repel and when so what the result is is that if we change some code in cats in Our examples are written documentation aren't right anymore. It fails the build So we have to fix the documentation when we fix So