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