> Range(5)->Map(Range(it,it+5)->Map(Range(it,it+5)))
Range(5)->Map(Range(it, it + 5)->Map(Range(it, it + 5))) : i8***
BndKind:Call, Type:i8***, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*)):i8**)):i8***))
Func sig: () to i8***
Sequence: Seq<Seq<Seq<i8>>>
 0) Sequence: Seq<Seq<i8>>
     0) Sequence: Seq<i8>
         0) 0
         1) 1
        ...
     1) Sequence: Seq<i8>
         0) 1
         1) 2
        ...
    ...
 1) Sequence: Seq<Seq<i8>>
     0) Sequence: Seq<i8>
         0) 1
         1) 2
        ...
     1) Sequence: Seq<i8>
         0) 2
         1) 3
        ...
    ...
...
Total blob size: 449 bytes
###
> Range(5)->Map(Range(it,it+5)->Map({a:Range(it,it+5), b:it}))
Range(5)->Map(Range(it, it + 5)->Map({ a : Range(it, it + 5), b : it })) : {a:i8*, b:i8}**
BndKind:Call, Type:{a:i8*, b:i8}**, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), {a:Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*), b:Scope(2)})))))
Func sig: () to {a:i8*, b:i8}**
Sequence: Seq<Seq<{Seq<i8>,i8}>>
 0) Sequence: Seq<{Seq<i8>,i8}>
     0) { a: Sequence: Seq<i8>
             0) 0
             1) 1
            ...
          b: 0 }
     1) { a: Sequence: Seq<i8>
             0) 1
             1) 2
            ...
          b: 1 }
    ...
 1) Sequence: Seq<{Seq<i8>,i8}>
     0) { a: Sequence: Seq<i8>
             0) 1
             1) 2
            ...
          b: 1 }
     1) { a: Sequence: Seq<i8>
             0) 2
             1) 3
            ...
          b: 2 }
    ...
...
Total blob size: 574 bytes
###
> Range(5)->Map(Range(it,it+5)->Map((Range(it,it+5), it)))
Range(5)->Map(Range(it, it + 5)->Map((Range(it, it + 5), it))) : (i8*, i8)**
BndKind:Call, Type:(i8*, i8)**, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), (Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*), Scope(2)):(i8*, i8)):(i8*, i8)*)):(i8*, i8)**))
Func sig: () to (i8*, i8)**
Sequence: Seq<Seq<(Seq<i8>,i8)>>
 0) Sequence: Seq<(Seq<i8>,i8)>
     0) (Sequence: Seq<i8>
             0) 0
             1) 1
            ...
          , 0)
     1) (Sequence: Seq<i8>
             0) 1
             1) 2
            ...
          , 1)
    ...
 1) Sequence: Seq<(Seq<i8>,i8)>
     0) (Sequence: Seq<i8>
             0) 1
             1) 2
            ...
          , 1)
     1) (Sequence: Seq<i8>
             0) 2
             1) 3
            ...
          , 2)
    ...
...
Total blob size: 574 bytes
###
> Range(5)->Map({a:Range(it,it+5)->Map(Range(it,it+5)), b:it})
Range(5)->Map({ a : Range(it, it + 5)->Map(Range(it, it + 5)), b : it }) : {a:i8**, b:i8}*
BndKind:Call, Type:{a:i8**, b:i8}*, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), {a:Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*)):i8**), b:Scope(1)})))
Func sig: () to {a:i8**, b:i8}*
Sequence: Seq<{Seq<Seq<i8>>,i8}>
 0) { a: Sequence: Seq<Seq<i8>>
         0) Sequence: Seq<i8>
             0) 0
             1) 1
            ...
         1) Sequence: Seq<i8>
             0) 1
             1) 2
            ...
        ...
      b: 0 }
 1) { a: Sequence: Seq<Seq<i8>>
         0) Sequence: Seq<i8>
             0) 1
             1) 2
            ...
         1) Sequence: Seq<i8>
             0) 2
             1) 3
            ...
        ...
      b: 1 }
...
Total blob size: 474 bytes
###
> Range(5)->Map((Range(it,it+5)->Map(Range(it,it+5)), it))
Range(5)->Map((Range(it, it + 5)->Map(Range(it, it + 5)), it)) : (i8**, i8)*
BndKind:Call, Type:(i8**, i8)*, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), (Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*)):i8**), Scope(1)):(i8**, i8)):(i8**, i8)*))
Func sig: () to (i8**, i8)*
Sequence: Seq<(Seq<Seq<i8>>,i8)>
 0) (Sequence: Seq<Seq<i8>>
         0) Sequence: Seq<i8>
             0) 0
             1) 1
            ...
         1) Sequence: Seq<i8>
             0) 1
             1) 2
            ...
        ...
      , 0)
 1) (Sequence: Seq<Seq<i8>>
         0) Sequence: Seq<i8>
             0) 1
             1) 2
            ...
         1) Sequence: Seq<i8>
             0) 2
             1) 3
            ...
        ...
      , 1)
...
Total blob size: 474 bytes
###
> Range(5)->Map({a:Range(it,it+5)->Map({c:Range(it,it+5), d:-it}), b:it})
Range(5)->Map({ a : Range(it, it + 5)->Map({ c : Range(it, it + 5), d : -it }), b : it }) : {a:{c:i8*, d:i8}*, b:i8}*
BndKind:Call, Type:{a:{c:i8*, d:i8}*, b:i8}*, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), {a:Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), {c:Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*), d:Add([-] Scope(2))})), b:Scope(1)})))
Func sig: () to {a:{c:i8*, d:i8}*, b:i8}*
Sequence: Seq<{Seq<{Seq<i8>,i8}>,i8}>
 0) { a: Sequence: Seq<{Seq<i8>,i8}>
         0) { c: Sequence: Seq<i8>
                 0) 0
                 1) 1
                ...
              d: 0 }
         1) { c: Sequence: Seq<i8>
                 0) 1
                 1) 2
                ...
              d: -1 }
        ...
      b: 0 }
 1) { a: Sequence: Seq<{Seq<i8>,i8}>
         0) { c: Sequence: Seq<i8>
                 0) 1
                 1) 2
                ...
              d: -1 }
         1) { c: Sequence: Seq<i8>
                 0) 2
                 1) 3
                ...
              d: -2 }
        ...
      b: 1 }
...
Total blob size: 599 bytes
###
> Range(5)->Map((Range(it,it+5)->Map((Range(it,it+5), -it)), it))
Range(5)->Map((Range(it, it + 5)->Map((Range(it, it + 5), -it)), it)) : ((i8*, i8)*, i8)*
BndKind:Call, Type:((i8*, i8)*, i8)*, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), (Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), (Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*), Add([-] Scope(2))):(i8*, i8)):(i8*, i8)*), Scope(1)):((i8*, i8)*, i8)):((i8*, i8)*, i8)*))
Func sig: () to ((i8*, i8)*, i8)*
Sequence: Seq<(Seq<(Seq<i8>,i8)>,i8)>
 0) (Sequence: Seq<(Seq<i8>,i8)>
         0) (Sequence: Seq<i8>
                 0) 0
                 1) 1
                ...
              , 0)
         1) (Sequence: Seq<i8>
                 0) 1
                 1) 2
                ...
              , -1)
        ...
      , 0)
 1) (Sequence: Seq<(Seq<i8>,i8)>
         0) (Sequence: Seq<i8>
                 0) 1
                 1) 2
                ...
              , -1)
         1) (Sequence: Seq<i8>
                 0) 2
                 1) 3
                ...
              , -2)
        ...
      , 1)
...
Total blob size: 599 bytes
###
> Range(5)->Map((Range(it,it+5)->Map({c:Range(it,it+5), d:-it}), it))
Range(5)->Map((Range(it, it + 5)->Map({ c : Range(it, it + 5), d : -it }), it)) : ({c:i8*, d:i8}*, i8)*
BndKind:Call, Type:({c:i8*, d:i8}*, i8)*, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), (Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), {c:Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*), d:Add([-] Scope(2))})), Scope(1)):({c:i8*, d:i8}*, i8)):({c:i8*, d:i8}*, i8)*))
Func sig: () to ({c:i8*, d:i8}*, i8)*
Sequence: Seq<(Seq<{Seq<i8>,i8}>,i8)>
 0) (Sequence: Seq<{Seq<i8>,i8}>
         0) { c: Sequence: Seq<i8>
                 0) 0
                 1) 1
                ...
              d: 0 }
         1) { c: Sequence: Seq<i8>
                 0) 1
                 1) 2
                ...
              d: -1 }
        ...
      , 0)
 1) (Sequence: Seq<{Seq<i8>,i8}>
         0) { c: Sequence: Seq<i8>
                 0) 1
                 1) 2
                ...
              d: -1 }
         1) { c: Sequence: Seq<i8>
                 0) 2
                 1) 3
                ...
              d: -2 }
        ...
      , 1)
...
Total blob size: 599 bytes
###
> Range(5)->Map({a:Range(it,it+5)->Map((Range(it,it+5), -it)), b:it})
Range(5)->Map({ a : Range(it, it + 5)->Map((Range(it, it + 5), -it)), b : it }) : {a:(i8*, i8)*, b:i8}*
BndKind:Call, Type:{a:(i8*, i8)*, b:i8}*, Bnd:(Call(∂.ForEach([map:1] Call(∂.Range(5:i8):i8*), {a:Call(∂.ForEach([map:2] Call(∂.Range(Scope(1), Add(Scope(1), 5:i8)):i8*), (Call(∂.Range(Scope(2), Add(Scope(2), 5:i8)):i8*), Add([-] Scope(2))):(i8*, i8)):(i8*, i8)*), b:Scope(1)})))
Func sig: () to {a:(i8*, i8)*, b:i8}*
Sequence: Seq<{Seq<(Seq<i8>,i8)>,i8}>
 0) { a: Sequence: Seq<(Seq<i8>,i8)>
         0) (Sequence: Seq<i8>
                 0) 0
                 1) 1
                ...
              , 0)
         1) (Sequence: Seq<i8>
                 0) 1
                 1) 2
                ...
              , -1)
        ...
      b: 0 }
 1) { a: Sequence: Seq<(Seq<i8>,i8)>
         0) (Sequence: Seq<i8>
                 0) 1
                 1) 2
                ...
              , -1)
         1) (Sequence: Seq<i8>
                 0) 2
                 1) 3
                ...
              , -2)
        ...
      b: 1 }
...
Total blob size: 599 bytes
###
> Repeat(Range(10), 5)
Repeat(Range(10), 5) : i8**
BndKind:Call, Type:i8**, Bnd:(Call(∂.Repeat(Call(∂.Range(10:i8):i8*), 5:i8):i8**))
Func sig: () to i8**
Sequence: Seq<Seq<i8>>
 0) Sequence: Seq<i8>
     0) 0
     1) 1
    ...
 1) Sequence: Seq<i8>
     0) 0
     1) 1
    ...
...
Total blob size: 124 bytes
###
> Repeat({a:Range(10)}, 5)
Repeat({ a : Range(10) }, 5) : {a:i8*}*
BndKind:Call, Type:{a:i8*}*, Bnd:(Call(∂.Repeat({a:Call(∂.Range(10:i8):i8*)}, 5:i8)))
Func sig: () to {a:i8*}*
Sequence: Seq<{Seq<i8>}>
 0) { a: Sequence: Seq<i8>
         0) 0
         1) 1
        ...
    }
 1) { a: Sequence: Seq<i8>
         0) 0
         1) 1
        ...
    }
...
Total blob size: 139 bytes
###
> Repeat((Range(10),), 5)
Repeat((Range(10),), 5) : (i8*)*
BndKind:Call, Type:(i8*)*, Bnd:(Call(∂.Repeat((Call(∂.Range(10:i8):i8*),):(i8*), 5:i8):(i8*)*))
Func sig: () to (i8*)*
Sequence: Seq<(Seq<i8>)>
 0) (Sequence: Seq<i8>
         0) 0
         1) 1
        ...
    ,)
 1) (Sequence: Seq<i8>
         0) 0
         1) 1
        ...
    ,)
...
Total blob size: 139 bytes
###
> With(S: Range(5), { A:S, B:[S, S]})
With(S : Range(5), { A : S, B : [S, S] }) : {A:i8*, B:i8**}
BndKind:Call, Type:{A:i8*, B:i8**}, Bnd:(Call(∂.With([with:1] Call(∂.Range(5:i8):i8*), {A:Scope(1), B:[Scope(1), Scope(1)]:i8**})))
Func sig: () to {A:i8*, B:i8**}
Type: {Seq<i8>,Seq<Seq<i8>>}, Value: { A: Sequence: Seq<i8>
     0) 0
     1) 1
    ...
  B: Sequence: Seq<Seq<i8>>
     0) Sequence: Seq<i8>
         0) 0
         1) 1
        ...
     1) Sequence: Seq<i8>
         0) 0
         1) 1
        ...
}
Total blob size: 73 bytes
###
