[38;2;98;114;164m[3m# Fibonacci with memoization[0m
[38;2;255;85;85m[1mmodule[0m [38;2;248;248;242mFib[0m

[38;2;255;85;85m[1mconst[0m [38;2;248;248;242mcache[0m [38;2;248;248;242m=[0m [38;2;139;233;253m[4mDict[0m[38;2;248;248;242m{[0m[38;2;139;233;253m[4mInt[0m[38;2;248;248;242m,[0m[38;2;139;233;253m[4mBigInt[0m[38;2;248;248;242m}[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m

[38;2;80;250;123m"""Calculate the nth Fibonacci number."""[0m
[38;2;255;85;85m[1mfunction[0m [38;2;189;147;249m[1m[3mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m[38;2;248;248;242m::[0m[38;2;139;233;253m[4mInt[0m[38;2;248;248;242m)[0m[38;2;248;248;242m::[0m[38;2;139;233;253m[4mBigInt[0m
    [38;2;248;248;242mn[0m [38;2;248;248;242m<=[0m [38;2;241;250;140m1[0m [38;2;248;248;242m&&[0m [38;2;255;85;85m[1mreturn[0m [38;2;189;147;249m[1m[3mBigInt[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m[38;2;248;248;242m)[0m
    [38;2;189;147;249m[1m[3mget![0m[38;2;248;248;242m([0m[38;2;248;248;242mcache[0m[38;2;248;248;242m,[0m [38;2;248;248;242mn[0m[38;2;248;248;242m)[0m [38;2;255;85;85m[1mdo[0m
        [38;2;189;147;249m[1m[3mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m [38;2;248;248;242m-[0m [38;2;241;250;140m1[0m[38;2;248;248;242m)[0m [38;2;248;248;242m+[0m [38;2;189;147;249m[1m[3mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m [38;2;248;248;242m-[0m [38;2;241;250;140m2[0m[38;2;248;248;242m)[0m
    [38;2;255;85;85m[1mend[0m
[38;2;255;85;85m[1mend[0m

[38;2;255;85;85m[1mfor[0m [38;2;248;248;242mi[0m [38;2;248;248;242m=[0m [38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;241;250;140m10[0m
    [38;2;248;248;242mBase[0m[38;2;248;248;242m.[0m[38;2;189;147;249m[1m[3mprintln[0m[38;2;248;248;242m([0m[38;2;80;250;123m"fib([0m[38;2;248;248;242m$[0m[38;2;248;248;242mi[0m[38;2;80;250;123m) = [0m[38;2;248;248;242m$[0m[38;2;248;248;242m([0m[38;2;189;147;249m[1m[3mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mi[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;80;250;123m"[0m[38;2;248;248;242m)[0m
[38;2;255;85;85m[1mend[0m

[38;2;98;114;164m[3m# Demonstrate qualified calls[0m
[38;2;248;248;242mBase[0m[38;2;248;248;242m.[0m[38;2;189;147;249m[1m[3mlength[0m[38;2;248;248;242m([0m[38;2;248;248;242mcache[0m[38;2;248;248;242m)[0m
[38;2;248;248;242mCore[0m[38;2;248;248;242m.[0m[38;2;189;147;249m[1m[3mtypeof[0m[38;2;248;248;242m([0m[38;2;248;248;242mcache[0m[38;2;248;248;242m)[0m
[38;2;248;248;242mBase[0m[38;2;248;248;242m.[0m[38;2;248;248;242mIterators[0m[38;2;248;248;242m.[0m[38;2;189;147;249m[1m[3mtake[0m[38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;241;250;140m10[0m[38;2;248;248;242m,[0m [38;2;241;250;140m3[0m[38;2;248;248;242m)[0m

[38;2;255;85;85m[1mend[0m [38;2;98;114;164m[3m# module[0m

[38;2;98;114;164m[3m#=
Additional syntax coverage from old julia sample:
Nested comments #= can be #= deeply =# nested =#
=#[0m

[38;2;98;114;164m[3m# Array and tuple literals[0m
[38;2;248;248;242m[[0m[38;2;241;250;140m1[0m[38;2;248;248;242m,[0m [38;2;241;250;140m3[0m[38;2;248;248;242m,[0m [38;2;241;250;140m3[0m[38;2;248;248;242m,[0m [38;2;241;250;140m4[0m[38;2;248;248;242m][0m[38;2;248;248;242m[[0m[38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;255;146;223mend[0m[38;2;248;248;242m][0m
[38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m,[0m [38;2;241;250;140m2[0m[38;2;248;248;242m,[0m [38;2;241;250;140m1.0[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[[0m[38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;241;250;140m2[0m[38;2;248;248;242m][0m
[38;2;248;248;242m[[0m[38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m,[0m [38;2;241;250;140m3[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m [38;2;248;248;242m([0m[38;2;241;250;140m3[0m[38;2;248;248;242m,[0m [38;2;241;250;140m4[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m[38;2;248;248;242m[[0m[38;2;255;146;223mend[0m[38;2;248;248;242m-[0m[38;2;241;250;140m1[0m[38;2;248;248;242m][0m
[38;2;248;248;242m[[0m[38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m,[0m [38;2;241;250;140m3[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m [38;2;248;248;242m([0m[38;2;241;250;140m3[0m[38;2;248;248;242m,[0m [38;2;241;250;140m4[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m[38;2;248;248;242m[[0m[38;2;255;146;223mbegin[0m[38;2;248;248;242m][0m

[38;2;98;114;164m[3m# Control flow[0m
[38;2;255;85;85m[1mif[0m [38;2;248;248;242mx[0m [38;2;255;85;85m[1min[0m [38;2;248;248;242my[0m
    [38;2;255;255;165mnothing[0m
[38;2;255;85;85m[1mend[0m
[38;2;248;248;242mx[0m [38;2;255;85;85m[1min[0m [38;2;248;248;242my[0m [38;2;255;85;85m[1m?[0m [38;2;241;250;140mfalse[0m [38;2;255;85;85m[1m:[0m [38;2;241;250;140mtrue[0m

[38;2;255;85;85m[1mlet[0m [38;2;248;248;242mx[0m [38;2;248;248;242m=[0m [38;2;241;250;140m1[0m
    [38;2;255;85;85m[1mlocal[0m [38;2;248;248;242mt[0m
    [38;2;255;85;85m[1mglobal[0m [38;2;248;248;242ms[0m
    [38;2;248;248;242mt[0m [38;2;248;248;242m=[0m [38;2;248;248;242mx[0m
[38;2;255;85;85m[1mend[0m

[38;2;98;114;164m[3m# Type definitions[0m
[38;2;255;85;85m[1mabstract[0m [38;2;255;85;85m[1mtype[0m [38;2;139;233;253m[4mShape[0m [38;2;255;85;85m[1mend[0m
[38;2;255;85;85m[1mabstract[0m [38;2;255;85;85m[1mtype[0m [38;2;139;233;253m[4mAbstractPoint[0m[38;2;248;248;242m{[0m[38;2;139;233;253m[4mT[0m[38;2;248;248;242m}[0m [38;2;248;248;242m<:[0m [38;2;139;233;253m[4mNumber[0m [38;2;255;85;85m[1mend[0m
[38;2;255;85;85m[1mmutable[0m [38;2;255;85;85m[1mstruct[0m [38;2;139;233;253m[4mPoint[0m[38;2;248;248;242m{[0m[38;2;139;233;253m[4mT[0m[38;2;248;248;242m<:[0m[38;2;139;233;253m[4mNumber[0m[38;2;248;248;242m}[0m
    [38;2;248;248;242mx[0m[38;2;248;248;242m::[0m[38;2;139;233;253m[4mT[0m
    [38;2;248;248;242my[0m[38;2;248;248;242m::[0m[38;2;139;233;253m[4mT[0m
    [38;2;189;147;249m[1m[3mPoint[0m[38;2;248;248;242m([0m[38;2;248;248;242mx[0m[38;2;248;248;242m)[0m [38;2;248;248;242m=[0m [38;2;189;147;249m[1m[3mnew[0m[38;2;248;248;242m([0m[38;2;248;248;242mx[0m[38;2;248;248;242m,[0m [38;2;241;250;140m2[0m[38;2;248;248;242mx[0m[38;2;248;248;242m)[0m
[38;2;255;85;85m[1mend[0m
[38;2;255;85;85m[1mstruct[0m [38;2;139;233;253m[4mEmpty[0m[38;2;248;248;242m{[0m[38;2;139;233;253m[4mT[0m[38;2;248;248;242m}[0m [38;2;255;85;85m[1mend[0m
[38;2;255;85;85m[1mprimitive[0m [38;2;255;85;85m[1mtype[0m [38;2;139;233;253m[4mFloat16Custom[0m [38;2;248;248;242m<:[0m [38;2;139;233;253m[4mAbstractFloat[0m [38;2;241;250;140m16[0m [38;2;255;85;85m[1mend[0m
[38;2;255;85;85m[1mconst[0m [38;2;248;248;242mCoord[0m [38;2;248;248;242m=[0m [38;2;164;255;255m[4mFloat64[0m

[38;2;98;114;164m[3m# Macros[0m
[38;2;255;85;85m[1mmacro[0m [38;2;255;121;198m[1m[3msomething[0m[38;2;248;248;242m([0m[38;2;248;248;242mx[0m[38;2;248;248;242m...[0m[38;2;248;248;242m)[0m
    [38;2;255;255;165mnothing[0m
[38;2;255;85;85m[1mend[0m

[38;2;98;114;164m[3m# Character literals[0m
[38;2;80;250;123m' '[0m[38;2;248;248;242m,[0m [38;2;80;250;123m'\n'[0m[38;2;248;248;242m,[0m [38;2;80;250;123m'\''[0m[38;2;248;248;242m,[0m [38;2;80;250;123m'"'[0m[38;2;248;248;242m,[0m [38;2;80;250;123m'\u1234'[0m[38;2;248;248;242m,[0m [38;2;80;250;123m'⻆'[0m

[38;2;98;114;164m[3m# String literals[0m
[38;2;80;250;123m"""Multiline
string"""[0m
[38;2;80;250;123m" [0m[38;2;248;248;242m$[0m[38;2;248;248;242mx[0m[38;2;80;250;123m [0m[38;2;248;248;242m$[0m[38;2;248;248;242m([0m[38;2;255;85;85m[1mlet[0m[38;2;80;250;123m [0m[38;2;248;248;242mx[0m[38;2;80;250;123m [0m[38;2;248;248;242m=[0m[38;2;80;250;123m [0m[38;2;248;248;242my[0m[38;2;80;250;123m [0m[38;2;248;248;242m+[0m[38;2;80;250;123m [0m[38;2;241;250;140m1[0m[38;2;248;248;242m;[0m[38;2;80;250;123m [0m[38;2;248;248;242mx[0m[38;2;248;248;242m^[0m[38;2;241;250;140m2[0m[38;2;248;248;242m;[0m[38;2;80;250;123m [0m[38;2;255;85;85m[1mend[0m[38;2;248;248;242m)[0m[38;2;80;250;123m "[0m
[38;2;255;121;198m[1m[3mr[0m[38;2;80;250;123m"[a-z]+$xyz"[0m[38;2;248;248;242mm[0m
[38;2;255;121;198m[1m[3mraw[0m[38;2;80;250;123m"\n\n\r\t...\b"[0m
[38;2;255;121;198m[1m[3mv[0m[38;2;80;250;123m"0.0.2"[0m [38;2;248;248;242m≥[0m [38;2;255;121;198m[1m[3mv[0m[38;2;80;250;123m"0.0.1"[0m

[38;2;98;114;164m[3m# Command literals[0m
[38;2;105;255;148m`echo [0m[38;2;248;248;242m$[0m[38;2;248;248;242mbar[0m[38;2;105;255;148m`[0m

[38;2;98;114;164m[3m# Number formats[0m
[38;2;241;250;140m1_000_000[0m [38;2;248;248;242m+[0m [38;2;241;250;140m1.0e-9[0m [38;2;248;248;242m*[0m [38;2;241;250;140m0.121[0m [38;2;248;248;242m/[0m [38;2;241;250;140m1121.0[0m
[38;2;241;250;140m1.0f0[0m [38;2;248;248;242m-[0m [38;2;241;250;140m1E-12[0m
[38;2;241;250;140m0b100_101_111[0m
[38;2;241;250;140m0o12123535[0m
[38;2;241;250;140m0x4312afAF[0m
