deviceTypes :: [MTaskResource]
deviceTypes = conses{|*|}
-//connectDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task ()
-//connectDevice pf d = let ch = channels d in appendTopLevelTask 'DM'.newMap True
-// (pf d ch -||- catchAll (getSynFun d.deviceData ch) errorHandle)
-// >>= \tid->withDevices d (\d->{d&deviceTask=Just tid,deviceError=Nothing})
-// >>| upd (\(r,s,ss)->(r,s++[MTSpec],ss)) ch
-// @! ()
-// where
-// errorHandle e = withDevices d (\d->{d&deviceTask=Nothing,deviceError=Just e}) @! ()
import StdDebug
connectDevice :: (MTaskDevice (Shared Channels) -> Task ()) MTaskDevice -> Task Channels
connectDevice procFun device = let ch = channels device