separate internal hom so we can use it to talk about closed categories and closed functors