begin
  ! Complete list of formal parameter types:

  recordformat record fm ( integer field1, real field2, string (255) field3 )
  comment recordformat record fm ( integer field1, real field2, string (255) field3 )

  routine fancy
    comment   routine fancy
  end

  routine fancy1(integer param, p2, p3)
    comment   routine fancy1(integer param, p2, p3)
  end

  routine fancy2(real param, p2, p3)
    comment   routine fancy2(real param, p2, p3)
  end

  routine fancy3(string(255) param, p2, p3)
    comment   routine fancy3(string(255) param, p2, p3)
  end

  routine fancy4(integer name param, p2, p3)
    comment   routine fancy4(integer name param, p2, p3)
  end

  routine fancy5(real name param, p2, p3)
    comment   routine fancy5(real name param, p2, p3)
  end

  routine fancy6(string(255)name param, p2, p3)
    comment   routine fancy6(string(255)name param, p2, p3)
  end

  routine fancy7(integer array name param, p2, p3)
    comment   routine fancy7(integer array name param, p2, p3)
  end

  routine fancy8(real array name param, p2, p3)
    comment   routine fancy8(real array name param, p2, p3)
  end

  routine fancy9(string(255)array name param, p2, p3)
    comment   routine fancy9(string(255)array name param, p2, p3)
  end

  routine fancy10A(integer fn param)
    ! name list silently accepted here. Should be an error. Not output in C however.  Add to rejection tests later.
    comment   routine fancy10A(integer fn param)
  end

  routine fancy10B(integer fn param(routine subparam(realfn subsubparam(real subsubsubparam))))
    comment   routine fancy10B(integer fn param(routine subparam(realfn subsubparam(real subsubsubparam))))
  end

  routine fancy11(real fn param)
    comment   routine fancy11(real fn param)
  end

  routine fancy12(string(255)fn param)
    comment   routine fancy12(string(255)fn param)
  end

  routine fancy13(integer function param)
    comment   routine fancy13(integer function param)
  end

  routine fancy14(real function param)
    comment   routine fancy14(real function param)
  end

  routine fancy15(string(255)function param)
    comment   routine fancy15(string(255)function param)
  end

  routine fancy16(integer map param)
    comment   routine fancy16(integer map param)
  end

  routine fancy17(real map param)
    comment   routine fancy17(real map param)
  end

  routine fancy18(string(255)map param)
    comment   routine fancy18(string(255)map param)
  end

  routine fancy19(integer name array name param, p2, p3)
    comment   routine fancy19(integer name array name param, p2, p3)
  end

  routine fancy20(real name array name param, p2, p3)
    comment   routine fancy20(real name array name param, p2, p3)
  end

  routine fancy21(string(255) name array name param, p2, p3)
    comment   routine fancy21(string(255) name array name param, p2, p3)
  end

  routine fancy22(record(record fm) param, p2, p3)
    comment   routine fancy22(record(record fm) param, p2, p3)
  end

  routine fancy23(record(record fm)name param, p2, p3)
    comment   routine fancy23(record(record fm)name param, p2, p3)
  end

  routine fancy24(record(record fm)array name param, p2, p3)
    comment   routine fancy24(record(record fm)array name param, p2, p3)
  end

  routine fancy25(record(record fm) name array name param, p2, p3)
    comment   routine fancy25(record(record fm) name array name param, p2, p3)
  end

  routine fancy26(record(record fm)fn param)
    comment   routine fancy26(record(record fm)fn param)
  end

  routine fancy27(record(record fm)function param)
    comment   routine fancy27(record(record fm)function param)
  end

  routine fancy28(record(record fm)map param)
    comment   routine fancy28(record(record fm)map param)
  end

  routine fancy29(routine param)
    comment   routine fancy29(routine param)
  end

  routine fancy30(predicate param)
    comment   routine fancy30(predicate param)
  end

  routine fancy31(name param)
    comment   routine fancy31(name param)
  end

  routine fancy32(name param1, param2, param3)
    comment   routine fancy32(name param1, param2, param3)
  end

endofprogram