(hugr 0)

(mod)

(declare-func private array.replicate
              (param ?n core.nat)
              (param ?t core.type)
              (where (core.nonlinear ?t))
              (core.fn [?t] [(collections.array.array ?n ?t)]))

(declare-func
 public
 array.copy
 (param ?n core.nat)
 (param ?t core.type)
 (where (core.nonlinear ?t))
 (core.fn
  [(collections.array.array ?n ?t)]
  [(collections.array.array ?n ?t)
   (collections.array.array ?n ?t)]))

(define-func public util.copy
  (param ?t core.type)
  (where (core.nonlinear ?t))
  (core.fn [?t] [?t ?t])
  (dfg [%0] [%0 %0]
       (signature (core.fn [?t] [?t ?t]))))
