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

[38;2;255;85;85mconst[0m [38;2;248;248;242mcache[0m [38;2;248;248;242m=[0m [38;2;139;233;253mDict[0m[38;2;248;248;242m{[0m[38;2;139;233;253mInt[0m[38;2;248;248;242m,[0m[38;2;139;233;253mBigInt[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;85mfunction[0m [38;2;189;147;249mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m[38;2;248;248;242m::[0m[38;2;139;233;253mInt[0m[38;2;248;248;242m)[0m[38;2;248;248;242m::[0m[38;2;139;233;253mBigInt[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;85mreturn[0m [38;2;189;147;249mBigInt[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m[38;2;248;248;242m)[0m
    [38;2;189;147;249mget![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;85mdo[0m
        [38;2;189;147;249mfib[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;249mfib[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;85mend[0m
[38;2;255;85;85mend[0m

[38;2;255;85;85mfor[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;249mprintln[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;249mfib[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;85mend[0m

[38;2;98;114;164m# Demonstrate qualified calls[0m
[38;2;248;248;242mBase[0m[38;2;248;248;242m.[0m[38;2;189;147;249mlength[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;249mtypeof[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;249mtake[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;85mend[0m [38;2;98;114;164m# module[0m

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

[38;2;98;114;164m# 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# Control flow[0m
[38;2;255;85;85mif[0m [38;2;248;248;242mx[0m [38;2;255;85;85min[0m [38;2;248;248;242my[0m
    [38;2;255;255;165mnothing[0m
[38;2;255;85;85mend[0m
[38;2;248;248;242mx[0m [38;2;255;85;85min[0m [38;2;248;248;242my[0m [38;2;255;85;85m?[0m [38;2;241;250;140mfalse[0m [38;2;255;85;85m:[0m [38;2;241;250;140mtrue[0m

[38;2;255;85;85mlet[0m [38;2;248;248;242mx[0m [38;2;248;248;242m=[0m [38;2;241;250;140m1[0m
    [38;2;255;85;85mlocal[0m [38;2;248;248;242mt[0m
    [38;2;255;85;85mglobal[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;85mend[0m

[38;2;98;114;164m# Type definitions[0m
[38;2;255;85;85mabstract[0m [38;2;255;85;85mtype[0m [38;2;139;233;253mShape[0m [38;2;255;85;85mend[0m
[38;2;255;85;85mabstract[0m [38;2;255;85;85mtype[0m [38;2;139;233;253mAbstractPoint[0m[38;2;248;248;242m{[0m[38;2;139;233;253mT[0m[38;2;248;248;242m}[0m [38;2;248;248;242m<:[0m [38;2;139;233;253mNumber[0m [38;2;255;85;85mend[0m
[38;2;255;85;85mmutable[0m [38;2;255;85;85mstruct[0m [38;2;139;233;253mPoint[0m[38;2;248;248;242m{[0m[38;2;139;233;253mT[0m[38;2;248;248;242m<:[0m[38;2;139;233;253mNumber[0m[38;2;248;248;242m}[0m
    [38;2;248;248;242mx[0m[38;2;248;248;242m::[0m[38;2;139;233;253mT[0m
    [38;2;248;248;242my[0m[38;2;248;248;242m::[0m[38;2;139;233;253mT[0m
    [38;2;189;147;249mPoint[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;249mnew[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;85mend[0m
[38;2;255;85;85mstruct[0m [38;2;139;233;253mEmpty[0m[38;2;248;248;242m{[0m[38;2;139;233;253mT[0m[38;2;248;248;242m}[0m [38;2;255;85;85mend[0m
[38;2;255;85;85mprimitive[0m [38;2;255;85;85mtype[0m [38;2;139;233;253mFloat16Custom[0m [38;2;248;248;242m<:[0m [38;2;139;233;253mAbstractFloat[0m [38;2;241;250;140m16[0m [38;2;255;85;85mend[0m
[38;2;255;85;85mconst[0m [38;2;248;248;242mCoord[0m [38;2;248;248;242m=[0m [38;2;164;255;255mFloat64[0m

[38;2;98;114;164m# Macros[0m
[38;2;255;85;85mmacro[0m [38;2;255;121;198msomething[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;85mend[0m

[38;2;98;114;164m# 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# 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;85mlet[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;85mend[0m[38;2;248;248;242m)[0m[38;2;80;250;123m "[0m
[38;2;255;121;198mr[0m[38;2;80;250;123m"[a-z]+$xyz"[0m[38;2;248;248;242mm[0m
[38;2;255;121;198mraw[0m[38;2;80;250;123m"\n\n\r\t...\b"[0m
[38;2;255;121;198mv[0m[38;2;80;250;123m"0.0.2"[0m [38;2;248;248;242m≥[0m [38;2;255;121;198mv[0m[38;2;80;250;123m"0.0.1"[0m

[38;2;98;114;164m# 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# 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
