nested func types