packages feed

funcons-simple-0.1.0.3: tests/Kexceptions/Kexceptions02.fct

initialise-binding initialise-storing initialise-giving finalise-failing finalise-throwing scope
  (collateral (bind
    ("main",
     allocate-variable (functions
       (tuples ((values)*),
        values))),
  bind
    ("foo",
     allocate-variable (functions
       (tuples ((values)*),
        values)))),
   sequential (assign
     (bound ("main"),
      function closure (scope
        (match
          (given,
           tuple ()),
         handle-return (handle-thrown
           (effect (apply
             (assigned (bound ("foo")),
              tuple ())),
            scope
              (bind
                ("e",
                 allocate-initialised-variable
                   (values,
                    given)),
               print (assigned (bound ("e")),
               "\n"))))))),
   assign
     (bound ("foo"),
      function closure (scope
        (match
          (given,
           tuple ()),
         handle-return (sequential
           (handle-thrown
             (sequential
               (throw (decimal-natural ("5")),
                print (decimal-natural ("17"))),
              scope
                (bind
                  ("e",
                   allocate-initialised-variable
                     (values,
                      given)),
                 throw (integer-add
                   (assigned (bound ("e")),
                    decimal-natural ("2"))))),
            throw (decimal-natural ("1"))))))),
   apply
     (assigned (bound ("main")),
      tuple ())))