内射

类型家庭不一定是单射的。因此,我们无法从应用程序推断出参数。例如,在 servant 中,给定类型 Server a,我们无法推断出类型 a。要解决这个问题,我们可以使用 Proxy。例如,在 servant 中,serve 函数的类型为 ... Proxy a -> Server a -> ...。我们可以从 Proxy a 推断出 a,因为 Proxy 是由 data 定义的,这是单射的。