
Indeed! Empty is lucky. The existence, for a type x, of a function impossible :: forall y . x -> y is sufficient--parametricity guarantees uniqueness. For Boring/Singular, this is certainly not the case. Non-boring types y typically have multiple functions possible :: forall x . x -> y We'd really want sole :: Pi (y :: a) -> inhabitant = y For some horrifyingly vague notion of equality. That obviously isn't going to cut it for real Haskell. On Feb 2, 2016 4:34 PM, "Tom Ellis" < tom-lists-haskell-cafe-2013@jaguarpaw.co.uk> wrote:
On Tue, Feb 02, 2016 at 12:41:34PM -0500, David Feuer wrote:
Or, alternatively, some common class that lets me express that a type is boring (i.e., inhabited by precisely one fully-defined value)?
FWIW it's the dual of Empty:
https://hackage.haskell.org/package/total-1.0.4/docs/Lens-Family-Total.html _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe