The concept of an exponent can be defined in general terms outside of a Hask / Set. A category with exhibitors and products is called a Cartesian closed category . This is a key concept in theoretical informatics, since each cc category is essentially a model of typed lambda calculus.
, a,b :
eval : (b^a)*a -> b ( Haskell: \(f,x) -> f x, AKA)f : (a*b)->c Lf : a -> (c^b) ( Haskell: curry f)
" ", .. f : (a*b)->c, :
Haskell :
f = \(x :: (a,b), y :: a) -> apply (curry f x, id y) where apply (g,z) = g z
, ,
f = (curry f *** id) >>> apply where apply (g,z) = g z