> Tensor.From(Range(1, 7))
Tensor.From(Range(1, 7)) : i8[*]
BndKind:Call, Type:i8[*], Bnd:(Call(∂.Tensor.From(Call(∂.Range(1:i8, 7:i8):i8*)):i8[*]))
Func sig: (<ctx>:x) to i8[*]
Ten<i8>(6)<1> [1, 2, 3, 4, 5, 6]
*** Ctx ping count: 0
###
> Tensor.From(Range(1, 7), 6)
Tensor.From(Range(1, 7), 6) : i8[*]
BndKind:Call, Type:i8[*], Bnd:(Call(∂.Tensor.From(Call(∂.Range(1:i8, 7:i8):i8*), 6:i8):i8[*]))
Func sig: (<ctx>:x) to i8[*]
Ten<i8>(6)<1> [1, 2, 3, 4, 5, 6]
*** Ctx ping count: 0
###
> Tensor.From(Range(1, 7), 5)
Tensor.From(Range(1, 7), 5) : i8[*]
BndKind:Call, Type:i8[*], Bnd:(Call(∂.Tensor.From(Call(∂.Range(1:i8, 7:i8):i8*), 5:i8):i8[*]))
Func sig: (<ctx>:x) to i8[*]
Ten<i8>(5)<1> [1, 2, 3, 4, 5]
*** Ctx ping count: 0
###
> Tensor.From(Range(1, 7), 10)
Tensor.From(Range(1, 7), 10) : i8[*]
BndKind:Call, Type:i8[*], Bnd:(Call(∂.Tensor.From(Call(∂.Range(1:i8, 7:i8):i8*), 10:i8):i8[*]))
Func sig: (<ctx>:x) to i8[*]
Ten<i8>(10)<1> [1, 2, 3, 4, 5, 6, 0, 0, 0, 0]
*** Ctx ping count: 0
###
> Tensor.From(Range(1, 7), 2, 3)
Tensor.From(Range(1, 7), 2, 3) : i8[*,*]
BndKind:Call, Type:i8[*,*], Bnd:(Call(∂.Tensor.From(Call(∂.Range(1:i8, 7:i8):i8*), 2:i8, 3:i8):i8[*,*]))
Func sig: (<ctx>:x) to i8[*,*]
Ten<i8>(2,3)<3,1>
  [[1, 2, 3]
   [4, 5, 6]]
*** Ctx ping count: 0
###
> Tensor.From(Range(1, 7), 2, 2)
Tensor.From(Range(1, 7), 2, 2) : i8[*,*]
BndKind:Call, Type:i8[*,*], Bnd:(Call(∂.Tensor.From(Call(∂.Range(1:i8, 7:i8):i8*), 2:i8, 2:i8):i8[*,*]))
Func sig: (<ctx>:x) to i8[*,*]
Ten<i8>(2,2)<2,1>
  [[1, 2]
   [3, 4]]
*** Ctx ping count: 0
###
> Tensor.From(Range(1, 7), 2, 5)
Tensor.From(Range(1, 7), 2, 5) : i8[*,*]
BndKind:Call, Type:i8[*,*], Bnd:(Call(∂.Tensor.From(Call(∂.Range(1:i8, 7:i8):i8*), 2:i8, 5:i8):i8[*,*]))
Func sig: (<ctx>:x) to i8[*,*]
Ten<i8>(2,5)<5,1>
  [[1, 2, 3, 4, 5]
   [6, 0, 0, 0, 0]]
*** Ctx ping count: 0
###
> Tensor.From([1, 2, 3, 4, 5, 6])
Tensor.From([1, 2, 3, 4, 5, 6]) : i8[*]
BndKind:Tensor, Type:i8[*], Bnd:([! 1:i8, 2:i8, 3:i8, 4:i8, 5:i8, 6:i8 !]:i8[6])
Func sig: () to i8[*]
Ten<i8>(6)<1> [1, 2, 3, 4, 5, 6]
###
> Tensor.From([1, 2, 3, 4, 5, 6], 6)
Tensor.From([1, 2, 3, 4, 5, 6], 6) : i8[*]
BndKind:Tensor, Type:i8[*], Bnd:([! 1:i8, 2:i8, 3:i8, 4:i8, 5:i8, 6:i8 !]:i8[6])
Func sig: () to i8[*]
Ten<i8>(6)<1> [1, 2, 3, 4, 5, 6]
###
> Tensor.From([1, 2, 3, 4, 5, 6], 5)
Tensor.From([1, 2, 3, 4, 5, 6], 5) : i8[*]
BndKind:Tensor, Type:i8[*], Bnd:([! 1:i8, 2:i8, 3:i8, 4:i8, 5:i8 !]:i8[5])
Func sig: () to i8[*]
Ten<i8>(5)<1> [1, 2, 3, 4, 5]
###
> Tensor.From([1, 2, 3, 4, 5, 6], 10)
Tensor.From([1, 2, 3, 4, 5, 6], 10) : i8[*]
BndKind:Call, Type:i8[*], Bnd:(Call(∂.Tensor.From([1:i8, 2:i8, 3:i8, 4:i8, 5:i8, 6:i8]:i8*, 10:i8):i8[*]))
Func sig: (<ctx>:x) to i8[*]
Ten<i8>(10)<1> [1, 2, 3, 4, 5, 6, 0, 0, 0, 0]
*** Ctx ping count: 0
###
> Tensor.From([1, 2, 3, 4, 5, 6], 2, 3)
Tensor.From([1, 2, 3, 4, 5, 6], 2, 3) : i8[*,*]
BndKind:Tensor, Type:i8[*,*], Bnd:([! 1:i8, 2:i8, 3:i8, 4:i8, 5:i8, 6:i8 !]:i8[2,3])
Func sig: () to i8[*,*]
Ten<i8>(2,3)<3,1>
  [[1, 2, 3]
   [4, 5, 6]]
###
> Tensor.From([1, 2, 3, 4, 5, 6], 2, 2)
Tensor.From([1, 2, 3, 4, 5, 6], 2, 2) : i8[*,*]
BndKind:Tensor, Type:i8[*,*], Bnd:([! 1:i8, 2:i8, 3:i8, 4:i8 !]:i8[2,2])
Func sig: () to i8[*,*]
Ten<i8>(2,2)<2,1>
  [[1, 2]
   [3, 4]]
###
> Tensor.From([1, 2, 3, 4, 5, 6], 2, 5)
Tensor.From([1, 2, 3, 4, 5, 6], 2, 5) : i8[*,*]
BndKind:Call, Type:i8[*,*], Bnd:(Call(∂.Tensor.From([1:i8, 2:i8, 3:i8, 4:i8, 5:i8, 6:i8]:i8*, 2:i8, 5:i8):i8[*,*]))
Func sig: (<ctx>:x) to i8[*,*]
Ten<i8>(2,5)<5,1>
  [[1, 2, 3, 4, 5]
   [6, 0, 0, 0, 0]]
*** Ctx ping count: 0
###
> Tensor.From(Null([0]))
Tensor.From(Null([0])) : i8[*]
BndKind:Tensor, Type:i8[*], Bnd:([!  !]:i8[0])
Func sig: () to i8[*]
Ten<i8>(0)<0> []
###
> Tensor.From(Null([0]), 6)
Tensor.From(Null([0]), 6) : i8[*]
BndKind:Call, Type:i8[*], Bnd:(Call(∂.Tensor.From(null:i8*, 6:i8):i8[*]))
Func sig: (<ctx>:x) to i8[*]
Ten<i8>(6)<0> [0, 0, 0, 0, 0, 0]
*** Ctx ping count: 0
###
> Tensor.From(Null([0]), 2, 3)
Tensor.From(Null([0]), 2, 3) : i8[*,*]
BndKind:Call, Type:i8[*,*], Bnd:(Call(∂.Tensor.From(null:i8*, 2:i8, 3:i8):i8[*,*]))
Func sig: (<ctx>:x) to i8[*,*]
Ten<i8>(2,3)<0,0>
  [[0, 0, 0]
   [0, 0, 0]]
*** Ctx ping count: 0
###
> Tensor.From(Null([0]), 0)
Tensor.From(Null([0]), 0) : i8[*]
BndKind:Tensor, Type:i8[*], Bnd:([!  !]:i8[0])
Func sig: () to i8[*]
Ten<i8>(0)<0> []
###
> Tensor.From(Null([0]), 2, 0)
Tensor.From(Null([0]), 2, 0) : i8[*,*]
BndKind:Tensor, Type:i8[*,*], Bnd:([!  !]:i8[2,0])
Func sig: () to i8[*,*]
Ten<i8>(2,0)<0,0> []
###
> Tensor.From(Null([0]), 2, 0, 1000000)
Tensor.From(Null([0]), 2, 0, 1000000) : i8[*,*,*]
BndKind:Tensor, Type:i8[*,*,*], Bnd:([!  !]:i8[2,0,1000000])
Func sig: () to i8[*,*,*]
Ten<i8>(2,0,1000000)<0,0,0> []
###

**** New definitions: D, type: i8

> Tensor.From([1, 2, 3, 4, 5, 6], D)
Tensor.From([1, 2, 3, 4, 5, 6], D) : i8[*]
BndKind:Call, Type:i8[*], Bnd:(Call(∂.Tensor.From([1:i8, 2:i8, 3:i8, 4:i8, 5:i8, 6:i8]:i8*, Global(D)):i8[*]))
Func sig: (<ctx>:x, D:i8) to i8[*]
Ten<i8>(2)<1> [1, 2]
*** Ctx ping count: 0
###
> Tensor.From([1, 2, 3, 4, 5, 6], 2, D)
Tensor.From([1, 2, 3, 4, 5, 6], 2, D) : i8[*,*]
BndKind:Call, Type:i8[*,*], Bnd:(Call(∂.Tensor.From([1:i8, 2:i8, 3:i8, 4:i8, 5:i8, 6:i8]:i8*, 2:i8, Global(D)):i8[*,*]))
Func sig: (<ctx>:x, D:i8) to i8[*,*]
Ten<i8>(2,2)<2,1>
  [[1, 2]
   [3, 4]]
*** Ctx ping count: 0
###
> Tensor.From(Null([0]), D)
Tensor.From(Null([0]), D) : i8[*]
BndKind:Call, Type:i8[*], Bnd:(Call(∂.Tensor.From(null:i8*, Global(D)):i8[*]))
Func sig: (<ctx>:x, D:i8) to i8[*]
Ten<i8>(2)<0> [0, 0]
*** Ctx ping count: 0
###
> Tensor.From(Null([0]), 2, D)
Tensor.From(Null([0]), 2, D) : i8[*,*]
BndKind:Call, Type:i8[*,*], Bnd:(Call(∂.Tensor.From(null:i8*, 2:i8, Global(D)):i8[*,*]))
Func sig: (<ctx>:x, D:i8) to i8[*,*]
Ten<i8>(2,2)<0,0>
  [[0, 0]
   [0, 0]]
*** Ctx ping count: 0
###

**** New definitions: T, type: {A:i8}*

> Tensor.From(T)
Tensor.From(T) : {A:i8}[*]
BndKind:Call, Type:{A:i8}[*], Bnd:(Call(∂.Tensor.From(Global(T)):{A:i8}[*]))
Func sig: (<ctx>:x, T:{A:i8}*) to {A:i8}[*]
Ten<{i8}>(2)<1> [{ A: 3 }, { A: 5 }]
*** Ctx ping count: 2
    [0](2): Tensor.From(T)
###
> Tensor.From(T, 2)
Tensor.From(T, 2) : {A:i8}[*]
BndKind:Call, Type:{A:i8}[*], Bnd:(Call(∂.Tensor.From(Global(T), 2:i8):{A:i8}[*]))
Func sig: (<ctx>:x, T:{A:i8}*) to {A:i8}[*]
Ten<{i8}>(2)<1> [{ A: 3 }, { A: 5 }]
*** Ctx ping count: 0
###
> Tensor.From(T, 1)
Tensor.From(T, 1) : {A:i8}[*]
BndKind:Call, Type:{A:i8}[*], Bnd:(Call(∂.Tensor.From(Global(T), 1:i8):{A:i8}[*]))
Func sig: (<ctx>:x, T:{A:i8}*) to {A:i8}[*]
Ten<{i8}>(1)<0> [{ A: 3 }]
*** Ctx ping count: 0
###
> Tensor.From(T, 4)
Tensor.From(T, 4) : {A:i8}[*]
BndKind:Call, Type:{A:i8}[*], Bnd:(Call(∂.Tensor.From(Global(T), 4:i8):{A:i8}[*]))
Func sig: (<ctx>:x, T:{A:i8}*) to {A:i8}[*]
Ten<{i8}>(4)<1> [{ A: 3 }, { A: 5 }, { A: 0 }, { A: 0 }]
*** Ctx ping count: 0
###
> Tensor.From(T, 2, 1)
Tensor.From(T, 2, 1) : {A:i8}[*,*]
BndKind:Call, Type:{A:i8}[*,*], Bnd:(Call(∂.Tensor.From(Global(T), 2:i8, 1:i8):{A:i8}[*,*]))
Func sig: (<ctx>:x, T:{A:i8}*) to {A:i8}[*,*]
Ten<{i8}>(2,1)<1,0>
  [[{ A: 3 }]
   [{ A: 5 }]]
*** Ctx ping count: 0
###
> Tensor.From(T, 2, 2)
Tensor.From(T, 2, 2) : {A:i8}[*,*]
BndKind:Call, Type:{A:i8}[*,*], Bnd:(Call(∂.Tensor.From(Global(T), 2:i8, 2:i8):{A:i8}[*,*]))
Func sig: (<ctx>:x, T:{A:i8}*) to {A:i8}[*,*]
Ten<{i8}>(2,2)<2,1>
  [[{ A: 3 }, { A: 5 }]
   [{ A: 0 }, { A: 0 }]]
*** Ctx ping count: 0
###
> Tensor.From([])[0]
Tensor.From([])[0] : v
BndKind:Default, Type:v, Bnd:(dflt<v>)
*** Warning: (15,16) Node: Tensor.From([])[0], Message: Tensor index out of range, this will produce the item type's default value
*** Unsupported Exception: 'Unsupported default value'
###
> Tensor.From([])[n]
Tensor.From([])[n] : v
BndKind:Default, Type:v, Bnd:(dflt<v>)
*** Error: (16,17) Node: n, Message: Name does not exist in the current context
*** Warning: (15,16) Node: Tensor.From([])[n], Message: Tensor index out of range, this will produce the item type's default value
###

**** New definitions: n, type: i8
**** New definitions: vs, type: v*

> Tensor.From(vs)
Tensor.From(vs) : v[*]
BndKind:Call, Type:v[*], Bnd:(Call(∂.Tensor.From(Global(vs)):v[*]))
*** Unsupported Exception: 'Unsupported default value'
###
> Tensor.From(vs, 0)
Tensor.From(vs, 0) : v[*]
BndKind:Call, Type:v[*], Bnd:(Call(∂.Tensor.From(Global(vs), 0:i8):v[*]))
*** Unsupported Exception: 'Unsupported default value'
###
> Tensor.From(vs, 1)
Tensor.From(vs, 1) : v[*]
BndKind:Call, Type:v[*], Bnd:(Call(∂.Tensor.From(Global(vs), 1:i8):v[*]))
*** Unsupported Exception: 'Unsupported default value'
###
> Tensor.From(vs, 2, 2)
Tensor.From(vs, 2, 2) : v[*,*]
BndKind:Call, Type:v[*,*], Bnd:(Call(∂.Tensor.From(Global(vs), 2:i8, 2:i8):v[*,*]))
*** Unsupported Exception: 'Unsupported default value'
###
> []->ForEach({ x: it})->Tensor.From(1, 2)
[]->ForEach({ x : it })->Tensor.From(1, 2) : {x:v}[*,*]
BndKind:Call, Type:{x:v}[*,*], Bnd:(Call(∂.Tensor.From(null:{x:v}*, 1:i8, 2:i8):{x:v}[*,*]))
*** Unsupported Exception: 'Unsupported default value'
###
> vs->ForEach(Tensor.From([])[n])
vs->ForEach(Tensor.From([])[n]) : v*
BndKind:Call, Type:v*, Bnd:(Call(∂.With([with:1] IdxTen([!  !]:v[0], Global(n)):v, Call(∂.ForEach([map:2] Global(vs), Scope(1)):v*)):v*))
*** Unsupported Exception: 'Unsupported default value'
###
> Tensor.From(vs->ForEach({i: #, x: it}))
Tensor.From(vs->ForEach({ i : #, x : it })) : {i:i8, x:v}[*]
BndKind:Call, Type:{i:i8, x:v}[*], Bnd:(Call(∂.Tensor.From(Call(∂.ForEach([map:2] Global(vs), {i:Scope(1), x:Scope(2)}))):{i:i8, x:v}[*]))
*** Unsupported Exception: 'Unsupported default value'
###
> Tensor.From(Range(10)->{i: #, xs: vs})
Tensor.From(Range(10)->{ i : #, xs : vs }) : {i:i8, xs:v*}[*]
BndKind:Call, Type:{i:i8, xs:v*}[*], Bnd:(Call(∂.Tensor.From(Call(∂.ForEach([map:1] Call(∂.Range(10:i8):i8*), {i:Scope(1), xs:Global(vs)}))):{i:i8, xs:v*}[*]))
Func sig: (<ctx>:x, vs:v*) to {i:i8, xs:v*}[*]
Ten<{i8,Seq<obj>}>(10)<1> [{ i: 0, xs: <null> }, { i: 1, xs: <null> }, { i: 2, xs: <null> }, { i: 3, xs: <null> }, { i: 4, xs: <null> }, { i: 5, xs: <null> }, { i: 6, xs: <null> }, { i: 7, xs: <null> }, { i: 8, xs: <null> }, { i: 9, xs: <null> }]
*** Ctx ping count: 0
###
> Tensor.From(Range(10)->{i: #, xs: vs->ForEach({x:it})})
Tensor.From(Range(10)->{ i : #, xs : vs->ForEach({ x : it }) }) : {i:i8, xs:{x:v}*}[*]
BndKind:Call, Type:{i:i8, xs:{x:v}*}[*], Bnd:(Call(∂.With([with:2] Call(∂.ForEach([map:1] Global(vs), {x:Scope(1)})), Call(∂.Tensor.From(Call(∂.ForEach([map:3] Call(∂.Range(10:i8):i8*), {i:Scope(3), xs:Scope(2)}))):{i:i8, xs:{x:v}*}[*])):{i:i8, xs:{x:v}*}[*]))
Func sig: (<ctx>:x, vs:v*) to {i:i8, xs:{x:v}*}[*]
Ten<{i8,Seq<{obj}>}>(10)<1> [{ i: 0, xs: <null> }, { i: 1, xs: <null> }, { i: 2, xs: <null> }, { i: 3, xs: <null> }, { i: 4, xs: <null> }, { i: 5, xs: <null> }, { i: 6, xs: <null> }, { i: 7, xs: <null> }, { i: 8, xs: <null> }, { i: 9, xs: <null> }]
*** Ctx ping count: 0
###
