1535:
586:. While universal data types are comparable to tagged unions in their formal definition, typical tagged unions include a relatively small number of cases, and these cases form different ways of expressing a single coherent concept, such as a data structure node or instruction. Also, there is an expectation that every possible case of a tagged union will be dealt with when it is used. The values of a universal data type are not related and there is no feasible way to deal with them all.
1382:
1141:
889:
1147:
924:
680:
1377:{\displaystyle {\text{join}}\colon ((A+E)+E)\to (A+E)=a\mapsto {\begin{cases}{\text{err}}\,e&{\mbox{if}}\ a={\text{err}}\,e\\{\text{err}}\,e&{\text{if}}\ a={\text{value}}\,{\text{(err}}\,e\,{\text{)}}\\{\text{value}}\,a'&{\text{if}}\ a={\text{value}}\,{\text{(value}}\,a'\,{\text{)}}\end{cases}}}
1445:
This is a tagged union with two cases: one, the leaf, is used to terminate a path of the tree, and functions much like a null value would in imperative languages. The other branch holds a node, which contains an integer and a left and right subtree. Leaf and Node are the constructors, which enable us
78:
field explicitly indicates which type is in use. It can be thought of as a type that has several "cases", each of which should be handled correctly when that type is manipulated. This is critical in defining recursive datatypes, in which some component of a value may have the same type as that value,
530:
The primary advantage of a tagged union over an untagged union is that all accesses are safe, and the compiler can even check that all cases are handled. Untagged unions depend on program logic to correctly identify the currently active field, which may result in strange behavior and hard-to-find
2463:
As long as the union fields are only accessed through the functions, the accesses will be safe and correct. The same approach can be used for encoded tags; we simply decode the tag and then check it on each access. If the inefficiency of these tag checks is a concern, they may be automatically
546:
The main disadvantage of tagged unions is that the tag occupies space. Since there are usually a small number of alternatives, the tag can often be squeezed into 2 or 3 bits wherever space can be found, but sometimes even these bits are not available. In this case, a helpful alternative may be
6524:. It can be extended by creating further subclasses of the same base type, which could not be handled correctly under a tag/dispatch model. Hence, it is usually not possible to do case analysis or dispatch on a subobject's 'tag' as one would for tagged unions. Some languages such as
1136:{\displaystyle {\text{fmap}}\colon (A\to B)\to \left(\left(A+E\right)\to \left(B+E\right)\right)=f\mapsto a\mapsto {\begin{cases}{\text{err}}\,e&{\text{if}}\ a={\text{err}}\,e\\{\text{value}}\,{\text{(}}\,f\,a'\,{\text{)}}&{\text{if}}\ a={\text{value}}\,a'\end{cases}}}
538:
containing a field for each type is that it saves storage by overlapping storage for all the types. Some implementations reserve enough storage for the largest type, while others dynamically adjust the size of a tagged union value as needed. When the value is
884:{\displaystyle {\text{bind}}\colon \left(A+E\right)\to \left(A\to \left(B+E\right)\right)\to \left(B+E\right)=a\mapsto f\mapsto {\begin{cases}{\text{err}}\,e&{\text{if}}\ a={\text{err}}\,e\\f\,a'&{\text{if}}\ a={\text{value}}\,a'\end{cases}}}
433:
674:
574:
Sometimes, untagged unions are used to perform bit-level conversions between types, called reinterpret casts in C++. Tagged unions are not intended for this purpose; typically a new value is assigned whenever the tag is changed.
2502:
Unfortunately, C compilers do not verify that the null case is always handled. This is a particularly common source of errors in C code, since there is a tendency to ignore exceptional cases.
582:, which is a type that includes every value of every other type, and often a way is provided to test the actual type of a value of the universal type. These are sometimes referred to as
453:
348:
323:
477:. It corresponds to a set of nullary constructors and may be implemented as a simple tag variable, since it holds no additional data besides the value of the tag.
131:, and are much safer than untagged unions, often simply called unions, which are similar but do not explicitly track which member of a union is currently in use.
1770:(from the 1990s) give a central role to tagged unions and have the power to check that all cases are handled. Some other languages also support tagged unions.
611:
601:, and their occurrence is not consistently checked: this is a fairly common source of programming errors. This use of tagged unions can be formalized as a
119:
can verify that all cases of a tagged union are always handled, avoiding many types of errors. Compile-time checked sum types are also extensively used in
146:. A constructor is a function or an expression that produces a value of the tagged union type, given a tag and a value of the corresponding type.
6509:
pointer in most C++ implementations) identifies the subclass and so effectively acts as a tag identifying the data stored by the instance (see
3940:
can be used to emulate pattern matching or to create syntactic sugar for declaring object variants, seen here as implemented by the package
74:
used to hold a value that could take on several different, but fixed, types. Only one of the types can be in use at any one time, and a
6870:
6514:
139:
515:
7241:
6875:
597:, tagged unions are sometimes used to handle the occurrence of exceptional results. Often these tags are folded into the type as
6865:
6860:
6848:
6749:
1534:
2162:, a tagged union can be created from untagged unions using a strict access discipline where the tag is always checked:
7026:
2536:
demonstrated it was possible to implement a safe tagged union as a library in C++, visitable using function objects.
1792:
in Ada), and require the tag field to be manually created and the tag values specified, as in this Pascal example:
559:, where the tag value is dynamically computed from the contents of the union field. Common examples are the use of
6999:
463:
87:, tagged unions can save storage by overlapping storage areas for each type, since only one is in use at a time.
3525:
Because the defined cases are exhaustive, the compiler can check that all cases are handled in a pattern match:
7116:
6921:
6853:
6815:
3371:
2511:
2468:
602:
493:
3018:
Because the class hierarchy is sealed, the compiler can check that all cases are handled in a pattern match:
1773:
6646:
7016:
6946:
6794:
6525:
5094:
2840:
2526:
143:
17:
7271:
6906:
6498:
4636:
2518:
120:
6894:
3804:
1777:
1542:
Now we can easily write a typesafe function that, for example, counts the number of nodes in the tree:
7204:
7156:
7068:
7046:
7041:
6969:
6835:
6789:
1763:
535:
270:
100:
6660:
5943:
introduces support for typing annotations that can be used to define a tagged union type (PEP-593):
1218:
1025:
791:
563:, where, for example, a function returning a positive number may return -1 to indicate failure, and
7078:
6742:
6721:
3937:
2155:
7231:
7146:
221:
6618:
6974:
6830:
6784:
1759:
96:
6594:
4325:
Enums are added in Scala 3, allowing us to rewrite the earlier Scala examples more concisely:
428:{\displaystyle {\mathsf {case}}\ e\ {\mathsf {of}}\ x\Rightarrow e_{1}\mid y\Rightarrow e_{2}}
6964:
6939:
2533:
481:
80:
175:. If an element lies in both, there will be two effectively distinct copies of the value in
7297:
6766:
6521:
6506:
456:
438:
308:
128:
27:
Data structure used to hold a value that could take on several different, but fixed, types
8:
7292:
7236:
7214:
7141:
6994:
6986:
6735:
459:
135:
112:
6501:, each subclass can encapsulate data unique to that class. The metadata used to perform
2467:
C and C++ also have language support for one particular tagged union: the possibly-null
7219:
7199:
7151:
7126:
6911:
6880:
6717:
6546:
594:
203:
5067:
Rust's error handling model relies extensively on these tagged unions, especially the
669:{\displaystyle {\text{return}}\colon A\to \left(A+E\right)=a\mapsto {\text{value}}\,a}
7106:
7036:
7011:
6825:
6820:
6632:
6528:
allow base classes to be "sealed", and unify tagged unions with sealed base classes.
83:, where it is necessary to distinguish multi-node subtrees and leaves. Like ordinary
7251:
7136:
6934:
540:
266:
31:
7256:
7121:
7073:
7006:
6566:
6494:
906:
is the type of error conditions. Alternately, the same monad may be described by
512:
501:
489:
485:
470:
6580:
6026:
7209:
7031:
7021:
6929:
6711:
6502:
2480:
568:
564:
505:
151:
71:
56:
7286:
7131:
6537:
5097:
also has substantial support for tagged unions via enumerations. For example:
6684:
5940:
7063:
2491:
207:
3941:
7266:
7261:
7111:
7058:
6885:
6517:
sets this tag, and it remains constant throughout the object's lifetime.
1393:
590:
195:
7171:
7166:
7083:
7051:
6956:
6899:
5435:
1396:
of integers. In ML, we would do this by creating a datatype like this:
497:
84:
3807:
has object variants similar in declaration to those in Pascal and Ada:
7246:
7224:
7181:
7176:
6843:
6799:
6758:
474:
66:
4639:
has extensive support for tagged unions, called enums. For example:
7161:
1781:
1650:
579:
519:
116:
518:. The tag of the tagged union can be seen as the simplest kind of
6022:
1767:
104:
894:
where "value" and "err" are the constructors of the union type,
159:, usually written using +. Given an element of a disjoint union
543:, it is simple to allocate just as much storage as is needed.
6727:
6541:
2159:
6779:
6661:"Enumerations — The Swift Programming Language (Swift 5.4)"
6510:
3589:
2522:
1370:
1129:
877:
508:, are usually implemented using some sort of tagged union.
480:
Many programming techniques and data structures, including
5438:
it is also possible to create tagged unions. For example:
3106:
Scala's case classes also permit reuse through subtyping:
6774:
2149:-- discriminant is not the expected one, raises an error.
2143:-- Any attempt to access a member which existence depends
134:
Tagged unions are often accompanied by the concept of a
6685:"PEP 593 -- Flexible function and variable annotations"
1663:
construct is used to determine which field is tagged:
1233:
534:
The primary advantage of a tagged union over a simple
6488:
2483:: a tagged union (with an encoded tag) of two types:
1150:
927:
683:
614:
441:
351:
311:
2514:, has extensive built-in support for tagged unions.
2146:-- on a certain value of the discriminant, while the
473:
can be seen as a degenerate case: a tagged union of
167:, it is possible to determine whether it came from
511:A tagged union can be seen as the simplest kind of
1376:
1135:
883:
668:
447:
427:
317:
127:. They can, however, be constructed in nearly any
6581:"Using Enums - Haxe - The Cross-platform Toolkit"
7284:
3671:These can be matched using a switch expression:
1446:to actually produce a particular tree, such as:
265:The elimination form is case analysis, known as
79:for example in defining a type for representing
1639:
525:
6520:Nevertheless, a class hierarchy involves true
6743:
6441:// The !sizeof(T) expression is always false
149:Mathematically, tagged unions correspond to
6540:, the type tag for discriminated unions in
1538:The tree produced by the above constructors
210:. Notations vary, but usually the sum type
6750:
6736:
6619:"Scala 3 Language Reference: Enumerations"
2676:"It's a string, with value "
578:Many languages support, to some extent, a
1361:
1352:
1346:
1316:
1301:
1297:
1291:
1266:
1253:
1226:
1117:
1090:
1081:
1077:
1071:
1058:
1033:
865:
835:
824:
799:
662:
138:, which is similar but not the same as a
6720:is an implementation of variant type in
2604:"It's an int, with value "
14:
7285:
2529:languages also work as tagged unions.
2498:, indicating an exceptional condition.
2479:type in Haskell, and can be seen as a
382:
379:
363:
360:
357:
354:
6731:
6714:is a C++ typesafe discriminated union
3787:"Color had a red value of "
3592:'s enums also work as tagged unions:
6483:std::visit(Transverser{}, forest);*/
3584:"top level node is a leaf"
3566:"top level node value: %i"
3095:"top level node is a leaf"
1754:
95:Tagged unions are most important in
6465:"non-exhaustive visitor!"
4706:It also allows matching on unions:
220:comes with two introduction forms (
24:
6505:lookup (for example, the object's
6489:Class hierarchies as tagged unions
3068:"top level node value: "
2510:One advanced dialect of C, called
1533:
25:
7309:
6705:
1531:which corresponds to this tree:
6633:"The Rust Programming Language"
1657:, the tag is implicit, and the
6757:
6677:
6653:
6639:
6625:
6611:
6587:
6573:
6559:
2471:. This may be compared to the
2464:removed in the final version.
1740:c): print(("compl:", c)), (
1736:i): print(("int:", i)), (
1732:r): print(("real:", r)), (
1210:
1201:
1189:
1186:
1183:
1174:
1162:
1159:
1017:
1011:
978:
951:
948:
942:
936:
910:and two additional functions,
783:
777:
749:
722:
711:
654:
626:
605:with the following functions:
494:arbitrary-precision arithmetic
455:. The sum type corresponds to
412:
393:
90:
13:
1:
6816:Arbitrary-precision or bignum
6552:
2532:The variant library from the
198:, a tagged union is called a
6025:introduces std::variant and
1744:s): print(("string:", s))
1640:Timeline of language support
526:Advantages and disadvantages
345:respectively, then the term
7:
6531:
6499:object-oriented programming
3727:"Color was green"
1653:, tagged unions are called
1387:
902:are valid result types and
464:Curry–Howard correspondence
10:
7314:
3748:"Color was blue"
3374:has discriminated unions:
2494:type with only one value,
531:bugs if that logic fails.
7190:
7157:Strongly typed identifier
7099:
6985:
6955:
6920:
6808:
6765:
3706:"Color was red"
1964:and this Ada equivalent:
1720:n := "1234";
1392:Say we wanted to build a
6567:"Cyclone: Tagged Unions"
6030:
5945:
5440:
5099:
4708:
4641:
4327:
4320:
3946:
3809:
3673:
3594:
3527:
3376:
3108:
3020:
2845:
2538:
2505:
2164:
1966:
1794:
1644:
1544:
1448:
1398:
123:, where they are called
107:, where they are called
7232:Parametric polymorphism
2808:"hello world"
5083:type, which is either
5071:type, which is either
2517:The enum types in the
1760:Functional programming
1539:
1378:
1137:
885:
670:
449:
429:
325:under the assumptions
319:
97:functional programming
1766:(from the 1970s) and
1537:
1379:
1138:
886:
671:
567:, most often used in
504:, and other kinds of
450:
448:{\displaystyle \tau }
430:
320:
318:{\displaystyle \tau }
6522:subtype polymorphism
6480:/*Tree forest = ...;
1148:
925:
681:
612:
439:
349:
309:
202:. Sum types are the
157:discriminated unions
129:programming language
7237:Primitive data type
7142:Recursive data type
6995:Algebraic data type
6871:Quadruple precision
2534:Boost C++ Libraries
580:universal data type
460:logical disjunction
113:algebraic data type
52:discriminated union
7200:Abstract data type
6881:Extended precision
6840:Reduced precision
6583:. Haxe Foundation.
6547:Variant type (COM)
5966:'Currency'
5081:Result<T, E>
2843:has case classes:
2475:type in ML or the
1790:discriminated type
1762:languages such as
1697:Usage example for
1540:
1374:
1369:
1237:
1133:
1128:
881:
876:
666:
595:exception handling
445:
425:
315:
99:languages such as
7280:
7279:
7012:Associative array
6876:Octuple precision
6647:"Rust By Example"
6621:. The Scala Team.
5975:'dollars'
1755:1970s & 1980s
1748:print(("?:", n))
1365:
1350:
1344:
1334:
1330:
1314:
1305:
1295:
1289:
1279:
1275:
1264:
1251:
1241:
1236:
1224:
1154:
1115:
1105:
1101:
1094:
1075:
1069:
1056:
1046:
1042:
1031:
931:
863:
853:
849:
822:
812:
808:
797:
687:
660:
618:
389:
376:
370:
16:(Redirected from
7305:
7252:Type constructor
7137:Opaque data type
7069:Record or Struct
6866:Double precision
6861:Single precision
6752:
6745:
6738:
6729:
6728:
6699:
6698:
6696:
6695:
6681:
6675:
6674:
6672:
6671:
6657:
6651:
6650:
6643:
6637:
6636:
6629:
6623:
6622:
6615:
6609:
6608:
6606:
6605:
6591:
6585:
6584:
6577:
6571:
6570:
6563:
6484:
6481:
6478:
6475:
6472:
6469:
6466:
6463:
6460:
6457:
6454:
6451:
6448:
6445:
6442:
6439:
6436:
6433:
6430:
6427:
6424:
6421:
6418:
6415:
6412:
6409:
6406:
6403:
6400:
6397:
6394:
6391:
6388:
6385:
6382:
6379:
6376:
6373:
6370:
6367:
6364:
6361:
6358:
6355:
6352:
6349:
6346:
6343:
6340:
6337:
6334:
6331:
6328:
6325:
6322:
6319:
6316:
6313:
6310:
6307:
6304:
6301:
6298:
6295:
6292:
6289:
6286:
6283:
6280:
6277:
6274:
6271:
6268:
6265:
6262:
6259:
6256:
6253:
6250:
6247:
6244:
6241:
6238:
6235:
6232:
6229:
6226:
6223:
6220:
6217:
6214:
6211:
6208:
6205:
6202:
6199:
6196:
6193:
6190:
6187:
6184:
6181:
6178:
6175:
6172:
6169:
6166:
6163:
6160:
6157:
6154:
6151:
6148:
6145:
6142:
6139:
6136:
6133:
6130:
6127:
6124:
6121:
6118:
6115:
6112:
6109:
6106:
6103:
6100:
6097:
6094:
6091:
6088:
6085:
6082:
6079:
6076:
6073:
6070:
6067:
6064:
6061:
6058:
6055:
6052:
6049:
6046:
6043:
6040:
6037:
6034:
6018:
6015:
6012:
6009:
6006:
6003:
6000:
5997:
5994:
5991:
5988:
5987:'pounds'
5985:
5982:
5979:
5976:
5973:
5970:
5967:
5964:
5961:
5958:
5955:
5952:
5949:
5936:
5933:
5930:
5927:
5924:
5921:
5918:
5915:
5912:
5909:
5906:
5903:
5900:
5897:
5894:
5891:
5888:
5885:
5882:
5879:
5876:
5873:
5870:
5867:
5864:
5863:"node"
5861:
5858:
5855:
5852:
5851:"leaf"
5849:
5846:
5843:
5840:
5837:
5834:
5831:
5828:
5825:
5822:
5819:
5816:
5813:
5810:
5807:
5804:
5801:
5798:
5795:
5792:
5789:
5788:"leaf"
5786:
5783:
5780:
5777:
5774:
5771:
5768:
5767:"leaf"
5765:
5762:
5759:
5756:
5753:
5750:
5747:
5744:
5741:
5738:
5735:
5734:"node"
5732:
5729:
5726:
5723:
5720:
5717:
5714:
5713:"leaf"
5711:
5708:
5705:
5702:
5699:
5696:
5693:
5690:
5687:
5684:
5681:
5680:"node"
5678:
5675:
5672:
5669:
5666:
5663:
5660:
5657:
5656:"leaf"
5654:
5651:
5648:
5645:
5642:
5639:
5636:
5635:"leaf"
5633:
5630:
5627:
5624:
5621:
5618:
5615:
5612:
5609:
5606:
5603:
5602:"node"
5600:
5597:
5594:
5591:
5588:
5585:
5582:
5579:
5576:
5573:
5570:
5569:"node"
5567:
5564:
5561:
5558:
5555:
5552:
5549:
5546:
5543:
5540:
5537:
5534:
5531:
5528:
5525:
5522:
5519:
5516:
5513:
5510:
5507:
5504:
5501:
5498:
5495:
5492:
5489:
5486:
5483:
5482:"node"
5480:
5477:
5474:
5471:
5468:
5465:
5462:
5459:
5458:"leaf"
5456:
5453:
5450:
5447:
5444:
5430:
5427:
5424:
5421:
5418:
5415:
5412:
5409:
5406:
5403:
5400:
5397:
5394:
5391:
5388:
5385:
5382:
5379:
5376:
5373:
5370:
5367:
5364:
5361:
5358:
5355:
5352:
5349:
5346:
5343:
5340:
5337:
5334:
5331:
5328:
5325:
5322:
5319:
5316:
5313:
5310:
5307:
5304:
5301:
5298:
5295:
5292:
5289:
5286:
5283:
5280:
5277:
5274:
5271:
5268:
5265:
5262:
5259:
5256:
5253:
5250:
5247:
5244:
5241:
5238:
5235:
5232:
5229:
5226:
5223:
5220:
5217:
5214:
5211:
5208:
5205:
5202:
5199:
5196:
5193:
5190:
5187:
5184:
5181:
5178:
5175:
5172:
5169:
5166:
5163:
5160:
5157:
5154:
5151:
5148:
5145:
5142:
5139:
5136:
5133:
5130:
5127:
5124:
5121:
5118:
5115:
5112:
5109:
5106:
5103:
5090:
5086:
5082:
5078:
5074:
5070:
5063:
5060:
5057:
5054:
5051:
5048:
5045:
5042:
5039:
5036:
5033:
5030:
5027:
5023:
5020:
5017:
5014:
5011:
5008:
5005:
5002:
4999:
4996:
4993:
4990:
4987:
4984:
4981:
4978:
4975:
4972:
4969:
4966:
4963:
4960:
4957:
4953:
4950:
4947:
4944:
4941:
4938:
4934:
4931:
4927:
4924:
4921:
4918:
4915:
4912:
4909:
4905:
4902:
4899:
4895:
4892:
4889:
4885:
4882:
4879:
4875:
4872:
4869:
4866:
4863:
4859:
4856:
4853:
4849:
4846:
4843:
4839:
4836:
4833:
4829:
4826:
4823:
4820:
4817:
4813:
4810:
4807:
4803:
4800:
4797:
4793:
4790:
4787:
4783:
4780:
4777:
4773:
4770:
4767:
4763:
4760:
4757:
4754:
4751:
4747:
4744:
4741:
4737:
4734:
4731:
4728:
4725:
4721:
4718:
4715:
4712:
4702:
4699:
4696:
4693:
4690:
4687:
4684:
4681:
4678:
4675:
4672:
4669:
4666:
4663:
4660:
4657:
4654:
4651:
4648:
4645:
4631:
4628:
4625:
4622:
4619:
4616:
4613:
4610:
4607:
4604:
4601:
4598:
4595:
4592:
4589:
4586:
4583:
4580:
4577:
4574:
4571:
4568:
4565:
4562:
4559:
4556:
4553:
4550:
4547:
4544:
4541:
4538:
4535:
4532:
4529:
4526:
4523:
4520:
4517:
4514:
4511:
4508:
4505:
4502:
4499:
4496:
4493:
4490:
4487:
4484:
4481:
4478:
4475:
4472:
4469:
4466:
4463:
4460:
4457:
4454:
4451:
4448:
4445:
4442:
4439:
4436:
4433:
4430:
4427:
4424:
4421:
4418:
4415:
4412:
4409:
4406:
4403:
4400:
4397:
4394:
4391:
4388:
4385:
4382:
4379:
4376:
4373:
4370:
4367:
4364:
4361:
4358:
4355:
4352:
4349:
4346:
4343:
4340:
4337:
4334:
4331:
4316:
4313:
4310:
4307:
4304:
4301:
4298:
4295:
4292:
4289:
4286:
4283:
4280:
4277:
4274:
4271:
4268:
4265:
4262:
4259:
4256:
4253:
4250:
4247:
4244:
4241:
4238:
4235:
4232:
4229:
4226:
4223:
4220:
4217:
4214:
4211:
4208:
4205:
4202:
4199:
4196:
4193:
4190:
4187:
4184:
4181:
4178:
4175:
4172:
4169:
4166:
4163:
4160:
4157:
4154:
4151:
4148:
4145:
4142:
4139:
4136:
4133:
4130:
4127:
4124:
4121:
4118:
4115:
4112:
4109:
4106:
4103:
4100:
4097:
4094:
4091:
4088:
4085:
4082:
4079:
4076:
4073:
4070:
4067:
4064:
4061:
4058:
4055:
4052:
4049:
4046:
4043:
4040:
4037:
4034:
4031:
4028:
4025:
4022:
4019:
4016:
4013:
4010:
4007:
4004:
4001:
3998:
3995:
3992:
3989:
3986:
3983:
3980:
3977:
3974:
3971:
3968:
3965:
3962:
3959:
3956:
3953:
3950:
3933:
3930:
3927:
3924:
3921:
3918:
3915:
3912:
3909:
3906:
3903:
3900:
3897:
3894:
3891:
3888:
3885:
3882:
3879:
3876:
3873:
3870:
3867:
3864:
3861:
3858:
3855:
3852:
3849:
3846:
3843:
3840:
3837:
3834:
3831:
3828:
3825:
3822:
3819:
3816:
3813:
3800:
3797:
3794:
3791:
3788:
3785:
3782:
3779:
3776:
3773:
3770:
3767:
3764:
3761:
3758:
3755:
3752:
3749:
3746:
3743:
3740:
3737:
3734:
3731:
3728:
3725:
3722:
3719:
3716:
3713:
3710:
3707:
3704:
3701:
3698:
3695:
3692:
3689:
3686:
3683:
3680:
3677:
3667:
3664:
3661:
3658:
3655:
3652:
3649:
3646:
3643:
3640:
3637:
3634:
3631:
3628:
3625:
3622:
3619:
3616:
3613:
3610:
3607:
3604:
3601:
3598:
3585:
3582:
3579:
3576:
3573:
3570:
3567:
3564:
3561:
3558:
3555:
3552:
3549:
3546:
3543:
3540:
3537:
3534:
3531:
3521:
3518:
3515:
3512:
3509:
3506:
3503:
3500:
3497:
3494:
3491:
3488:
3485:
3482:
3479:
3476:
3473:
3470:
3467:
3464:
3461:
3458:
3455:
3452:
3449:
3446:
3443:
3440:
3437:
3434:
3431:
3428:
3425:
3422:
3419:
3416:
3413:
3410:
3407:
3404:
3401:
3398:
3395:
3392:
3389:
3386:
3383:
3380:
3367:
3364:
3361:
3358:
3355:
3352:
3349:
3346:
3343:
3340:
3337:
3334:
3331:
3328:
3325:
3322:
3319:
3316:
3313:
3310:
3307:
3304:
3301:
3298:
3295:
3292:
3289:
3286:
3283:
3280:
3277:
3274:
3271:
3268:
3265:
3262:
3259:
3256:
3253:
3250:
3247:
3244:
3241:
3238:
3235:
3232:
3229:
3226:
3223:
3220:
3217:
3214:
3211:
3208:
3205:
3202:
3199:
3196:
3193:
3190:
3187:
3184:
3181:
3178:
3175:
3172:
3169:
3166:
3163:
3160:
3157:
3154:
3151:
3148:
3145:
3142:
3139:
3136:
3133:
3130:
3127:
3124:
3121:
3118:
3115:
3112:
3102:
3099:
3096:
3093:
3090:
3087:
3084:
3081:
3078:
3075:
3072:
3069:
3066:
3063:
3060:
3057:
3054:
3051:
3048:
3045:
3042:
3039:
3036:
3033:
3030:
3027:
3024:
3014:
3011:
3008:
3005:
3002:
2999:
2996:
2993:
2990:
2987:
2984:
2981:
2978:
2975:
2972:
2969:
2966:
2963:
2960:
2957:
2954:
2951:
2948:
2945:
2942:
2939:
2936:
2933:
2930:
2927:
2924:
2921:
2918:
2915:
2912:
2909:
2906:
2903:
2900:
2897:
2894:
2891:
2888:
2885:
2882:
2879:
2876:
2873:
2870:
2867:
2864:
2861:
2858:
2855:
2852:
2849:
2836:
2833:
2830:
2827:
2824:
2821:
2818:
2815:
2812:
2809:
2806:
2803:
2800:
2797:
2794:
2791:
2788:
2785:
2782:
2779:
2776:
2773:
2770:
2767:
2764:
2761:
2758:
2755:
2752:
2749:
2746:
2743:
2740:
2737:
2734:
2731:
2728:
2725:
2722:
2719:
2716:
2713:
2710:
2707:
2704:
2701:
2698:
2695:
2692:
2689:
2686:
2683:
2680:
2677:
2674:
2671:
2668:
2665:
2662:
2659:
2656:
2653:
2650:
2647:
2644:
2641:
2638:
2635:
2632:
2629:
2626:
2623:
2620:
2617:
2614:
2611:
2608:
2605:
2602:
2599:
2596:
2593:
2590:
2587:
2584:
2581:
2578:
2575:
2572:
2569:
2566:
2563:
2560:
2557:
2554:
2551:
2548:
2545:
2542:
2497:
2478:
2474:
2459:
2456:
2453:
2450:
2447:
2444:
2441:
2438:
2435:
2432:
2429:
2426:
2423:
2420:
2417:
2414:
2411:
2408:
2405:
2402:
2399:
2396:
2393:
2390:
2387:
2384:
2381:
2378:
2375:
2372:
2369:
2366:
2363:
2360:
2357:
2354:
2351:
2348:
2345:
2342:
2339:
2336:
2333:
2330:
2327:
2324:
2321:
2318:
2315:
2312:
2309:
2306:
2303:
2300:
2297:
2294:
2291:
2288:
2285:
2282:
2279:
2276:
2273:
2270:
2267:
2264:
2261:
2258:
2255:
2252:
2249:
2246:
2243:
2240:
2237:
2234:
2231:
2228:
2225:
2222:
2219:
2216:
2213:
2210:
2207:
2204:
2201:
2198:
2195:
2192:
2189:
2186:
2183:
2180:
2177:
2174:
2171:
2168:
2150:
2147:
2144:
2141:
2138:
2135:
2132:
2129:
2126:
2123:
2120:
2117:
2114:
2111:
2108:
2105:
2102:
2099:
2096:
2093:
2090:
2087:
2084:
2081:
2078:
2075:
2072:
2069:
2066:
2063:
2060:
2057:
2054:
2051:
2048:
2045:
2042:
2039:
2036:
2033:
2030:
2027:
2024:
2021:
2018:
2015:
2012:
2009:
2006:
2003:
2000:
1997:
1994:
1991:
1988:
1985:
1982:
1979:
1976:
1973:
1970:
1960:
1957:
1954:
1951:
1948:
1945:
1942:
1939:
1936:
1933:
1930:
1927:
1924:
1921:
1918:
1915:
1912:
1909:
1906:
1903:
1900:
1897:
1894:
1891:
1888:
1885:
1882:
1879:
1876:
1873:
1870:
1867:
1864:
1861:
1858:
1855:
1852:
1849:
1846:
1843:
1840:
1837:
1834:
1831:
1828:
1825:
1822:
1819:
1816:
1813:
1810:
1807:
1804:
1801:
1798:
1713:
1707:
1702:
1694:
1662:
1635:
1632:
1629:
1626:
1623:
1620:
1617:
1614:
1611:
1608:
1605:
1602:
1599:
1596:
1593:
1590:
1587:
1584:
1581:
1578:
1575:
1572:
1569:
1566:
1563:
1560:
1557:
1554:
1551:
1548:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1455:
1452:
1441:
1438:
1435:
1432:
1429:
1426:
1423:
1420:
1417:
1414:
1411:
1408:
1405:
1402:
1383:
1381:
1380:
1375:
1373:
1372:
1366:
1363:
1360:
1351:
1348:
1345:
1342:
1332:
1331:
1328:
1324:
1315:
1312:
1306:
1303:
1296:
1293:
1290:
1287:
1277:
1276:
1273:
1265:
1262:
1252:
1249:
1239:
1238:
1234:
1225:
1222:
1155:
1152:
1142:
1140:
1139:
1134:
1132:
1131:
1125:
1116:
1113:
1103:
1102:
1099:
1095:
1092:
1089:
1076:
1073:
1070:
1067:
1057:
1054:
1044:
1043:
1040:
1032:
1029:
1004:
1000:
999:
995:
977:
973:
932:
929:
890:
888:
887:
882:
880:
879:
873:
864:
861:
851:
850:
847:
843:
823:
820:
810:
809:
806:
798:
795:
770:
766:
748:
744:
743:
739:
710:
706:
688:
685:
675:
673:
672:
667:
661:
658:
647:
643:
619:
616:
454:
452:
451:
446:
434:
432:
431:
426:
424:
423:
405:
404:
387:
386:
385:
374:
368:
367:
366:
344:
334:
324:
322:
321:
316:
304:
295:
286:
276:
267:pattern matching
264:
262:
242:
219:
38:, also called a
32:computer science
21:
7313:
7312:
7308:
7307:
7306:
7304:
7303:
7302:
7283:
7282:
7281:
7276:
7257:Type conversion
7192:
7186:
7122:Enumerated type
7095:
6981:
6975:null-terminated
6951:
6916:
6804:
6761:
6756:
6708:
6703:
6702:
6693:
6691:
6683:
6682:
6678:
6669:
6667:
6659:
6658:
6654:
6645:
6644:
6640:
6631:
6630:
6626:
6617:
6616:
6612:
6603:
6601:
6593:
6592:
6588:
6579:
6578:
6574:
6565:
6564:
6560:
6555:
6534:
6513:). An object's
6495:class hierarchy
6491:
6486:
6485:
6482:
6479:
6476:
6473:
6470:
6467:
6464:
6461:
6458:
6455:
6452:
6449:
6446:
6443:
6440:
6437:
6434:
6431:
6428:
6425:
6422:
6419:
6416:
6413:
6410:
6407:
6404:
6401:
6398:
6395:
6392:
6389:
6386:
6383:
6380:
6377:
6374:
6371:
6368:
6365:
6362:
6359:
6356:
6353:
6350:
6347:
6344:
6341:
6338:
6335:
6332:
6329:
6326:
6323:
6320:
6317:
6314:
6311:
6308:
6305:
6302:
6299:
6296:
6293:
6290:
6287:
6284:
6281:
6278:
6275:
6272:
6269:
6266:
6263:
6260:
6257:
6254:
6251:
6248:
6245:
6242:
6239:
6236:
6233:
6230:
6227:
6224:
6221:
6218:
6215:
6212:
6209:
6206:
6203:
6200:
6197:
6194:
6191:
6188:
6185:
6182:
6179:
6176:
6173:
6170:
6167:
6164:
6161:
6158:
6155:
6152:
6149:
6146:
6143:
6140:
6137:
6134:
6131:
6128:
6125:
6122:
6119:
6116:
6113:
6110:
6107:
6104:
6101:
6098:
6095:
6092:
6089:
6086:
6083:
6080:
6077:
6074:
6071:
6068:
6065:
6062:
6059:
6056:
6053:
6050:
6047:
6044:
6041:
6038:
6035:
6032:
6020:
6019:
6016:
6013:
6010:
6007:
6004:
6001:
5998:
5995:
5992:
5989:
5986:
5983:
5980:
5977:
5974:
5971:
5968:
5965:
5962:
5959:
5956:
5953:
5950:
5947:
5938:
5937:
5934:
5931:
5928:
5925:
5922:
5919:
5916:
5913:
5910:
5907:
5904:
5901:
5898:
5895:
5892:
5889:
5886:
5883:
5880:
5877:
5874:
5871:
5868:
5865:
5862:
5859:
5856:
5853:
5850:
5847:
5844:
5841:
5838:
5835:
5832:
5829:
5826:
5823:
5820:
5817:
5814:
5811:
5808:
5805:
5802:
5799:
5796:
5793:
5790:
5787:
5784:
5781:
5778:
5775:
5772:
5769:
5766:
5763:
5760:
5757:
5754:
5751:
5748:
5745:
5742:
5739:
5736:
5733:
5730:
5727:
5724:
5721:
5718:
5715:
5712:
5709:
5706:
5703:
5700:
5697:
5694:
5691:
5688:
5685:
5682:
5679:
5676:
5673:
5670:
5667:
5664:
5661:
5658:
5655:
5652:
5649:
5646:
5643:
5640:
5637:
5634:
5631:
5628:
5625:
5622:
5619:
5616:
5613:
5610:
5607:
5604:
5601:
5598:
5595:
5592:
5589:
5586:
5583:
5580:
5577:
5574:
5571:
5568:
5565:
5562:
5559:
5556:
5553:
5550:
5547:
5544:
5541:
5538:
5535:
5532:
5529:
5526:
5523:
5520:
5517:
5514:
5511:
5508:
5505:
5502:
5499:
5496:
5493:
5490:
5487:
5484:
5481:
5478:
5475:
5472:
5469:
5466:
5463:
5460:
5457:
5454:
5451:
5448:
5445:
5442:
5432:
5431:
5428:
5425:
5422:
5419:
5416:
5413:
5410:
5407:
5404:
5401:
5398:
5395:
5392:
5389:
5386:
5383:
5380:
5377:
5374:
5371:
5368:
5365:
5362:
5359:
5356:
5353:
5350:
5347:
5344:
5341:
5338:
5335:
5332:
5329:
5326:
5323:
5320:
5317:
5314:
5311:
5308:
5305:
5302:
5299:
5296:
5293:
5290:
5287:
5284:
5281:
5278:
5275:
5272:
5269:
5266:
5263:
5260:
5257:
5254:
5251:
5248:
5245:
5242:
5239:
5236:
5233:
5230:
5227:
5224:
5221:
5218:
5215:
5212:
5209:
5206:
5203:
5200:
5197:
5194:
5191:
5188:
5185:
5182:
5179:
5176:
5173:
5170:
5167:
5164:
5161:
5158:
5155:
5152:
5149:
5146:
5143:
5140:
5137:
5134:
5131:
5128:
5125:
5122:
5119:
5116:
5113:
5110:
5107:
5104:
5101:
5088:
5084:
5080:
5076:
5072:
5069:Option<T>
5068:
5065:
5064:
5061:
5058:
5055:
5052:
5049:
5046:
5043:
5040:
5037:
5034:
5031:
5028:
5025:
5021:
5018:
5015:
5012:
5009:
5006:
5003:
5000:
4997:
4994:
4991:
4988:
4985:
4982:
4979:
4976:
4973:
4970:
4967:
4964:
4961:
4958:
4955:
4951:
4948:
4945:
4942:
4939:
4936:
4932:
4929:
4925:
4922:
4919:
4916:
4913:
4910:
4907:
4903:
4900:
4897:
4893:
4890:
4887:
4883:
4880:
4877:
4873:
4870:
4867:
4864:
4861:
4857:
4854:
4851:
4847:
4844:
4841:
4837:
4834:
4831:
4827:
4824:
4821:
4818:
4815:
4811:
4808:
4805:
4801:
4798:
4795:
4791:
4788:
4785:
4781:
4778:
4775:
4771:
4768:
4765:
4761:
4758:
4755:
4752:
4749:
4745:
4742:
4739:
4735:
4732:
4729:
4726:
4723:
4719:
4716:
4713:
4710:
4704:
4703:
4700:
4697:
4694:
4691:
4688:
4685:
4682:
4679:
4676:
4673:
4670:
4667:
4664:
4661:
4658:
4655:
4652:
4649:
4646:
4643:
4633:
4632:
4629:
4626:
4623:
4620:
4617:
4614:
4611:
4608:
4605:
4602:
4599:
4596:
4593:
4590:
4587:
4584:
4581:
4578:
4575:
4572:
4569:
4566:
4563:
4560:
4557:
4554:
4551:
4548:
4545:
4542:
4539:
4536:
4533:
4530:
4527:
4524:
4521:
4518:
4515:
4512:
4509:
4506:
4503:
4500:
4497:
4494:
4491:
4488:
4485:
4482:
4479:
4476:
4473:
4470:
4467:
4464:
4461:
4458:
4455:
4452:
4449:
4446:
4443:
4440:
4437:
4434:
4431:
4428:
4425:
4422:
4419:
4416:
4413:
4410:
4407:
4404:
4401:
4398:
4395:
4392:
4389:
4386:
4383:
4380:
4377:
4374:
4371:
4368:
4365:
4362:
4359:
4356:
4353:
4350:
4347:
4344:
4341:
4338:
4335:
4332:
4329:
4323:
4318:
4317:
4314:
4311:
4308:
4305:
4302:
4299:
4296:
4293:
4290:
4287:
4284:
4281:
4278:
4275:
4272:
4269:
4266:
4263:
4260:
4257:
4254:
4251:
4248:
4245:
4242:
4239:
4236:
4233:
4230:
4227:
4224:
4221:
4218:
4215:
4212:
4209:
4206:
4203:
4200:
4197:
4194:
4191:
4188:
4185:
4182:
4179:
4176:
4173:
4170:
4167:
4164:
4161:
4158:
4155:
4152:
4149:
4146:
4143:
4140:
4137:
4134:
4131:
4128:
4125:
4122:
4119:
4116:
4113:
4110:
4107:
4104:
4101:
4098:
4095:
4092:
4089:
4086:
4083:
4080:
4077:
4074:
4071:
4068:
4065:
4062:
4059:
4056:
4053:
4050:
4047:
4044:
4041:
4038:
4035:
4032:
4029:
4026:
4023:
4020:
4017:
4014:
4011:
4008:
4005:
4002:
3999:
3996:
3993:
3990:
3987:
3984:
3981:
3978:
3975:
3972:
3969:
3966:
3963:
3960:
3957:
3954:
3951:
3948:
3935:
3934:
3931:
3928:
3925:
3922:
3919:
3916:
3913:
3910:
3907:
3904:
3901:
3898:
3895:
3892:
3889:
3886:
3883:
3880:
3877:
3874:
3871:
3868:
3865:
3862:
3859:
3856:
3853:
3850:
3847:
3844:
3841:
3838:
3835:
3832:
3829:
3826:
3823:
3820:
3817:
3814:
3811:
3802:
3801:
3798:
3795:
3792:
3789:
3786:
3783:
3780:
3777:
3774:
3771:
3768:
3765:
3762:
3759:
3756:
3753:
3750:
3747:
3744:
3741:
3738:
3735:
3732:
3729:
3726:
3723:
3720:
3717:
3714:
3711:
3708:
3705:
3702:
3699:
3696:
3693:
3690:
3687:
3684:
3681:
3678:
3675:
3669:
3668:
3665:
3662:
3659:
3656:
3653:
3650:
3647:
3644:
3641:
3638:
3635:
3632:
3629:
3626:
3623:
3620:
3617:
3614:
3611:
3608:
3605:
3602:
3599:
3596:
3587:
3586:
3583:
3580:
3577:
3574:
3571:
3568:
3565:
3562:
3559:
3556:
3553:
3550:
3547:
3544:
3541:
3538:
3535:
3532:
3529:
3523:
3522:
3519:
3516:
3513:
3510:
3507:
3504:
3501:
3498:
3495:
3492:
3489:
3486:
3483:
3480:
3477:
3474:
3471:
3468:
3465:
3462:
3459:
3456:
3453:
3450:
3447:
3444:
3441:
3438:
3435:
3432:
3429:
3426:
3423:
3420:
3417:
3414:
3411:
3408:
3405:
3402:
3399:
3396:
3393:
3390:
3387:
3384:
3381:
3378:
3369:
3368:
3365:
3362:
3359:
3356:
3353:
3350:
3347:
3344:
3341:
3338:
3335:
3332:
3329:
3326:
3323:
3320:
3317:
3314:
3311:
3308:
3305:
3302:
3299:
3296:
3293:
3290:
3287:
3284:
3281:
3278:
3275:
3272:
3269:
3266:
3263:
3260:
3257:
3254:
3251:
3248:
3245:
3242:
3239:
3236:
3233:
3230:
3227:
3224:
3221:
3218:
3215:
3212:
3209:
3206:
3203:
3200:
3197:
3194:
3191:
3188:
3185:
3182:
3179:
3176:
3173:
3170:
3167:
3164:
3161:
3158:
3155:
3152:
3149:
3146:
3143:
3140:
3137:
3134:
3131:
3128:
3125:
3122:
3119:
3116:
3113:
3110:
3104:
3103:
3100:
3097:
3094:
3091:
3088:
3085:
3082:
3079:
3076:
3073:
3070:
3067:
3064:
3061:
3058:
3055:
3052:
3049:
3046:
3043:
3040:
3037:
3034:
3031:
3028:
3025:
3022:
3016:
3015:
3012:
3009:
3006:
3003:
3000:
2997:
2994:
2991:
2988:
2985:
2982:
2979:
2976:
2973:
2970:
2967:
2964:
2961:
2958:
2955:
2952:
2949:
2946:
2943:
2940:
2937:
2934:
2931:
2928:
2925:
2922:
2919:
2916:
2913:
2910:
2907:
2904:
2901:
2898:
2895:
2892:
2889:
2886:
2883:
2880:
2877:
2874:
2871:
2868:
2865:
2862:
2859:
2856:
2853:
2850:
2847:
2838:
2837:
2834:
2831:
2828:
2825:
2822:
2819:
2816:
2813:
2810:
2807:
2804:
2801:
2798:
2795:
2792:
2789:
2786:
2783:
2780:
2777:
2774:
2771:
2768:
2765:
2762:
2759:
2756:
2753:
2750:
2747:
2744:
2741:
2738:
2735:
2732:
2729:
2726:
2723:
2720:
2717:
2714:
2711:
2708:
2705:
2702:
2699:
2696:
2693:
2690:
2687:
2684:
2681:
2678:
2675:
2672:
2669:
2666:
2663:
2660:
2657:
2654:
2651:
2648:
2645:
2642:
2639:
2636:
2633:
2630:
2627:
2624:
2621:
2618:
2615:
2612:
2609:
2606:
2603:
2600:
2597:
2594:
2591:
2588:
2585:
2582:
2579:
2576:
2573:
2570:
2567:
2564:
2561:
2558:
2555:
2552:
2549:
2546:
2543:
2540:
2508:
2495:
2487:Valid pointers,
2476:
2472:
2461:
2460:
2458:/* and so on */
2457:
2454:
2451:
2448:
2445:
2442:
2439:
2436:
2433:
2430:
2427:
2424:
2421:
2418:
2415:
2412:
2409:
2406:
2403:
2400:
2397:
2394:
2391:
2388:
2385:
2382:
2379:
2376:
2373:
2370:
2367:
2364:
2361:
2358:
2355:
2352:
2349:
2346:
2343:
2340:
2337:
2334:
2331:
2328:
2325:
2322:
2319:
2316:
2313:
2310:
2307:
2304:
2301:
2298:
2295:
2292:
2289:
2286:
2284:/* Rectangle */
2283:
2280:
2277:
2274:
2271:
2268:
2265:
2262:
2259:
2256:
2253:
2250:
2247:
2244:
2241:
2238:
2235:
2232:
2229:
2226:
2223:
2220:
2217:
2214:
2211:
2208:
2205:
2202:
2199:
2196:
2193:
2190:
2187:
2184:
2181:
2178:
2175:
2172:
2169:
2166:
2152:
2151:
2148:
2145:
2142:
2139:
2136:
2133:
2130:
2127:
2124:
2121:
2118:
2115:
2112:
2109:
2106:
2103:
2100:
2097:
2094:
2091:
2088:
2085:
2082:
2079:
2076:
2073:
2070:
2067:
2064:
2061:
2058:
2055:
2052:
2049:
2046:
2043:
2040:
2037:
2034:
2031:
2028:
2025:
2022:
2019:
2016:
2013:
2010:
2007:
2004:
2001:
1998:
1995:
1992:
1989:
1986:
1983:
1980:
1977:
1974:
1971:
1968:
1962:
1961:
1958:
1955:
1952:
1949:
1946:
1943:
1940:
1937:
1934:
1931:
1928:
1925:
1922:
1919:
1916:
1913:
1910:
1907:
1904:
1901:
1898:
1895:
1892:
1889:
1886:
1883:
1880:
1877:
1874:
1871:
1868:
1865:
1862:
1859:
1856:
1853:
1850:
1847:
1844:
1841:
1838:
1835:
1832:
1829:
1826:
1823:
1820:
1817:
1814:
1811:
1808:
1805:
1802:
1799:
1796:
1786:variant records
1757:
1752:
1709:
1703:
1698:
1666:
1658:
1647:
1642:
1637:
1636:
1633:
1630:
1627:
1624:
1621:
1618:
1615:
1612:
1609:
1606:
1603:
1600:
1597:
1594:
1591:
1588:
1585:
1582:
1579:
1576:
1573:
1570:
1567:
1564:
1561:
1558:
1555:
1552:
1549:
1546:
1529:
1528:
1525:
1522:
1519:
1516:
1513:
1510:
1507:
1504:
1501:
1498:
1495:
1492:
1489:
1486:
1483:
1480:
1477:
1474:
1471:
1468:
1465:
1462:
1459:
1456:
1453:
1450:
1443:
1442:
1439:
1436:
1433:
1430:
1427:
1424:
1421:
1418:
1415:
1412:
1409:
1406:
1403:
1400:
1390:
1368:
1367:
1362:
1353:
1347:
1341:
1327:
1325:
1317:
1311:
1308:
1307:
1302:
1292:
1286:
1272:
1270:
1261:
1258:
1257:
1248:
1232:
1230:
1221:
1214:
1213:
1151:
1149:
1146:
1145:
1127:
1126:
1118:
1112:
1098:
1096:
1091:
1082:
1072:
1066:
1063:
1062:
1053:
1039:
1037:
1028:
1021:
1020:
985:
981:
963:
959:
958:
954:
928:
926:
923:
922:
875:
874:
866:
860:
846:
844:
836:
829:
828:
819:
805:
803:
794:
787:
786:
756:
752:
729:
725:
718:
714:
696:
692:
684:
682:
679:
678:
657:
633:
629:
615:
613:
610:
609:
599:reserved values
569:tagged pointers
565:sentinel values
561:reserved values
528:
513:self-describing
506:tagged pointers
502:indirection bit
490:class hierarchy
486:lazy evaluation
471:enumerated type
440:
437:
436:
419:
415:
400:
396:
378:
377:
353:
352:
350:
347:
346:
336:
326:
310:
307:
306:
303:
297:
294:
288:
278:
274:
249:
245:
244:
229:
225:
211:
93:
28:
23:
22:
15:
12:
11:
5:
7311:
7301:
7300:
7295:
7278:
7277:
7275:
7274:
7269:
7264:
7259:
7254:
7249:
7244:
7239:
7234:
7229:
7228:
7227:
7217:
7212:
7210:Data structure
7207:
7202:
7196:
7194:
7188:
7187:
7185:
7184:
7179:
7174:
7169:
7164:
7159:
7154:
7149:
7144:
7139:
7134:
7129:
7124:
7119:
7114:
7109:
7103:
7101:
7097:
7096:
7094:
7093:
7092:
7091:
7081:
7076:
7071:
7066:
7061:
7056:
7055:
7054:
7044:
7039:
7034:
7029:
7024:
7019:
7014:
7009:
7004:
7003:
7002:
6991:
6989:
6983:
6982:
6980:
6979:
6978:
6977:
6967:
6961:
6959:
6953:
6952:
6950:
6949:
6944:
6943:
6942:
6937:
6926:
6924:
6918:
6917:
6915:
6914:
6909:
6904:
6903:
6902:
6892:
6891:
6890:
6889:
6888:
6878:
6873:
6868:
6863:
6858:
6857:
6856:
6851:
6849:Half precision
6846:
6836:Floating point
6833:
6828:
6823:
6818:
6812:
6810:
6806:
6805:
6803:
6802:
6797:
6792:
6787:
6782:
6777:
6771:
6769:
6763:
6762:
6755:
6754:
6747:
6740:
6732:
6726:
6725:
6715:
6712:boost::variant
6707:
6706:External links
6704:
6701:
6700:
6676:
6665:docs.swift.org
6652:
6638:
6624:
6610:
6586:
6572:
6557:
6556:
6554:
6551:
6550:
6549:
6544:
6533:
6530:
6503:virtual method
6490:
6487:
6031:
5946:
5441:
5100:
4709:
4642:
4328:
4322:
4319:
3947:
3810:
3674:
3595:
3528:
3377:
3109:
3021:
2846:
2556:static_visitor
2539:
2507:
2504:
2500:
2499:
2488:
2481:tagged pointer
2165:
1967:
1795:
1756:
1753:
1716:
1646:
1643:
1641:
1638:
1545:
1449:
1399:
1389:
1386:
1385:
1384:
1371:
1359:
1356:
1340:
1337:
1326:
1323:
1320:
1310:
1309:
1300:
1285:
1282:
1271:
1269:
1260:
1259:
1256:
1247:
1244:
1231:
1229:
1220:
1219:
1217:
1212:
1209:
1206:
1203:
1200:
1197:
1194:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1167:
1164:
1161:
1158:
1143:
1130:
1124:
1121:
1111:
1108:
1097:
1088:
1085:
1080:
1065:
1064:
1061:
1052:
1049:
1038:
1036:
1027:
1026:
1024:
1019:
1016:
1013:
1010:
1007:
1003:
998:
994:
991:
988:
984:
980:
976:
972:
969:
966:
962:
957:
953:
950:
947:
944:
941:
938:
935:
892:
891:
878:
872:
869:
859:
856:
845:
842:
839:
834:
831:
830:
827:
818:
815:
804:
802:
793:
792:
790:
785:
782:
779:
776:
773:
769:
765:
762:
759:
755:
751:
747:
742:
738:
735:
732:
728:
724:
721:
717:
713:
709:
705:
702:
699:
695:
691:
676:
665:
656:
653:
650:
646:
642:
639:
636:
632:
628:
625:
622:
527:
524:
457:intuitionistic
444:
422:
418:
414:
411:
408:
403:
399:
395:
392:
384:
381:
373:
365:
362:
359:
356:
314:
301:
292:
273:languages: if
247:
227:
92:
89:
72:data structure
57:disjoint union
44:variant record
26:
9:
6:
4:
3:
2:
7310:
7299:
7296:
7294:
7291:
7290:
7288:
7273:
7270:
7268:
7265:
7263:
7260:
7258:
7255:
7253:
7250:
7248:
7245:
7243:
7240:
7238:
7235:
7233:
7230:
7226:
7223:
7222:
7221:
7218:
7216:
7213:
7211:
7208:
7206:
7203:
7201:
7198:
7197:
7195:
7189:
7183:
7180:
7178:
7175:
7173:
7170:
7168:
7165:
7163:
7160:
7158:
7155:
7153:
7150:
7148:
7145:
7143:
7140:
7138:
7135:
7133:
7132:Function type
7130:
7128:
7125:
7123:
7120:
7118:
7115:
7113:
7110:
7108:
7105:
7104:
7102:
7098:
7090:
7087:
7086:
7085:
7082:
7080:
7077:
7075:
7072:
7070:
7067:
7065:
7062:
7060:
7057:
7053:
7050:
7049:
7048:
7045:
7043:
7040:
7038:
7035:
7033:
7030:
7028:
7025:
7023:
7020:
7018:
7015:
7013:
7010:
7008:
7005:
7001:
6998:
6997:
6996:
6993:
6992:
6990:
6988:
6984:
6976:
6973:
6972:
6971:
6968:
6966:
6963:
6962:
6960:
6958:
6954:
6948:
6945:
6941:
6938:
6936:
6933:
6932:
6931:
6928:
6927:
6925:
6923:
6919:
6913:
6910:
6908:
6905:
6901:
6898:
6897:
6896:
6893:
6887:
6884:
6883:
6882:
6879:
6877:
6874:
6872:
6869:
6867:
6864:
6862:
6859:
6855:
6852:
6850:
6847:
6845:
6842:
6841:
6839:
6838:
6837:
6834:
6832:
6829:
6827:
6824:
6822:
6819:
6817:
6814:
6813:
6811:
6807:
6801:
6798:
6796:
6793:
6791:
6788:
6786:
6783:
6781:
6778:
6776:
6773:
6772:
6770:
6768:
6767:Uninterpreted
6764:
6760:
6753:
6748:
6746:
6741:
6739:
6734:
6733:
6730:
6723:
6719:
6716:
6713:
6710:
6709:
6690:
6686:
6680:
6666:
6662:
6656:
6648:
6642:
6634:
6628:
6620:
6614:
6600:
6596:
6590:
6582:
6576:
6568:
6562:
6558:
6548:
6545:
6543:
6539:
6538:Discriminator
6536:
6535:
6529:
6527:
6523:
6518:
6516:
6512:
6508:
6504:
6500:
6496:
6493:In a typical
6444:static_assert
6029:
6028:
6024:
5944:
5942:
5439:
5437:
5098:
5096:
5092:
4707:
4640:
4638:
4637:Rust language
4326:
3945:
3943:
3939:
3808:
3806:
3672:
3593:
3591:
3526:
3375:
3373:
3107:
3019:
2844:
2842:
2820:apply_visitor
2754:apply_visitor
2537:
2535:
2530:
2528:
2524:
2520:
2515:
2513:
2503:
2493:
2489:
2486:
2485:
2484:
2482:
2470:
2465:
2386:setSquareSide
2317:getSquareSide
2163:
2161:
2157:
1965:
1793:
1791:
1787:
1783:
1779:
1775:
1771:
1769:
1765:
1761:
1751:
1747:
1743:
1739:
1735:
1731:
1727:
1723:
1719:
1715:
1712:
1706:
1701:
1695:
1692:
1688:
1684:
1680:
1676:
1672:
1669:
1664:
1661:
1656:
1652:
1543:
1536:
1532:
1447:
1397:
1395:
1357:
1354:
1338:
1335:
1321:
1318:
1298:
1283:
1280:
1267:
1254:
1245:
1242:
1227:
1215:
1207:
1204:
1198:
1195:
1192:
1180:
1177:
1171:
1168:
1165:
1156:
1144:
1122:
1119:
1109:
1106:
1086:
1083:
1078:
1059:
1050:
1047:
1034:
1022:
1014:
1008:
1005:
1001:
996:
992:
989:
986:
982:
974:
970:
967:
964:
960:
955:
945:
939:
933:
921:
920:
919:
917:
913:
909:
905:
901:
897:
870:
867:
857:
854:
840:
837:
832:
825:
816:
813:
800:
788:
780:
774:
771:
767:
763:
760:
757:
753:
745:
740:
736:
733:
730:
726:
719:
715:
707:
703:
700:
697:
693:
689:
677:
663:
651:
648:
644:
640:
637:
634:
630:
623:
620:
608:
607:
606:
604:
600:
596:
592:
587:
585:
581:
576:
572:
570:
566:
562:
558:
554:
550:
544:
542:
537:
532:
523:
521:
517:
514:
509:
507:
503:
499:
495:
492:(see below),
491:
487:
483:
478:
476:
472:
467:
465:
461:
458:
442:
420:
416:
409:
406:
401:
397:
390:
371:
343:
339:
333:
329:
312:
300:
291:
285:
281:
272:
268:
261:
257:
253:
241:
237:
233:
223:
218:
214:
209:
208:product types
205:
201:
197:
192:
190:
187:and one from
186:
182:
178:
174:
170:
166:
162:
158:
154:
153:
147:
145:
141:
137:
132:
130:
126:
122:
118:
114:
110:
106:
102:
98:
88:
86:
82:
77:
73:
69:
68:
63:
59:
58:
53:
49:
45:
41:
37:
33:
19:
7088:
7037:Intersection
6692:. Retrieved
6688:
6679:
6668:. Retrieved
6664:
6655:
6641:
6627:
6613:
6602:. Retrieved
6599:nim-lang.org
6598:
6595:"Nim Manual"
6589:
6575:
6561:
6519:
6492:
6027:constexpr if
6021:
5939:
5433:
5093:
5066:
4705:
4634:
4324:
3936:
3803:
3670:
3588:
3524:
3370:
3105:
3017:
2839:
2531:
2516:
2509:
2501:
2492:null pointer
2466:
2462:
2305:/* Circle */
2257:/* Square */
2153:
1963:
1789:
1785:
1772:
1758:
1749:
1745:
1741:
1737:
1733:
1729:
1725:
1721:
1717:
1710:
1704:
1699:
1696:
1690:
1686:
1682:
1678:
1674:
1670:
1667:
1665:
1659:
1655:united modes
1654:
1648:
1541:
1530:
1444:
1391:
915:
911:
907:
903:
899:
895:
893:
598:
591:option types
588:
583:
577:
573:
560:
557:encoded tags
556:
552:
548:
545:
533:
529:
510:
479:
468:
341:
337:
331:
327:
298:
289:
283:
279:
259:
255:
251:
239:
235:
231:
216:
212:
199:
193:
188:
184:
180:
176:
172:
168:
164:
160:
156:
150:
148:
133:
124:
108:
94:
75:
65:
61:
55:
51:
47:
43:
39:
36:tagged union
35:
29:
18:Variant type
7298:Type theory
7267:Type theory
7262:Type system
7112:Bottom type
7059:Option type
7000:generalized
6886:Long double
6831:Fixed point
6718:std.variant
6515:constructor
6411:Transverser
6354:Transverser
6153:Transverser
6011:TaggedUnion
3896:skRectangle
3830:skRectangle
1394:binary tree
516:data format
196:type theory
183:, one from
140:constructor
136:constructor
91:Description
48:choice type
7293:Data types
7287:Categories
7172:Empty type
7167:Type class
7117:Collection
7074:Refinement
7052:metaobject
6900:signedness
6759:Data types
6694:2021-06-20
6689:Python.org
6670:2021-04-28
6649:. Mozilla.
6635:. Mozilla.
6604:2020-01-23
6553:References
6186:&&
5941:Python 3.9
5436:TypeScript
5411:add_values
5369:add_values
5354:add_values
5273:add_values
5079:, and the
5047:add_values
5041:assert_eq!
5007:add_values
4989:add_values
4920:add_values
4165:listHelper
4126:listHelper
4054:listHelper
2137:end record
2014:Shape_Kind
1972:Shape_Kind
1788:(formally
1784:call them
1625:countNodes
1610:countNodes
1571:countNodes
1550:countNodes
498:CDR coding
475:unit types
462:under the
305:have type
222:injections
115:) and the
7247:Subtyping
7242:Interface
7225:metaclass
7177:Unit type
7147:Semaphore
7127:Exception
7032:Inductive
7022:Dependent
6987:Composite
6965:Character
6947:Reference
6844:Minifloat
6800:Bit array
6309:&>
6294:is_same_v
6282:constexpr
6228:&>
6213:is_same_v
6201:constexpr
5960:TypedDict
5954:Annotated
5467:interface
5443:interface
4492:Rectangle
3872:ShapeKind
3815:ShapeKind
3225:Rectangle
2224:ShapeKind
2182:Rectangle
2170:ShapeKind
2083:Rectangle
1987:Rectangle
1902:rectangle
1872:shapeKind
1815:rectangle
1800:shapeKind
1211:↦
1187:→
1157::
1018:↦
1012:↦
979:→
952:→
943:→
934::
784:↦
778:↦
750:→
723:→
712:→
690::
655:↦
627:→
621::
541:immutable
443:τ
435:has type
413:⇒
407:∣
394:⇒
313:τ
277:has type
109:datatypes
67:coproduct
7272:Variable
7162:Top type
7027:Equality
6935:physical
6912:Rational
6907:Interval
6854:bfloat16
6532:See also
6258:<<
6246:<<
6177:operator
6165:typename
6159:template
5948:Currency
5803:function
5117:indirect
3920:skCircle
3878:skSquare
3836:skCircle
3824:skSquare
3114:abstract
2851:abstract
2685:<<
2679:<<
2673:<<
2634:operator
2613:<<
2607:<<
2601:<<
2574:operator
2038:Center_Y
2026:Center_X
1782:Modula-2
1651:ALGOL 68
1401:datatype
1388:Examples
1358:′
1322:′
1123:′
1087:′
871:′
841:′
584:variants
553:computed
520:metadata
271:ML-style
200:sum type
152:disjoint
117:compiler
62:sum type
7215:Generic
7191:Related
7107:Boolean
7064:Product
6940:virtual
6930:Address
6922:Pointer
6895:Integer
6826:Decimal
6821:Complex
6809:Numeric
6393:nullptr
6336:nullptr
6141:nullptr
6123:nullptr
6048:variant
5869:console
5077:Some(T)
4627:centerY
4621:centerX
4612:extends
4600:centerY
4588:centerX
4561:centerY
4555:centerX
4546:extends
4534:centerY
4522:centerX
4483:centerX
4477:centerY
4468:extends
4456:centerY
4444:centerX
4411:centerY
4399:centerX
4153:varargs
4006:variant
3854:centerY
3848:centerX
3581:printfn
3563:printfn
3363:centerY
3357:centerX
3348:extends
3336:centerY
3324:centerX
3294:centerY
3288:centerX
3279:extends
3267:centerY
3255:centerX
3213:centerY
3207:centerX
3198:extends
3186:centerY
3174:centerX
3138:centerY
3126:centerX
3089:println
3062:println
2923:extends
2869:extends
2826:display
2778:variant
2760:display
2712:variant
2544:display
2512:Cyclone
2469:pointer
2215:centery
2206:centerx
2122:Integer
2101:Integer
2074:Integer
2044:Integer
2032:Integer
1947:integer
1923:integer
1893:integer
1857:integer
1851:centery
1845:integer
1839:centerx
1768:Haskell
105:Haskell
70:, is a
40:variant
7205:Boxing
7193:topics
7152:Stream
7089:tagged
7047:Object
6970:String
6507:vtable
6453:sizeof
6267:"
6261:"
6150:struct
6102:struct
6090:string
6075:struct
6063:struct
6054:struct
5827:switch
5494:number
5405:assert
5393:return
5345:return
5303:switch
5089:Err(E)
4935:->
4576:radius
4570:Circle
4510:height
4498:length
4426:Square
3997:result
3991:result
3949:import
3938:Macros
3926:radius
3908:height
3902:length
3845:object
3676:switch
3312:radius
3306:Circle
3243:height
3231:length
3156:Square
3111:sealed
2863:object
2848:sealed
2796:string
2730:string
2649:string
2541:struct
2525:, and
2473:option
2431:Square
2392:struct
2365:return
2359:Square
2341:assert
2323:struct
2296:radius
2287:struct
2275:height
2260:struct
2239:struct
2194:struct
2188:Circle
2176:Square
2116:Radius
2110:Circle
2095:Height
2062:Square
2023:record
1993:Circle
1981:Square
1941:radius
1932:circle
1917:height
1878:square
1836:record
1821:circle
1809:square
1780:, and
1774:Pascal
1742:string
1691:string
1349:(value
1333:
1278:
1240:
1104:
1045:
908:return
852:
811:
617:return
549:folded
536:record
500:, the
388:
375:
369:
142:for a
85:unions
7100:Other
7084:Union
7017:Class
7007:Array
6790:Tryte
6542:CORBA
6526:Scala
6426:right
6405:visit
6387:right
6348:visit
6255:value
6135:right
6093:value
6033:using
6023:C++17
6005:False
5999:total
5993:float
5981:float
5929:break
5923:right
5911:visit
5893:visit
5887:value
5857:break
5806:visit
5773:right
5740:value
5719:right
5686:value
5665:right
5641:right
5608:value
5575:value
5545:const
5512:right
5488:value
5434:With
5294:->
5095:Swift
5085:Ok(T)
5029:=>
4980:=>
4943:match
4911:)))))
4615:Shape
4549:Shape
4471:Shape
4393:Shape
4378:right
4321:2010s
4216:match
4210:block
3952:patty
3942:patty
3839:Shape
3781:trace
3742:trace
3721:trace
3715:Green
3700:trace
3682:color
3612:Green
3600:Color
3578:->
3560:->
3530:match
3427:right
3403:value
3351:Shape
3303:class
3282:Shape
3222:class
3201:Shape
3153:class
3120:Shape
3117:class
3086:=>
3059:=>
3026:match
2911:right
2887:value
2878:class
2854:class
2841:Scala
2814:boost
2772:boost
2748:boost
2706:boost
2652:&
2640:const
2550:boost
2527:Swift
2506:2000s
2477:Maybe
2440:->
2422:->
2395:Shape
2371:->
2350:->
2326:Shape
2269:width
2233:union
2197:Shape
2113:=>
2089:Width
2086:=>
2065:=>
2002:Shape
1911:width
1830:shape
1738:compl
1700:union
1687:compl
1675:union
1645:1960s
1631:right
1595:right
1343:value
1313:value
1288:value
1114:value
1068:value
862:value
659:value
603:monad
589:Like
144:class
111:(see
81:trees
64:, or
7220:Kind
7182:Void
7042:List
6957:Text
6795:Word
6785:Trit
6780:Byte
6511:RTTI
6435:else
6369:left
6330:left
6306:Node
6297:<
6276:else
6243:cout
6225:Leaf
6216:<
6174:void
6171:>
6162:<
6129:Tree
6117:left
6111:Tree
6105:Node
6078:Leaf
6069:>
6066:Node
6057:Leaf
6051:<
6036:Tree
5917:tree
5905:left
5899:tree
5881:tree
5860:case
5848:case
5839:kind
5833:tree
5818:Tree
5812:tree
5782:kind
5761:kind
5752:left
5728:kind
5707:kind
5698:left
5674:kind
5650:kind
5629:kind
5620:left
5596:kind
5587:left
5563:kind
5554:Tree
5548:root
5542:Node
5536:Leaf
5530:Tree
5527:type
5518:Tree
5506:Tree
5500:left
5476:kind
5470:Node
5452:kind
5446:Leaf
5417:tree
5387:leaf
5381:case
5321:node
5312:case
5306:tree
5288:Tree
5282:tree
5270:func
5261:leaf
5252:leaf
5237:node
5228:leaf
5213:node
5204:leaf
5195:leaf
5180:node
5165:node
5159:Tree
5153:tree
5141:Tree
5135:Tree
5123:node
5120:case
5114:leaf
5111:case
5105:Tree
5102:enum
5073:None
5053:tree
5026:Leaf
5022:Tree
4956:Node
4952:Tree
4946:tree
4930:Tree
4926:tree
4908:Leaf
4904:Tree
4888:Leaf
4884:Tree
4862:Node
4858:Tree
4842:Leaf
4838:Tree
4816:Node
4812:Tree
4799:))),
4796:Leaf
4792:Tree
4776:Leaf
4772:Tree
4750:Node
4746:Tree
4724:Node
4720:Tree
4714:tree
4695:>
4692:Tree
4689:<
4680:>
4677:Tree
4674:<
4659:Node
4653:Leaf
4647:Tree
4644:enum
4635:The
4567:case
4489:case
4432:side
4423:case
4390:enum
4384:Tree
4372:Tree
4366:left
4348:Node
4345:case
4342:Leaf
4339:case
4333:Tree
4330:enum
4282:list
4273:echo
4234:Cons
4195:List
4180:proc
4159:List
4141:list
4138:proc
4111:Cons
4105:else
4072:List
4051:proc
4045:List
4018:Cons
4009:List
3955:proc
3884:side
3866:kind
3863:case
3821:enum
3812:type
3754:case
3736:Blue
3733:case
3712:case
3691:case
3618:Blue
3597:enum
3590:Haxe
3575:Leaf
3542:Node
3536:with
3533:tree
3517:Leaf
3511:Leaf
3499:Node
3493:Leaf
3481:Node
3475:Leaf
3469:Leaf
3457:Node
3445:Node
3439:tree
3433:Tree
3421:Tree
3415:left
3397:Node
3391:Leaf
3382:Tree
3379:type
3300:case
3219:case
3162:side
3150:case
3083:Leaf
3080:case
3035:Node
3032:case
3023:tree
3010:Leaf
3004:Leaf
2992:Node
2986:Leaf
2974:Node
2968:Leaf
2962:Leaf
2950:Node
2938:Node
2932:tree
2926:Tree
2917:Tree
2905:Tree
2899:left
2881:Node
2875:case
2872:Tree
2866:Leaf
2860:case
2857:Tree
2799:>
2781:<
2733:>
2715:<
2694:endl
2670:cout
2631:void
2622:endl
2598:cout
2571:void
2565:>
2562:void
2559:<
2523:Haxe
2519:Rust
2496:null
2449:side
2443:side
2425:kind
2410:side
2383:void
2374:side
2353:kind
2248:side
2227:kind
2221:enum
2167:enum
2158:and
2131:case
2107:when
2080:when
2068:Side
2059:when
2053:Kind
2050:case
2008:Kind
1999:type
1969:type
1887:side
1866:kind
1863:case
1797:type
1750:esac
1730:real
1722:case
1718:node
1711:node
1705:case
1679:real
1671:node
1668:mode
1660:case
1616:left
1589:left
1577:Node
1556:Leaf
1523:Leaf
1517:Leaf
1505:Node
1499:Leaf
1487:Node
1481:Leaf
1475:Leaf
1463:Node
1451:Node
1437:tree
1431:tree
1416:Node
1410:Leaf
1404:tree
1294:(err
1153:join
930:fmap
916:join
914:and
912:fmap
898:and
686:bind
593:and
482:rope
335:and
296:and
287:and
243:and
204:dual
125:enum
121:Rust
103:and
34:, a
7079:Set
6775:Bit
6724:2.0
6497:in
6414:{},
6399:std
6357:{},
6342:std
6288:std
6237:std
6207:std
6180:()(
6084:std
6042:std
5875:log
5315:let
5297:Int
5150:let
5129:Int
5087:or
5075:or
4937:i64
4898:new
4894:Box
4878:new
4874:Box
4852:new
4848:Box
4832:new
4828:Box
4806:new
4802:Box
4786:new
4782:Box
4766:new
4762:Box
4740:new
4736:Box
4711:let
4686:Box
4671:Box
4665:i64
4606:Int
4594:Int
4582:Int
4540:Int
4528:Int
4516:Int
4504:Int
4462:Int
4450:Int
4438:Int
4417:Int
4405:Int
4360:Int
4276:sum
4258:sum
4225:Nil
4201:int
4183:sum
4099:Nil
4087:len
4066:seq
4042:ref
4015:Nil
3985:new
3976:ref
3958:`~`
3932:int
3914:int
3890:int
3860:int
3805:Nim
3757:Rgb
3694:Red
3660:Int
3648:Int
3636:Int
3624:Rgb
3606:Red
3520:)))
3436:let
3409:int
3342:Int
3330:Int
3318:Int
3273:Int
3261:Int
3249:Int
3237:Int
3192:Int
3180:Int
3168:Int
3144:Int
3132:Int
3013:)))
2929:val
2893:Int
2829:(),
2790:std
2784:int
2763:(),
2724:std
2718:int
2688:std
2664:std
2643:std
2637:()(
2616:std
2592:std
2580:int
2577:()(
2407:int
2314:int
2293:int
2266:int
2245:int
2212:int
2203:int
2160:C++
2154:In
2128:end
1956:end
1778:Ada
1746:out
1734:int
1708:of
1683:int
1649:In
1583:int
1547:fun
1526:)))
1425:int
1263:err
1250:err
1223:err
1055:err
1030:err
821:err
796:err
555:or
469:An
269:in
246:inj
226:inj
206:of
194:In
171:or
155:or
76:tag
30:In
7289::
6687:.
6663:.
6597:.
6477:};
6471:};
6468:);
6462:),
6429:);
6402:::
6390:!=
6375:if
6372:);
6345:::
6333:!=
6318:if
6291:::
6279:if
6264:\n
6240:::
6210:::
6198:if
6147:};
6099:};
6087:::
6045:::
6008:),
5996:},
5770:},
5716:},
5662:},
5638:},
5423:==
5342:):
5264:))
5207:),
5091:.
5062:);
5056:),
5024:::
5019:),
4954:::
4928::
4917:fn
4914:);
4906:::
4896:::
4891:),
4886:::
4876:::
4860:::
4850:::
4845:),
4840:::
4830:::
4814:::
4804:::
4794:::
4784:::
4779:),
4774:::
4764:::
4748:::
4738:::
4722:::
4420:):
4315:))
4264:ys
4249:):
4246:ys
4219:xs
4198:):
4189:xs
4174:xs
4156:):
4147:xs
4135:))
4132:xs
4117:xs
4102:()
4090:==
4081:xs
4078:if
4069:):
4060:xs
4036:xs
3973:):
3917:of
3893:of
3875:of
3796:);
3778:):
3751:);
3730:);
3709:);
3663:);
3557:_)
3554:_,
3478:),
3400:of
3372:F#
2971:),
2835:);
2817:::
2793:::
2775:::
2769:);
2751:::
2742:42
2727:::
2709:::
2703:};
2691:::
2667:::
2646:::
2619:::
2595:::
2553:::
2521:,
2490:A
2362:);
2356:==
2311:};
2308:};
2302:};
2281:};
2254:};
2191:};
2056:is
2020:is
2011::
1996:);
1975:is
1875:of
1776:,
1764:ML
1726:in
1724:n
1714::
1693:);
1689:,
1685:,
1681:,
1673:=
1598:))
1484:),
1419:of
1329:if
1274:if
1235:if
1100:if
1041:if
918::
848:if
807:if
571:.
551:,
522:.
496:,
488:,
484:,
466:.
340::
330::
282:+
258:+
254:→
250::
238:+
234:→
230::
224:)
215:+
191:.
179:+
163:+
101:ML
60:,
54:,
50:,
46:,
42:,
6751:e
6744:t
6737:v
6722:D
6697:.
6673:.
6607:.
6569:.
6474:}
6459:T
6456:(
6450:!
6447:(
6438:{
6432:}
6423:.
6420:v
6417:*
6408:(
6396:)
6384:.
6381:v
6378:(
6366:.
6363:v
6360:*
6351:(
6339:)
6327:.
6324:v
6321:(
6315:{
6312:)
6303:,
6300:T
6285:(
6273:}
6270:;
6252:.
6249:v
6234:{
6231:)
6222:,
6219:T
6204:(
6195:{
6192:)
6189:v
6183:T
6168:T
6156:{
6144:;
6138:=
6132:*
6126:;
6120:=
6114:*
6108:{
6096:;
6081:{
6072:;
6060:,
6039:=
6017:]
6014:,
6002:=
5990::
5984:,
5978::
5972:{
5969:,
5963:(
5957:[
5951:=
5935:}
5932:}
5926:)
5920:.
5914:(
5908:)
5902:.
5896:(
5890:)
5884:.
5878:(
5872:.
5866::
5854::
5845:{
5842:)
5836:.
5830:(
5824:{
5821:)
5815::
5809:(
5800:}
5797:}
5794:}
5791:}
5785::
5779:{
5776::
5764::
5758:{
5755::
5749:,
5746:4
5743::
5737:,
5731::
5725:{
5722::
5710::
5704:{
5701::
5695:,
5692:3
5689::
5683:,
5677::
5671:{
5668::
5659:}
5653::
5647:{
5644::
5632::
5626:{
5623::
5617:,
5614:1
5611::
5605:,
5599::
5593:{
5590::
5584:,
5581:5
5578::
5572:,
5566::
5560:{
5557:=
5551::
5539:|
5533:=
5524:}
5521:;
5515::
5509:;
5503::
5497:;
5491::
5485:;
5479::
5473:{
5464:}
5461:;
5455::
5449:{
5429:)
5426:9
5420:)
5414:(
5408:(
5402:}
5399:}
5396:0
5390::
5384:.
5378:)
5375:b
5372:(
5366:+
5363:)
5360:a
5357:(
5351:+
5348:v
5339:b
5336:,
5333:a
5330:,
5327:v
5324:(
5318:.
5309:{
5300:{
5291:)
5285::
5279:_
5276:(
5267:)
5258:.
5255:,
5249:.
5246:,
5243:4
5240:(
5234:.
5231:,
5225:.
5222:,
5219:3
5216:(
5210:.
5201:.
5198:,
5192:.
5189:,
5186:0
5183:(
5177:.
5174:,
5171:2
5168:(
5162:.
5156:=
5147:}
5144:)
5138:,
5132:,
5126:(
5108:{
5059:9
5050:(
5044:(
5038:}
5035:}
5032:0
5016:b
5013:*
5010:(
5004:+
5001:)
4998:a
4995:*
4992:(
4986:+
4983:v
4977:)
4974:b
4971:,
4968:a
4965:,
4962:v
4959:(
4949:{
4940:{
4933:)
4923:(
4901:(
4881:(
4871:,
4868:4
4865:(
4855:(
4835:(
4825:,
4822:3
4819:(
4809:(
4789:(
4769:(
4759:,
4756:0
4753:(
4743:(
4733:,
4730:2
4727:(
4717:=
4701:}
4698:)
4683:,
4668:,
4662:(
4656:,
4650:{
4630:)
4624:,
4618:(
4609:)
4603::
4597:,
4591::
4585:,
4579::
4573:(
4564:)
4558:,
4552:(
4543:)
4537::
4531:,
4525::
4519:,
4513::
4507:,
4501::
4495:(
4486:)
4480:,
4474:(
4465:)
4459::
4453:,
4447::
4441:,
4435::
4429:(
4414::
4408:,
4402::
4396:(
4387:)
4381::
4375:,
4369::
4363:,
4357::
4354:x
4351:(
4336::
4312:5
4309:,
4306:4
4303:,
4300:3
4297:,
4294:2
4291:,
4288:1
4285:(
4279:(
4270:)
4267:)
4261:(
4255:+
4252:y
4243:,
4240:y
4237:(
4231:0
4228::
4222::
4213::
4207:(
4204:=
4192::
4186:(
4177:)
4171:@
4168:(
4162:=
4150::
4144:(
4129:(
4123:~
4120:,
4114:(
4108::
4096::
4093:0
4084:.
4075:=
4063::
4057:(
4048:)
4039::
4033:,
4030:A
4027::
4024:x
4021:(
4012::
4003:a
4000:=
3994:)
3988:(
3982:=
3979:A
3970:A
3967::
3964:a
3961:(
3944::
3929::
3923::
3911::
3905:,
3899::
3887::
3881::
3869::
3857::
3851:,
3842:=
3833:,
3827:,
3818:=
3799:}
3793:r
3790:+
3784:(
3775:b
3772:,
3769:g
3766:,
3763:r
3760:(
3745:(
3739::
3724:(
3718::
3703:(
3697::
3688:{
3685:)
3679:(
3666:}
3657::
3654:b
3651:,
3645::
3642:g
3639:,
3633::
3630:r
3627:(
3621:;
3615:;
3609:;
3603:{
3572:|
3569:x
3551:,
3548:x
3545:(
3539:|
3514:,
3508:,
3505:4
3502:(
3496:,
3490:,
3487:3
3484:(
3472:,
3466:,
3463:1
3460:(
3454:,
3451:5
3448:(
3442:=
3430::
3424:*
3418::
3412:*
3406::
3394:|
3388:|
3385:=
3366:)
3360:,
3354:(
3345:)
3339::
3333:,
3327::
3321:,
3315::
3309:(
3297:)
3291:,
3285:(
3276:)
3270::
3264:,
3258::
3252:,
3246::
3240:,
3234::
3228:(
3216:)
3210:,
3204:(
3195:)
3189::
3183:,
3177::
3171:,
3165::
3159:(
3147:)
3141::
3135:,
3129::
3123:(
3101:}
3098:)
3092:(
3077:)
3074:x
3071:+
3065:(
3056:)
3053:_
3050:,
3047:_
3044:,
3041:x
3038:(
3029:{
3007:,
3001:,
2998:4
2995:(
2989:,
2983:,
2980:3
2977:(
2965:,
2959:,
2956:1
2953:(
2947:,
2944:5
2941:(
2935:=
2920:)
2914::
2908:,
2902::
2896:,
2890::
2884:(
2832:v
2823:(
2811:;
2805:=
2802:v
2787:,
2766:v
2757:(
2745:;
2739:=
2736:v
2721:,
2700:}
2697:;
2682:s
2661:{
2658:)
2655:s
2628:}
2625:;
2610:i
2589:{
2586:)
2583:i
2568:{
2547::
2455:}
2452:;
2446:=
2437:s
2434:;
2428:=
2419:s
2416:{
2413:)
2404:,
2401:s
2398:*
2389:(
2380:}
2377:;
2368:s
2347:s
2344:(
2338:{
2335:)
2332:s
2329:*
2320:(
2299:;
2290:{
2278:;
2272:,
2263:{
2251:;
2242:{
2236:{
2230:;
2218:;
2209:;
2200:{
2185:,
2179:,
2173:{
2156:C
2140:;
2134:;
2125:;
2119::
2104:;
2098::
2092:,
2077:;
2071::
2047:;
2041::
2035:;
2029::
2017:)
2005:(
1990:,
1984:,
1978:(
1959:;
1953:;
1950:)
1944::
1938:(
1935::
1929:;
1926:)
1920::
1914:,
1908:(
1905::
1899:;
1896:)
1890::
1884:(
1881::
1869::
1860:;
1854::
1848:;
1842::
1833:=
1827:;
1824:)
1818:,
1812:,
1806:(
1803:=
1728:(
1677:(
1634:)
1628:(
1622:+
1619:)
1613:(
1607:+
1604:1
1601:=
1592:,
1586:,
1580:(
1574:(
1568:|
1565:0
1562:=
1559:)
1553:(
1520:,
1514:,
1511:4
1508:(
1502:,
1496:,
1493:3
1490:(
1478:,
1472:,
1469:1
1466:(
1460:,
1457:5
1454:(
1440:)
1434:*
1428:*
1422:(
1413:|
1407:=
1364:)
1355:a
1339:=
1336:a
1319:a
1304:)
1299:e
1284:=
1281:a
1268:e
1255:e
1246:=
1243:a
1228:e
1216:{
1208:a
1205:=
1202:)
1199:E
1196:+
1193:A
1190:(
1184:)
1181:E
1178:+
1175:)
1172:E
1169:+
1166:A
1163:(
1160:(
1120:a
1110:=
1107:a
1093:)
1084:a
1079:f
1074:(
1060:e
1051:=
1048:a
1035:e
1023:{
1015:a
1009:f
1006:=
1002:)
997:)
993:E
990:+
987:B
983:(
975:)
971:E
968:+
965:A
961:(
956:(
949:)
946:B
940:A
937:(
904:E
900:B
896:A
868:a
858:=
855:a
838:a
833:f
826:e
817:=
814:a
801:e
789:{
781:f
775:a
772:=
768:)
764:E
761:+
758:B
754:(
746:)
741:)
737:E
734:+
731:B
727:(
720:A
716:(
708:)
704:E
701:+
698:A
694:(
664:a
652:a
649:=
645:)
641:E
638:+
635:A
631:(
624:A
421:2
417:e
410:y
402:1
398:e
391:x
383:f
380:o
372:e
364:e
361:s
358:a
355:c
342:B
338:y
332:A
328:x
302:2
299:e
293:1
290:e
284:B
280:A
275:e
263:.
260:B
256:A
252:B
248:2
240:B
236:A
232:A
228:1
217:B
213:A
189:B
185:A
181:B
177:A
173:B
169:A
165:B
161:A
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.