# モジュールA
var
x*, y: int
proc `*` *(a, b: seq[int]): seq[int] =
# 新しいシーケンスを割り当てる
newSeq(result, len(a))
# 二つのシーケンスを掛け合わせる
for i in 0..len(a)-1: result[i] = a[i] * b[i]
when isMainModule:
# 新しく作ったシーケンスのための``*``演算子を試す
assert(@
[1, 2, 3] * @
[1, 2, 3] == @
[1, 4, 9])
IyDjg6Ljgrjjg6Xjg7zjg6tBCnZhcgogIHgqLCB5OiBpbnQKCnByb2MgYCpgICooYSwgYjogc2VxW2ludF0pOiBzZXFbaW50XSA9CiAgIyDmlrDjgZfjgYTjgrfjg7zjgrHjg7PjgrnjgpLlibLjgorlvZPjgabjgosKICBuZXdTZXEocmVzdWx0LCBsZW4oYSkpCiAgIyDkuozjgaTjga7jgrfjg7zjgrHjg7PjgrnjgpLmjpvjgZHlkIjjgo/jgZvjgosKICBmb3IgaSBpbiAwLi5sZW4oYSktMTogcmVzdWx0W2ldID0gYVtpXSAqIGJbaV0KCndoZW4gaXNNYWluTW9kdWxlOgogICMg5paw44GX44GP5L2c44Gj44Gf44K344O844Kx44Oz44K544Gu44Gf44KB44GuYGAqYGDmvJTnrpflrZDjgpLoqabjgZkKICBhc3NlcnQoQFsxLCAyLCAzXSAqIEBbMSwgMiwgM10gPT0gQFsxLCA0LCA5XSkK