-- | Contract which remembers all parameters it has been called with.
--
-- Useful to save return values of @View@ entry points.
module Lorentz.Test.Consumer
  ( contractConsumer
  ) where

import Lorentz.Base
import Lorentz.Instr
import Lorentz.Macro

-- | Remembers parameters it was called with, last goes first.
contractConsumer :: Contract cp [cp]
contractConsumer = unpair # cons # nil # pair