    ZeroD     == ZeroD     = True
    (SuccD a) == (SuccD b) = a == b
    _         == _         = False;

equalDC :: D [] -> D [] -> Bool;
equalDC = (==);

foo :: D []
foo = SuccD [SuccD [ZeroD], ZeroD]
