data (ADT) not-so-good lazyness vs newtype lazyness