I'm reading Conal's Compiling to Categories, and I've found some differences in how we represent functions in `Language k`.
For instance, we have:
neg :: h `k` Bool -> h `k` Bool
neg a = notC . a
But Conal, to represent functions has (page 1:4 of the extended version):
constFun :: Closed k => (a `k` b) -> (z `k` (a -> b))
constFun f = curry (f . exr)
And the representation of neg is then:
neg :: h `k` (Bool -> Bool)
neg = constFun notC
(IMHO this seems more natural, because to represent functions we use exponentials objects in the category.)
I don't know if this difference can be significative for what lays ahead.