[Haskell-cafe] One-element tuple

AntC anthony_clayden at clear.net.nz
Fri Aug 16 03:35:22 CEST 2013

There's an annoying inconsistency:

    (CustId 47, CustName "Fred", Gender Male)  -- threeple
    (CustId 47, CustName "Fred)                -- twople
--  (CustId 47)                                -- oneple not!
    ()                                         -- nople

(That is, it's annoying if you're trying to make typeclass instances for 
extensible/contractable tuples. Yes, I know I could use HLists.)

I'm not happy with either approach I've tried:

    data Oneple a = Oneple a                   -- (or newtype)
    (Oneple $ CustId 47)                       -- too verbose

    type Oneple a = [a]
    [CustId 47]                  -- at least looks bracket-y

What do you do?


More information about the Haskell-Cafe mailing list