Procedure Definitions

func_def:
       CREATE [OR REPLACE] PROCEDURE qname '(' [ paramlist] ')' routine_body
     | CREATE [OR REPLACE] PROCEDURE qname '(' [ paramlist] ')' EXTERNAL NAME external_function_name

routine_body:
      procedure_statement
     | BEGIN procedure_statement_list END
     | BEGIN ATOMIC procedure_statement_list END

procedure_statement:
       update_statement
     | declare_statement
     | set_statement
     | control_statement
     | select_statement_single_row

CREATE ... EXTERNAL NAME ... is a MonetDB language extension

See also system tables/views: sys.functions where type = 2, sys.args,
information_schema.routines where routine_type = 'PROCEDURE',
information_schema.parameters where function_type = 2.