
Persistent Object Manager text dump: 
	i	addr		type		arg	head	tail	size
	0	##ADDR##	________	0	#HEAD#	#TAIL#	0
	1	##ADDR##	module__	0	#HEAD#	#TAIL#	##SIZE##
	2	##ADDR##	namespc_	0	#HEAD#	#TAIL#	32
	3	##ADDR##	procdefn	0	#HEAD#	#TAIL#	108
	4	##ADDR##	pintplch	0	#HEAD#	#TAIL#	29
	5	##ADDR##	pintinst	0	#HEAD#	#TAIL#	16
	6	##ADDR##	pintplch	0	#HEAD#	#TAIL#	29
	7	##ADDR##	pintinst	0	#HEAD#	#TAIL#	16
	8	##ADDR##	procplch	0	#HEAD#	#TAIL#	25
	9	##ADDR##	portscop	0	#HEAD#	#TAIL#	16
	10	##ADDR##	procinst	0	#HEAD#	#TAIL#	20
	11	##ADDR##	proctprf	0	#HEAD#	#TAIL#	20
	12	##ADDR##	procdefn	0	#HEAD#	#TAIL#	112
	13	##ADDR##	pintplch	0	#HEAD#	#TAIL#	29
	14	##ADDR##	pintinst	0	#HEAD#	#TAIL#	16
	15	##ADDR##	pintplch	0	#HEAD#	#TAIL#	29
	16	##ADDR##	piarthex	0	#HEAD#	#TAIL#	17
	17	##ADDR##	spimvref	0	#HEAD#	#TAIL#	16
	18	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	19	##ADDR##	pintinst	0	#HEAD#	#TAIL#	16
	20	##ADDR##	dboolplh	0	#HEAD#	#TAIL#	25
	21	##ADDR##	portscop	0	#HEAD#	#TAIL#	16
	22	##ADDR##	datainst	0	#HEAD#	#TAIL#	20
	23	##ADDR##	datatprf	0	#HEAD#	#TAIL#	20
	24	##ADDR##	datadefn	0	#HEAD#	#TAIL#	69
	25	##ADDR##	drnglst_	0	#HEAD#	#TAIL#	16
	26	##ADDR##	dynrng__	0	#HEAD#	#TAIL#	16
	27	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	28	##ADDR##	piarthex	0	#HEAD#	#TAIL#	17
	29	##ADDR##	spimvref	0	#HEAD#	#TAIL#	16
	30	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	31	##ADDR##	dbalias_	0	#HEAD#	#TAIL#	20
	32	##ADDR##	sdbmiref	0	#HEAD#	#TAIL#	16
	33	##ADDR##	dindlst_	0	#HEAD#	#TAIL#	16
	34	##ADDR##	piarthex	0	#HEAD#	#TAIL#	17
	35	##ADDR##	spimvref	0	#HEAD#	#TAIL#	16
	36	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	37	##ADDR##	sdbmiref	0	#HEAD#	#TAIL#	16
	38	##ADDR##	dindlst_	0	#HEAD#	#TAIL#	16
	39	##ADDR##	piarthex	0	#HEAD#	#TAIL#	17
	40	##ADDR##	spimvref	0	#HEAD#	#TAIL#	16
	41	##ADDR##	spimvref	0	#HEAD#	#TAIL#	16
	42	##ADDR##	footprnt	0	#HEAD#	#TAIL#	358
	43	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	44	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	45	##ADDR##	dprmlst_	0	#HEAD#	#TAIL#	20
	46	##ADDR##	spimvref	0	#HEAD#	#TAIL#	16
	47	##ADDR##	piarthex	0	#HEAD#	#TAIL#	17
	48	##ADDR##	spimvref	0	#HEAD#	#TAIL#	16
	49	##ADDR##	drnglst_	0	#HEAD#	#TAIL#	16
	50	##ADDR##	dynrng__	0	#HEAD#	#TAIL#	16
	51	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	52	##ADDR##	piarthex	0	#HEAD#	#TAIL#	17
	53	##ADDR##	spimvref	0	#HEAD#	#TAIL#	16
	54	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	55	##ADDR##	footprnt	0	#HEAD#	#TAIL#	488
	56	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	57	##ADDR##	cnstpi__	0	#HEAD#	#TAIL#	12
	58	##ADDR##	cprmlst_	0	#HEAD#	#TAIL#	20
	59	##ADDR##	procplch	0	#HEAD#	#TAIL#	27
	60	##ADDR##	procinst	0	#HEAD#	#TAIL#	20
	61	##ADDR##	proctprf	0	#HEAD#	#TAIL#	20
	62	##ADDR##	dprmlst_	0	#HEAD#	#TAIL#	20
	63	##ADDR##	footprnt	0	#HEAD#	#TAIL#	481
	64	##ADDR##	cprmlst_	0	#HEAD#	#TAIL#	20

In module created from: ##FILE## (unrolled) (created)
In namespace "", we have: {
  0 parameter-collections
  1 instantiation-collections
  0 sub-namespaces
  2 definitions
  0 typedefs
  Definitions:
    bar = process-definition (defined) bar<
      pint<> M
      pint<> N
      >(
        foo<bar::M, bar::M+1> x[0..N-1]
      )
      In definition "bar", we have: {
      Parameters:
        M = pint<> bar::M
        N = pint<> bar::N
      Instances:
        x = foo<bar::M, bar::M+1> bar::x^1
      unroll sequence: 
        ports: (
          foo<bar::M, bar::M+1> x[0..N-1]
        )
      footprint collection: {
        <3, 2> {
          M = pint^0 value: 3
          N = pint^0 value: 2
          x = process foo<3, 4>^1
            {
              [0] = bar<3, 2>::x[0] (1) (
                a = bool^1
                  {
                    [0] = bar<3, 2>::x[0].a[0] (1) 
                    [1] = bar<3, 2>::x[0].a[1] (2) 
                    [2] = bar<3, 2>::x[0].a[1] (2) 
                  }
              )
              [1] = bar<3, 2>::x[1] (2) (
                a = bool^1
                  {
                    [0] = bar<3, 2>::x[1].a[0] (3) 
                    [1] = bar<3, 2>::x[1].a[1] (4) 
                    [2] = bar<3, 2>::x[1].a[1] (4) 
                  }
              )
            }
          Created state:
          process instance pool:
          1	bar<3, 2>::x[0]
          2	bar<3, 2>::x[1]
          bool instance pool:
          1	bar<3, 2>::x[0].a[0]
          2	bar<3, 2>::x[0].a[1]
          3	bar<3, 2>::x[1].a[0]
          4	bar<3, 2>::x[1].a[1]
          bool port aliases:
          2: bar<3, 2>::x[0].a[1] = bar<3, 2>::x[0].a[2]
          4: bar<3, 2>::x[1].a[1] = bar<3, 2>::x[1].a[2]
        }
      }
      }

    foo = process-definition (defined) foo<
      pint<> D
      pint<> E (default = D+1)
      >(
        bool<> a[0..D-1]
      )
      In definition "foo", we have: {
      Parameters:
        D = pint<> foo::D
        E = pint<> foo::E (default = D+1)
      Instances:
        a = bool<> foo::a^1
      unroll sequence: 
        ports: (
          bool<> a[0..D-1]
        )
        a[D-1] = a[E-D];
      footprint collection: {
        <3, 4> {
          D = pint^0 value: 3
          E = pint^0 value: 4
          a = bool^1
            {
              [0] = foo<3, 4>::a[0] (1) 
              [1] = foo<3, 4>::a[1] (2) 
              [2] = foo<3, 4>::a[1] (2) 
            }
          Created state:
          bool instance pool:
          1	foo<3, 4>::a[0]
          2	foo<3, 4>::a[1]
          bool port aliases:
          2: foo<3, 4>::a[1] = foo<3, 4>::a[2]
        }
      }
      }

  Instances:
    poo = bar<3, 2> poo
}

footprint: {
  poo = process bar<3, 2>^0 = poo (1) (
    x = process foo<3, 4>^1
      {
        [0] = poo.x[0] (2) (
          a = bool^1
            {
              [0] = poo.x[0].a[0] (1) 
              [1] = poo.x[0].a[1] (2) 
              [2] = poo.x[0].a[1] (2) 
            }
        )
        [1] = poo.x[1] (3) (
          a = bool^1
            {
              [0] = poo.x[1].a[0] (3) 
              [1] = poo.x[1].a[1] (4) 
              [2] = poo.x[1].a[1] (4) 
            }
        )
      }
  )
  Created state:
  process instance pool:
  1	poo
  2	poo.x[0]
  3	poo.x[1]
  bool instance pool:
  1	poo.x[0].a[0]
  2	poo.x[0].a[1]
  3	poo.x[1].a[0]
  4	poo.x[1].a[1]
}
