A funkcionális nyelvekben problémát szokott jelenteni az I/O eszközök írás illetve olvasása esetén fellépő hiba. Az Opal igyekezett erre olyan választ adni, ami nem szakítja meg a program folyamatosságát.
Opal-ban az I/O eszközök kezelését a command végzi. A command egy adat objektum, ami megvalósít egy kezelési felületet a környezettel, speciálisan a terminállal, vagy a file-okkal, és csak a command csinálja ezt. Magát a beolvasást az operációs rendszer végzi, de a command, az eredménytől függően meg tudja váltóztatni az állapotát.