3 # Copyright 2009-2010, Larry Wall
5 # You may copy this software under the terms of the Artistic License,
6 # version 2.0 or later.
12 my enum Bool <False True>;
14 my enum Order < Increase Same Decrease >;
15 my enum TrigBase <Radians Degrees Gradians Circles>;
18 my role Role does Stash { }
19 my role Package does Stash { }
20 my role Module does Stash { }
21 my role Class does Module { }
22 my role Grammar does Class { }
26 # XXX does this mean anything?
29 my class CallFrame { } # or is this a role?
36 my class WhateverCode { }
37 my class HyperWhatever { }
40 my class Iterator does List { }
42 my class Signature { }
43 my class Parameter { }
46 my class Array does Iterable { }
47 my class Hash does Iterable { }
48 my class KeyHash does Iterable { }
49 my class KeySet does Iterable { }
50 my class KeyBag does Iterable { }
51 my class KeyWeight does Iterable { }
57 my class SeqIter does List { }
59 my class RangeIter does List { }
66 my class EMPTY is Failure { }
67 my class Exception { }
74 my class Submethod { }
84 my class CharLingua { }
86 my class Codepoint { }
95 # for now, limit denominator to one quintillion to fit in Rat64.
96 constant pi is export = 3.14159_26535_89793_238; # 46_26433_83279_50288;
97 constant e is export = 2.71828_18284_59045_235; # 36_02874_71352_66249;
98 constant i is export = 1i;
111 # (eventually these should be instantiated generics, complex:of(num64) and such)
112 my class complex16 { }
113 my class complex32 { }
114 my class complex64 { }
115 my class complex128 { }
171 my role Positional { }
172 my role Associative { }
173 my role Abstraction { }
175 my role AttributeDeclarand { }
176 my role ContainerDeclarand { }
178 my subset Comparator of Code where { .signature === :(Any, Any --> Int ) };
179 my subset KeyExtractor of Code where { .signature === :(Any --> Any) };
180 my subset OrderingPair of Pair where { .left ~~ KeyExtractor && .right ~~ Comparator };
181 my subset Ordering of Mu where Signature | KeyExtractor | Comparator | OrderingPair | Whatever;
184 my class Duration { }
186 my class DateTime { }
190 my class KitchenSink { }
220 my proto callframe { }
222 my proto evalfile { }
223 my proto callsame { }
224 my proto callwith { }
225 my proto nextsame { }
226 my proto nextwith { }
227 my proto lastcall { }
230 my proto undefine { }
238 my proto classify { }
239 my proto quotemeta { }
247 my proto trim-leading { }
248 my proto trim-trailing { }
261 my proto normalize { }
266 my proto samecase { }
267 my proto sameaccent { }
268 my proto capitalize { }
310 my proto roundrobin { }
333 my proto truncate { }
374 my proto localtime { }
380 my proto getlogin { }
382 my proto runinstead { }
388 my proto postfix:<i> ($x) { }
389 my proto infix:<.> ($x,$y) { }
390 my proto postfix:['->'] ($x) { }
391 my proto postfix:<++> ($x) { }
392 my proto postfix:«--» ($x) { }
393 my proto prefix:<++> ($x) { }
394 my proto prefix:«--» ($x) { }
395 my proto infix:<**> ($x,$y) { }
396 my proto prefix:<!> ($x) { }
397 my proto prefix:<+> ($x) { }
398 my proto prefix:<-> ($x) { }
399 my proto prefix:<~~> ($x) { }
400 my proto prefix:<~> ($x) { }
401 my proto prefix:<??> ($x) { }
402 my proto prefix:<?> ($x) { }
403 my proto prefix:<~^> ($x) { }
404 my proto prefix:<+^> ($x) { }
405 my proto prefix:<?^> ($x) { }
406 my proto prefix:<^^> ($x) { }
407 my proto prefix:<^> ($x) { }
408 my proto prefix:<||> ($x) { }
409 my proto prefix:<|> ($x) { }
410 my proto infix:<*> ($x,$y) { }
411 my proto infix:</> ($x,$y) { }
412 my proto infix:<div> ($x,$y) { }
413 my proto infix:<%> ($x,$y) { }
414 my proto infix:<mod> ($x,$y) { }
415 my proto infix:<+&> ($x,$y) { }
416 my proto infix:« << » ($x,$y) { }
417 my proto infix:« >> » ($x,$y) { }
418 my proto infix:<~&> ($x,$y) { }
419 my proto infix:<?&> ($x,$y) { }
420 my proto infix:« ~< » ($x,$y) { }
421 my proto infix:« ~> » ($x,$y) { }
422 my proto infix:« +< » ($x,$y) { }
423 my proto infix:« +> » ($x,$y) { }
424 my proto infix:<+> ($x,$y) { }
425 my proto infix:<-> ($x,$y) { }
426 my proto infix:<+|> ($x,$y) { }
427 my proto infix:<+^> ($x,$y) { }
428 my proto infix:<~|> ($x,$y) { }
429 my proto infix:<~^> ($x,$y) { }
430 my proto infix:<?|> ($x,$y) { }
431 my proto infix:<?^> ($x,$y) { }
432 my proto infix:<x> ($x,$y) { }
433 my proto infix:<xx> ($x,$y) { }
434 my proto infix:<~> ($x,$y) { }
435 my proto infix:<&> ($x,$y) { }
436 my proto infix:<|> ($x,$y) { }
437 my proto infix:<^> ($x,$y) { }
438 my proto infix:« <=> » ($x,$y) { }
439 my proto infix:<..> ($x,$y) { }
440 my proto infix:<^..> ($x,$y) { }
441 my proto infix:<..^> ($x,$y) { }
442 my proto infix:<^..^> ($x,$y) { }
443 my proto infix:<==> ($x,$y) { }
444 my proto infix:<!=> ($x,$y) { }
445 my proto infix:« < » ($x,$y) { }
446 my proto infix:« <= » ($x,$y) { }
447 my proto infix:« > » ($x,$y) { }
448 my proto infix:« >= » ($x,$y) { }
449 my proto infix:<~~> ($x,$y) { }
450 my proto infix:<!~> ($x,$y) { }
451 my proto infix:<=~> ($x,$y) { }
452 my proto infix:<eq> ($x,$y) { }
453 my proto infix:<ne> ($x,$y) { }
454 my proto infix:<lt> ($x,$y) { }
455 my proto infix:<le> ($x,$y) { }
456 my proto infix:<gt> ($x,$y) { }
457 my proto infix:<ge> ($x,$y) { }
458 my proto infix:<=:=> ($x,$y) { }
459 my proto infix:<===> ($x,$y) { }
460 my proto infix:<eqv> ($x,$y) { }
461 my proto infix:<before> ($x,$y) { }
462 my proto infix:<after> ($x,$y) { }
463 my proto infix:<&&> ($x,$y) { }
464 my proto infix:<||> ($x,$y) { }
465 my proto infix:<^^> ($x,$y) { }
466 my proto infix:<//> ($x,$y) { }
467 my proto infix:<min> ($x,$y) { }
468 my proto infix:<max> ($x,$y) { }
469 my proto infix:<?? !!> ($x,$y) { }
470 my proto infix:<!!> ($x,$y) { }
471 my proto infix:<?> ($x,$y) { }
472 my proto infix:<ff> ($x,$y) { }
473 my proto infix:<^ff> ($x,$y) { }
474 my proto infix:<ff^> ($x,$y) { }
475 my proto infix:<^ff^> ($x,$y) { }
476 my proto infix:<fff> ($x,$y) { }
477 my proto infix:<^fff> ($x,$y) { }
478 my proto infix:<fff^> ($x,$y) { }
479 my proto infix:<^fff^> ($x,$y) { }
480 my proto infix:<=> ($x,$y) { }
481 my proto infix:<:=> ($x,$y) { }
482 my proto infix:<::=> ($x,$y) { }
483 my proto infix:<.=> ($x,$y) { }
484 my proto infix:« => » ($x,$y) { }
485 my proto prefix:<so> ($x) { }
486 my proto prefix:<not> ($x) { }
487 my proto infix:<,> ($x,$y) { }
488 my proto infix:<:> ($x,$y) { }
489 my proto infix:<X> ($x,$y) { }
490 my proto infix:<Z> ($x,$y) { }
491 my proto infix:<minmax> ($x,$y) { }
492 my proto infix:<...> ($x,$y) { }
493 my proto infix:<and> ($x,$y) { }
494 my proto infix:<andthen> ($x,$y) { }
495 my proto infix:<or> ($x,$y) { }
496 my proto infix:<orelse> ($x,$y) { }
497 my proto infix:<xor> ($x,$y) { }
498 my proto infix:« <== » ($x,$y) { }
499 my proto infix:« ==> » ($x,$y) { }
500 my proto infix:« <<== » ($x,$y) { }
501 my proto infix:« ==>> » ($x,$y) { }