-- Code of Figure 5.20, pages 154-155 from -- Kenneth C. Louden, Programming Languages -- Principles and Practice 2nd Edition -- Copyright (C) Brooks-Cole/ITP, 2003 procedure overload is function max(x: integer; y: integer) -- max #1 return integer is begin if x > y then return x; else return y; end if; end max; function max(x: integer; y: integer) -- max #2 return float is begin if x > y then return float(x); else return float(y); end if; end max; a: integer; b: float; begin -- max_test a := max(2,3); -- call to max # 1 b := max(2,3); -- call to max # 2 end overload;