(hugr 0)

(mod)

(define-func public example.cfg_loop
  (param ?a core.type)
  (core.fn [?a] [?a])
  (dfg [%0] [%1]
    (signature (core.fn [?a] [?a]))
    (cfg [%0] [%1]
      (signature (core.fn [?a] [?a]))
      (cfg [%2] [%3]
        (signature (core.ctrl [[?a]] [[?a]]))
        (block [%2] [%3 %2]
          (signature (core.ctrl [[?a]] [[?a] [?a]]))
          (dfg [%4] [%5]
            (signature (core.fn [?a] [(core.adt [[?a] [?a]])]))
            ((core.make_adt 0) [%4] [%5]
              (signature (core.fn [?a] [(core.adt [[?a] [?a]])])))))))))

(define-func public example.cfg_order
  (param ?a core.type)
  (core.fn [?a] [?a])
  (dfg [%0] [%1]
    (signature (core.fn [?a] [?a]))
    (cfg [%0] [%1]
      (signature (core.fn [?a] [?a]))
      (cfg [%2] [%4]
        (signature (core.ctrl [[?a]] [[?a]]))
        (block [%3] [%4]
          (signature (core.ctrl [[?a]] [[?a]]))
          (dfg [%5] [%6]
            (signature (core.fn [?a] [(core.adt [[?a]])]))
            ((core.make_adt _ _ 0) [%5] [%6]
              (signature (core.fn [?a] [(core.adt [[?a]])])))))
        (block [%2] [%3]
          (signature (core.ctrl [[?a]] [[?a]]))
          (dfg [%7] [%8]
            (signature (core.fn [?a] [(core.adt [[?a]])]))
            ((core.make_adt _ _ 0) [%7] [%8]
              (signature (core.fn [?a] [(core.adt [[?a]])])))))))))
