﻿::: {g:g, o:o, s:s, b:b, qb:b?, d:d, qd:d?, n:n, qn:n?, r8:r8, qr8:r8?, r4:r4, qr4:r4?, i:i, qi:i?, i8:i8, qi8:i8?, i4:i4, qi4:i4?, i2:i2, qi2:i2?, i1:i1, qi1:i1?, u8:u8, qu8:u8?, u4:u4, qu4:u4?, u2:u2, qu2:u2?, u1:u1, qu1:u1?}

``` N := First([null, "hello"]);

Text.Part(Wrap(""), 0)
Text.Part(Wrap(""), 1)
Text.Part(Wrap(""), -1)
Text.Part(N, 0)
Text.Part(N, 1)
Text.Part(N, -1)
Text.Part(Wrap("hello"), 1)
Text.Part(Wrap("hello"), 5)
Text.Part(Wrap("hello"), -1)
Text.Part(Wrap("hello"), -100)
Text.Part(Wrap("hello"), 100)
Text.Part(s, i4)
Text.Part("hello", i4)
Text.Part(s, 0)

Text.Part(Wrap(""), 0, 0)
Text.Part(Wrap(""), 0, 1)
Text.Part(Wrap(""), 1, 0)
Text.Part(Wrap(""), -1, 1)
Text.Part(N, 0, 1)
Text.Part(N, 1, 0)
Text.Part(N, -1, 1)
Text.Part(Wrap("hello"), 1, 3)
Text.Part(Wrap("hello"), 3, 1)
Text.Part(Wrap("hello"), 3, 5)
Text.Part(Wrap("hello"), 5, 3)
Text.Part(Wrap("hello"), 5, 5)
Text.Part(Wrap("hello"), -4, 3)
Text.Part(Wrap("hello"), 4, -3)
Text.Part(Wrap("hello"), -100, 3)
Text.Part(Wrap("hello"), 100, 3)
Text.Part(Wrap("hello"), 3, -100)
Text.Part(Wrap("hello"), 100, -100)
Text.Part(Wrap("hello"), 3, 100)
Text.Part(s, i4, i4)
Text.Part("hello", i4, i4)
Text.Part(s, 0, i4)
Text.Part(s, i4, 100)

Text.Trim(Wrap(" h e l l o ")) | With(_, {S: it, L: Text.Len(it)})
Text.Trim(["      hi", "      hello      ", "      hola      "]) | Map(_, {A: it, L: Text.Len(it)})
Text.Trim(["      hi", "      hello      ", null]) | Map(_, {A: it, L: Text.Len(it)})
Text.Trim([]) | Map(_, {A: it, L: Text.Len(it)})
Text.Trim(Wrap("h e l l o")) | With(_, {S: it, L: Text.Len(it)})
Text.Trim(Wrap("   ")) | With(_, {S: it, L: Text.Len(it)})
Text.Trim(Wrap("")) | With(_, {S: it, L: Text.Len(it)})
Text.Trim(Wrap(Null(""))) | With(_, {S: it, L: Text.Len(it)})

Text.TrimStart(Wrap(" h e l l o ")) | With(_, {S: it, L: Text.Len(it)})
Text.TrimStart(["      hi", "      hello      ", "      hola      "]) | Map(_, {A: it, L: Text.Len(it)})
Text.TrimStart(["      hi", "      hello      ", null]) | Map(_, {A: it, L: Text.Len(it)})
Text.TrimStart([]) | Map(_, {A: it, L: Text.Len(it)})
Text.TrimStart(Wrap("h e l l o")) | With(_, {S: it, L: Text.Len(it)})
Text.TrimStart(Wrap("   ")) | With(_, {S: it, L: Text.Len(it)})
Text.TrimStart(Wrap("")) | With(_, {S: it, L: Text.Len(it)})
Text.TrimStart(Wrap(Null(""))) | With(_, {S: it, L: Text.Len(it)})

Text.TrimEnd(Wrap(" h e l l o ")) | With(_, {S: it, L: Text.Len(it)})
Text.TrimEnd(["      hi", "      hello      ", "      hola      "]) | Map(_, {A: it, L: Text.Len(it)})
Text.TrimEnd(["      hi", "      hello      ", null]) | Map(_, {A: it, L: Text.Len(it)})
Text.TrimEnd([]) | Map(_, {A: it, L: Text.Len(it)})
Text.TrimEnd(Wrap("h e l l o")) | With(_, {S: it, L: Text.Len(it)})
Text.TrimEnd(Wrap("   ")) | With(_, {S: it, L: Text.Len(it)})
Text.TrimEnd(Wrap("")) | With(_, {S: it, L: Text.Len(it)})
Text.TrimEnd(Wrap(Null(""))) | With(_, {S: it, L: Text.Len(it)})

Text.Replace(N, "A", "B")
Text.Replace("A", N, "B")
Text.Replace("ABC", Wrap("B"), N)
