diff --git a/README.md b/README.md
index ddbfc8b..7e67bfb 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ If you are interested, there is also a youtube walkthrough of the puzzles
[](https://youtu.be/Hafo7hIl8MU)
```python
-!pip install -qqq torchtyping hypothesis pytest git+https://github.com/danoneata/chalk@srush-patch-1
+!pip install -qqq jaxtyping beartype hypothesis pytest git+https://github.com/chalk-diagrams/chalk
!wget -q https://github.com/srush/Tensor-Puzzles/raw/main/lib.py
```
@@ -35,8 +35,19 @@ If you are interested, there is also a youtube walkthrough of the puzzles
from lib import draw_examples, make_test, run_test
import torch
import numpy as np
-from torchtyping import TensorType as TT
+import jaxtyping
+from lib import Ints, Reals, Bools # jaxtyping shorthand
+
+import beartype
+Tensor = torch.Tensor
tensor = torch.tensor
+
+# Uncommenting the following will turn on type checking of your output
+# sizes, but will interfere with the line counting at the end of this
+# exercise. https://github.com/google/jaxtyping/issues/160
+#
+# %load_ext jaxtyping
+# %jaxtyping.typechecker beartype.beartype
```
## Rules
@@ -121,8 +132,8 @@ Compute [ones](https://numpy.org/doc/stable/reference/generated/numpy.ones.html)
def ones_spec(out):
for i in range(len(out)):
out[i] = 1
-
-def ones(i: int) -> TT["i"]:
+
+def ones(i: int) -> Ints["{i}"]:
raise NotImplementedError
test_ones = make_test("one", ones, ones_spec, add_sizes=["i"])
@@ -150,7 +161,7 @@ def sum_spec(a, out):
for i in range(len(a)):
out[0] += a[i]
-def sum(a: TT["i"]) -> TT[1]:
+def sum(a: Reals["i"]) -> Reals["1"]:
raise NotImplementedError
@@ -179,7 +190,7 @@ def outer_spec(a, b, out):
for j in range(len(out[0])):
out[i][j] = a[i] * b[j]
-def outer(a: TT["i"], b: TT["j"]) -> TT["i", "j"]:
+def outer(a: Reals["i"], b: Reals["j"]) -> Reals["i j"]:
raise NotImplementedError
test_outer = make_test("outer", outer, outer_spec)
@@ -206,7 +217,7 @@ def diag_spec(a, out):
for i in range(len(a)):
out[i] = a[i][i]
-def diag(a: TT["i", "i"]) -> TT["i"]:
+def diag(a: Reals["i i"]) -> Reals["i"]:
raise NotImplementedError
@@ -234,7 +245,7 @@ def eye_spec(out):
for i in range(len(out)):
out[i][i] = 1
-def eye(j: int) -> TT["j", "j"]:
+def eye(j: int) -> Ints["{j} {j}"]:
raise NotImplementedError
test_eye = make_test("eye", eye, eye_spec, add_sizes=["j"])
@@ -265,10 +276,9 @@ def triu_spec(out):
else:
out[i][j] = 0
-def triu(j: int) -> TT["j", "j"]:
+def triu(j: int) -> Ints["{j} {j}"]:
raise NotImplementedError
-
test_triu = make_test("triu", triu, triu_spec, add_sizes=["j"])
```
@@ -295,7 +305,7 @@ def cumsum_spec(a, out):
out[i] = total + a[i]
total += a[i]
-def cumsum(a: TT["i"]) -> TT["i"]:
+def cumsum(a: Reals["i"]) -> Reals["i"]:
raise NotImplementedError
test_cumsum = make_test("cumsum", cumsum, cumsum_spec)
@@ -323,7 +333,8 @@ def diff_spec(a, out):
for i in range(1, len(out)):
out[i] = a[i] - a[i - 1]
-def diff(a: TT["i"], i: int) -> TT["i"]:
+def diff(a: Reals["i"], i: int) -> Reals["i"]:
+ assert(i == a.shape[0])
raise NotImplementedError
test_diff = make_test("diff", diff, diff_spec, add_sizes=["i"])
@@ -351,10 +362,9 @@ def vstack_spec(a, b, out):
out[0][i] = a[i]
out[1][i] = b[i]
-def vstack(a: TT["i"], b: TT["i"]) -> TT[2, "i"]:
+def vstack(a: Reals["i"], b: Reals["i"]) -> Reals["2 i"]:
raise NotImplementedError
-
test_vstack = make_test("vstack", vstack, vstack_spec)
```
@@ -382,7 +392,8 @@ def roll_spec(a, out):
else:
out[i] = a[i + 1 - len(out)]
-def roll(a: TT["i"], i: int) -> TT["i"]:
+def roll(a: Reals["i"], i: int) -> Reals["i"]:
+ assert(i == a.shape[0])
raise NotImplementedError
@@ -410,10 +421,10 @@ def flip_spec(a, out):
for i in range(len(out)):
out[i] = a[len(out) - i - 1]
-def flip(a: TT["i"], i: int) -> TT["i"]:
+def flip(a: Reals["i"], i: int) -> Reals["i"]:
+ assert(i == a.shape[0])
raise NotImplementedError
-
test_flip = make_test("flip", flip, flip_spec, add_sizes=["i"])
```
@@ -442,10 +453,10 @@ def compress_spec(g, v, out):
out[j] = v[i]
j += 1
-def compress(g: TT["i", bool], v: TT["i"], i:int) -> TT["i"]:
+def compress(g: Bools["i"], v: Reals["i"], i: int) -> Reals["i"]:
+ assert(i == v.shape[0])
raise NotImplementedError
-
test_compress = make_test("compress", compress, compress_spec, add_sizes=["i"])
```
@@ -471,11 +482,10 @@ def pad_to_spec(a, out):
for i in range(min(len(out), len(a))):
out[i] = a[i]
-
-def pad_to(a: TT["i"], i: int, j: int) -> TT["j"]:
+def pad_to(a: Reals["i"], i: int, j: int) -> Reals["{j}"]:
+ assert(i == a.shape[0])
raise NotImplementedError
-
test_pad_to = make_test("pad_to", pad_to, pad_to_spec, add_sizes=["i", "j"])
```
@@ -505,15 +515,13 @@ def sequence_mask_spec(values, length, out):
else:
out[i][j] = 0
-def sequence_mask(values: TT["i", "j"], length: TT["i", int]) -> TT["i", "j"]:
+def sequence_mask(values: Reals["i j"], length: Ints["i"]) -> Reals["i j"]:
raise NotImplementedError
-
def constraint_set_length(d):
d["length"] = d["length"] % d["values"].shape[1]
return d
-
test_sequence = make_test("sequence_mask",
sequence_mask, sequence_mask_spec, constraint=constraint_set_length
)
@@ -540,10 +548,11 @@ def bincount_spec(a, out):
for i in range(len(a)):
out[a[i]] += 1
-def bincount(a: TT["i"], j: int) -> TT["j"]:
+def bincount(a: Ints["i"], j: int) -> Ints["{j}"]:
+ assert j >= max(a)
+ assert all(x >= 0 for x in a)
raise NotImplementedError
-
def constraint_set_max(d):
d["a"] = d["a"] % d["return"].shape[0]
return d
@@ -575,15 +584,13 @@ def scatter_add_spec(values, link, out):
for j in range(len(values)):
out[link[j]] += values[j]
-def scatter_add(values: TT["i"], link: TT["i"], j: int) -> TT["j"]:
+def scatter_add(values: Reals["i"], link: Ints["i"], j: int) -> Reals["{j}"]:
raise NotImplementedError
-
def constraint_set_max(d):
d["link"] = d["link"] % d["return"].shape[0]
return d
-
test_scatter_add = make_test("scatter_add",
scatter_add, scatter_add_spec, add_sizes=["j"], constraint=constraint_set_max
)
@@ -613,7 +620,9 @@ def flatten_spec(a, out):
out[k] = a[i][j]
k += 1
-def flatten(a: TT["i", "j"], i:int, j:int) -> TT["i * j"]:
+def flatten(a: Reals["i j"], i:int, j:int) -> Reals["i*j"]:
+ assert(i == a.shape[0])
+ assert(j == a.shape[1])
raise NotImplementedError
test_flatten = make_test("flatten", flatten, flatten_spec, add_sizes=["i", "j"])
@@ -640,7 +649,7 @@ def linspace_spec(i, j, out):
for k in range(len(out)):
out[k] = float(i + (j - i) * k / max(1, len(out) - 1))
-def linspace(i: TT[1], j: TT[1], n: int) -> TT["n", float]:
+def linspace(i: Reals["1"], j: Reals["1"], n: int) -> Reals["{n}"]:
raise NotImplementedError
test_linspace = make_test("linspace", linspace, linspace_spec, add_sizes=["n"])
@@ -670,7 +679,7 @@ def heaviside_spec(a, b, out):
else:
out[k] = int(a[k] > 0)
-def heaviside(a: TT["i"], b: TT["i"]) -> TT["i"]:
+def heaviside(a: Reals["i"], b: Reals["i"]) -> Reals["i"]:
raise NotImplementedError
test_heaviside = make_test("heaviside", heaviside, heaviside_spec)
@@ -697,16 +706,11 @@ def repeat_spec(a, d, out):
for i in range(d[0]):
for k in range(len(a)):
out[i][k] = a[k]
-
-def constraint_set(d):
- d["d"][0] = d["return"].shape[0]
- return d
-
-def repeat(a: TT["i"], d: TT[1]) -> TT["d", "i"]:
+def repeat(a: Reals["i"], d: int) -> Reals["{d} i"]:
raise NotImplementedError
-test_repeat = make_test("repeat", repeat, repeat_spec, constraint=constraint_set)
+test_repeat = make_test("repeat", repeat, repeat_spec, add_sizes=['d'])
```

@@ -730,8 +734,7 @@ def constraint_set(d):
d["boundaries"] = np.abs(d["boundaries"]).cumsum()
return d
-
-def bucketize(v: TT["i"], boundaries: TT["j"]) -> TT["i"]:
+def bucketize(v: Reals["i"], boundaries: Reals["j"]) -> Ints["i"]:
raise NotImplementedError
test_bucketize = make_test("bucketize", bucketize, bucketize_spec,
diff --git a/Tensor Puzzlers.ipynb b/Tensor Puzzlers.ipynb
index 8c2019b..5386d6a 100644
--- a/Tensor Puzzlers.ipynb
+++ b/Tensor Puzzlers.ipynb
@@ -37,17 +37,10 @@
"cell_type": "code",
"execution_count": 1,
"id": "a80d8a77",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2022-07-13T00:15:04.415840Z",
- "iopub.status.busy": "2022-07-13T00:15:04.415474Z",
- "iopub.status.idle": "2022-07-13T00:15:15.033050Z",
- "shell.execute_reply": "2022-07-13T00:15:15.032260Z"
- }
- },
+ "metadata": {},
"outputs": [],
"source": [
- "!pip install -qqq torchtyping hypothesis pytest git+https://github.com/chalk-diagrams/chalk\n",
+ "!pip install -qqq jaxtyping beartype hypothesis pytest git+https://github.com/chalk-diagrams/chalk\n",
"!wget -q https://github.com/srush/Tensor-Puzzles/raw/main/lib.py"
]
},
@@ -55,21 +48,25 @@
"cell_type": "code",
"execution_count": 2,
"id": "bf221907",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2022-07-13T00:15:15.036937Z",
- "iopub.status.busy": "2022-07-13T00:15:15.036583Z",
- "iopub.status.idle": "2022-07-13T00:15:16.650907Z",
- "shell.execute_reply": "2022-07-13T00:15:16.650254Z"
- }
- },
+ "metadata": {},
"outputs": [],
"source": [
"from lib import draw_examples, make_test, run_test\n",
"import torch\n",
"import numpy as np\n",
- "from torchtyping import TensorType as TT\n",
- "tensor = torch.tensor"
+ "import jaxtyping\n",
+ "from lib import Ints, Reals, Bools # jaxtyping shorthand \n",
+ "\n",
+ "import beartype\n",
+ "Tensor = torch.Tensor\n",
+ "tensor = torch.tensor\n",
+ "\n",
+ "# Uncommenting the following will turn on type checking of your output\n",
+ "# sizes, but will interfere with the line counting at the end of this\n",
+ "# exercise. https://github.com/google/jaxtyping/issues/160\n",
+ "# \n",
+ "# %load_ext jaxtyping\n",
+ "# %jaxtyping.typechecker beartype.beartype"
]
},
{
@@ -115,12 +112,6 @@
"execution_count": 3,
"id": "1e917499",
"metadata": {
- "execution": {
- "iopub.execute_input": "2022-07-13T00:15:16.654641Z",
- "iopub.status.busy": "2022-07-13T00:15:16.654307Z",
- "iopub.status.idle": "2022-07-13T00:15:16.697912Z",
- "shell.execute_reply": "2022-07-13T00:15:16.697280Z"
- },
"lines_to_next_cell": 2
},
"outputs": [
@@ -128,96 +119,75 @@
"data": {
"image/svg+xml": [
"\n",
- ""
+ ""
],
"text/plain": [
- "Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=24.000120000000003, height=3.6002399999999994, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -8.881784197001252e-16,\n",
- " 0.0, 1.0, -1.2001199999999999), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.5), diagram=ApplyStyle(style=Style(line_width=(, 0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='arange', font_size=0.75), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 1.0001), diagram=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ "Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(24.000120000000003, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 3.6002399999999994), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-24.000120000000003, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -3.6002399999999994), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -12.000060000000001,\n",
+ " 0.0, 1.0, -1.8001199999999997)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -8.881784197001252e-16,\n",
+ " 0.0, 1.0, -1.2001199999999999), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='arange', font_size=0.75), style=Style(line_width_=(, 0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.5))), diagram2=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.0001))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
" 0.0, 1.0, 2.00015), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -10.0,\n",
- " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n",
- " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -2.0,\n",
- " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n",
+ " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n",
+ " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.50005,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -2.0,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 6.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.0,\n",
- " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 3.5,\n",
+ " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 6.50005,\n",
+ " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.50005,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.0,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 10.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 15.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -4.0,\n",
- " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n",
+ " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 10.50005,\n",
+ " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 15.50005,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -4.0,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 3.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 4.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.7, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.7, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 4.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 6.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.76, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 6.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.76, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 6.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.8200000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.8200000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 6.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 8.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.88, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))))), diagram2=Empty())))))), diagram2=Empty())))"
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.88, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 7.5,\n",
+ " 0.0, 1.0, -0.5)))), diagram2=Empty())))))), diagram2=Empty())))"
]
},
"execution_count": 3,
@@ -226,7 +196,7 @@
}
],
"source": [
- "def arange(i: int):\n",
+ "def arange(i: int) -> Ints[\"i\"]:\n",
" \"Use this function to replace a for-loop.\"\n",
" return torch.tensor(range(i))\n",
"\n",
@@ -237,222 +207,171 @@
"cell_type": "code",
"execution_count": 4,
"id": "aa922d9d",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2022-07-13T00:15:16.701951Z",
- "iopub.status.busy": "2022-07-13T00:15:16.701616Z",
- "iopub.status.idle": "2022-07-13T00:15:16.795294Z",
- "shell.execute_reply": "2022-07-13T00:15:16.794635Z"
- }
- },
+ "metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"\n",
- ""
+ ""
],
"text/plain": [
- "Compose(envelope=, diagram1=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=9.600119999999999, height=20.40012, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
- " 0.0, 1.0, -9.60006), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.5), diagram=ApplyStyle(style=Style(line_width=(, 0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='broadcast', font_size=0.75), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 1.0001), diagram=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ "Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(9.600119999999999, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 20.40012), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-9.600119999999999, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -20.40012), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -4.800059999999999,\n",
+ " 0.0, 1.0, -10.20006)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -9.60006), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='broadcast', font_size=0.75), style=Style(line_width_=(, 0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.5))), diagram2=Primitive(shape=Spacer(width=0, height=1), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 1.0001))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
" 0.0, 1.0, 9.0001), diagram=ApplyTransform(transform=Affine(1.0, 0.0, -4.0,\n",
- " 0.0, 1.0, -6.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n",
- " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='a', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n",
- " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.5,\n",
- " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
+ " 0.0, 1.0, -6.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n",
+ " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='a', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n",
+ " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -1.5,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 1.5,\n",
+ " 0.0, 1.0, -0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 2.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n",
- " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
- " 0.0, 1.0, -1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 2.5,\n",
+ " 0.0, 1.0, -0.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n",
+ " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -1.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
" 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n",
- " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 1.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, 0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
" 0.0, 1.0, 1.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n",
- " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 2.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 2.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n",
- " -1.0, 0.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 5.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n",
- " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.25), diagram=ApplyStyle(style=Style(line_width=(, 0.0), line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Text(text='b', font_size=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.5001), diagram=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))), diagram2=Empty()), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n",
- " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
- " 0.0, 1.0, -2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, 1.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(0.0, 1.0, 0.0,\n",
+ " -1.0, 0.0, 2.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 5.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -5e-05,\n",
+ " 0.0, 1.0, -0.25005), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.0)), diagram2=Primitive(shape=Text(text='b', font_size=0.5), style=Style(line_width_=(, 0.0), line_color_=None, fill_color_=, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.25))), diagram2=Primitive(shape=Spacer(width=0, height=0.5), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
+ " 0.0, 1.0, 0.5001)))), diagram2=Empty()), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 0.50005,\n",
+ " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 3.00005,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.0,\n",
+ " 0.0, 1.0, -2.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
" 0.0, 1.0, 0.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n",
- " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 1.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.46, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, 0.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
" 0.0, 1.0, 1.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n",
- " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 2.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.52, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.52, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, 1.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
" 0.0, 1.0, 2.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n",
- " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 3.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.5800000000000001, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
+ " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.5800000000000001, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, 2.5))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
" 0.0, 1.0, 3.5), diagram=ApplyTransform(transform=Affine(0.0, 1.0, 0.0,\n",
- " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 4.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.64, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=, fill_opacity=None, dashing=None, output_size=None), diagram=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0))))))), diagram2=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 5.50005,\n",
- " 0.0, 1.0, 0.0), diagram=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n",
- " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n",
- " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Rectangle(width=1, height=1, radius=None), style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=None, dashing=None, output_size=None), transform=Affine(1.0, 0.0, 0.0,\n",
- " 0.0, 1.0, 0.0)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
+ " -1.0, 0.0, 0.0), diagram=Empty()))), diagram2=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=, fill_opacity_=0.64, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, 3.5)))), diagram2=Empty()))), diagram2=Primitive(shape=Spacer(width=1.0, height=0), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, 5.50005,\n",
+ " 0.0, 1.0, 0.0))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 7.00005,\n",
+ " 0.0, 1.0, 0.0), diagram=Compose(envelope=, diagram1=ApplyTransform(transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, -0.0), diagram=Compose(envelope=, diagram1=Compose(envelope=, diagram1=Primitive(shape=Path(loc_trails=[Located(trail=Trail(segments=[Segment(offset=Vec2(1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, 1.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(-1.0, 0.0), origin=Vec2(0.0, 0.0)), Segment(offset=Vec2(0.0, -1.0), origin=Vec2(0.0, 0.0))], closed=True), location=Vec2(0.0, 0.0))]), style=Style(line_width_=None, line_color_=None, fill_color_=None, fill_opacity_=None, dashing_=None, output_size=None), transform=Affine(1.0, 0.0, -0.5,\n",
+ " 0.0, 1.0, -0.5)), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 0.5,\n",
" 0.0, 1.0, 0.0), diagram=ApplyTransform(transform=Affine(1.0, 0.0, 0.0,\n",
- " -0.0, 1.0, 0.0), diagram=Empty()))), diagram2=ApplyTransform(transform=Affine(1.0, 0.0, 1.0,\n",
- " 0.0, 1.0, 0.0), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=None, fill_opacity=0.46, dashing=None, output_size=None), diagram=ApplyStyle(style=Style(line_width=None, line_color=None, fill_color=