displayP :: Monad m =>  Conduit LB.ByteString m [Purchase]
displayP = do
  t <- await
  case t of
    Nothing -> return ()
    Just c -> do
      let x = decodeStrict c :: (Maybe [Purchase])
      case x of
        Nothing -> return ()
        Just y -> do
          yield y
          displayP

-- FIXME TODO
-- List of list is pretty ugly
displayP :: Monad m =>  Conduit LB.ByteString m [Purchase]
displayP = do
  t <- await
  case t of
    Nothing -> return ()
    Just c -> do
      let x = decodeStrict c :: (Maybe [Purchase])
      case x of
        Nothing -> return ()
        Just y -> do
          yield y
          displayP

-- FIXME TODO
-- List of list is pretty ugly
displayP = do
  t <- await
  case t of
    Nothing -> return ()
    Just c -> do
      let x = decodeStrict c :: (Maybe [Purchase])
      case x of
        Nothing -> return ()
        Just y -> do
          yield y
          displayP

-- FIXME TODO
-- List of list is pretty ugly