Thanks to Craig Ringer for the suggestion. This is the code that I ended up writing to generate the function:
CREATE FUNCTION "Foo"() RETURNS VOID AS $$
BEGIN
EXECUTE
'CREATE FUNCTION ' || QUOTE_IDENT('Bar') || '() RETURNS TRIGGER AS $a$' || chr(10) ||
'BEGIN' || chr(10) ||
'END;' || chr(10) ||
'$a$ LANGUAGE PLPGSQL;';
END;
$$ LANGUAGE PLPGSQL;