Полагаю, в определении вашей функции не должно быть пустого тела.Я проверил ваш код, добавив оператор no-op в качестве тела функции:
fAst = ast.FunctionDef(
# ...
body=[ast.Pass()],
# ...
И ошибка сегментации исчезла;вывод:
<function foo at 0x022DB3F0>
Если я прав, это может быть ошибка в модуле ast
, так как он должен проверять наличие пустого тела.