definition module miTaskDevices import mTask import iTasks import iTasksTTY :: Channels :== ([MTaskMSGRecv], [MTaskMSGSend], Bool) :: TCPDevice = {hostname :: String, port :: Int} :: SerialDevice = {settings :: TTYSettings} derive class iTask TCPDevice, SerialDevice getmTaskDevice :: Task a | mTaskDevice a class mTaskDevice a where syncTask :: a (Shared Channels) -> Task () entermTaskDevice :: Task a viewmTaskDevice :: a -> Task a instance mTaskDevice TCPDevice instance mTaskDevice SerialDevice