module StateSizedIO.IOObject where
open import Data.Product
open import Size
open import SizedIO.Base
open import StateSizedIO.Object
-- --- Moved to BaseNonPoly.agda
-- --- and /src/StateSizedIO/GUI/BaseStateDependent.agda
-- --- FILE IS DELETED !!!
-- ---
-- ---
-- An IO object is like a simple object,
-- but the method returns IO applied to the result type of a simple object
-- which means the method returns an IO program which when terminating
-- returns the result of the simple object
{- NOTE IOObject is now replaced by IOObjectˢ as defined in
StateSizedIO.Base
-}
{-
module _ (ioi : IOInterface) (let C = Command ioi) (let R = Response ioi)
(oi : Interfaceˢ) (let S = Stateˢ oi) (let M = Methodˢ oi)
(let Rt = Resultˢ oi) (let next = nextˢ oi)
where
record IOObject (i : Size) (s : S) : Set where
coinductive
field
method : ∀{j : Size< i} (m : M s) → IO ioi ∞ (Σ[ r ∈ Rt s m ] IOObject j (next s m r) )
open IOObject public
-}