module Acme.TimeMachine.Suspension ( Suspension(..), mkSuspension ) where -- | Data representing the entire history of the state. Basically a very large list. data Suspension s = Suspension s (Suspension s) -- | Create an infinite history consisting of the same state. mkSuspension :: s -> Suspension s mkSuspension s = Suspension s (mkSuspension s)