Interface for qBeta module object

Origin: ArrayDemos

XintegerEMC2array: obj
   int2int:
      in i: var integer
      out V: var integer
   intint2int:
      in i1: var integer
      in i2: var integer
      out V: var integer
   Array:
      pos: var integer
      noof: var integer
      rep: ref Indexed
      put:
         in e: var integer
         out res: ref Array
      get:
         out res: var integer
      nxt:
         out res: var integer
      prv:
         out res: var integer
      forAll:
         current: var integer
            -- inx: ?integer, dropped this and instead use pos
            
         loop:
      forAllIndex:
         inx: var integer
         loop:
      fill: forAllIndex
         in v: var integer
      sum:
         out s: var integer
      iadd: forAll
         in a: ref Array
      equal:
         in a: ref Array
         out b: var boolean
      greaterThan:
         --skal egentlig generere et boolean array
         in a: ref Array
         out b: var boolean
      print:<
   Range:
      in low: var integer
      in upp: var integer
      noof: obj +
      check:
         in inx: var integer
      print:
   D1_Array: Array
      in R: ref Range
      putAt:
         in inx: var integer
         in exp: var integer
         out res: ref Array
      getAt:
         in inx: var integer
         out res: var integer
      copy:
         out c: ref D1_Array
      like:
         out result: ref D1_Array
      forAllDo:
         DoIt:< int2int
         out result: ref D1_Array
      add:
         -- test at de har samme range
         -- det er slik NumPy har det
         in a: ref D1_Array
         out r: ref D1_Array
      print::<
   D2_Array: Array
      in R1: ref Range
      in R2: ref Range
      out res: ref D2_array
      putAt:
         in inx1: var integer
         in inx2: var integer
         in exp: var integer
         out res: ref D2_Array
         repPos: var integer
      getAt:
         in inx1: var integer
         in inx2: var integer
         out exp: var integer
         repPos: var integer
      copy:
         out c: ref D2_Array
      slice_1_at:
         in index: var integer
         out res: ref D1_Array
      slice_2_at:
         in index: var integer
         out res: ref D1_Array
      asD1:
         out result: ref D1_Array
         resRange: ref Range
      forAllDo:
         DoIt:< int2int
         out result: ref D2_Array
      add:
         in a: ref D2_Array
         out r: ref D2_Array
      print::<
   D1_ArrayAdd:
      -- antar at de to arrays har samme range, men det skal evt checkes
      in a1: ref D1_array
      in a2: ref D1_Array
      out pa: ref D1_Array
   D2_ArrayAdd:
      -- antar at de to arrays har samme range, men det skal evt checkes
      in a1: ref D1_array
      in a2: ref D2_Array
      out pa: ref D2_Array