-// bc :: Main (ByteCode Int Stmt)
-// bc = sds \x=1 In {main =
-// If (x ==. lit 3)
-// (x =. lit 1)
-// (x =. x +. lit 1) :. pub x}
-
-makeShares :: BCState -> [(Int, Shared Int)]
-makeShares {sdss=[]} = []
-makeShares s=:{sdss=[(i,d):xs]} =
- [(i, ms ("mTaskSDS-" +++ toString i) 1):makeShares {s & sdss=xs}]
+
+makeBytecode :: Int (Main (ByteCode () Stmt)) -> ([MTaskMSGSend], [(Int, Shared Int)])
+makeBytecode timeout bc
+# (msgs, st) = toMessages timeout (toRealByteCode (unMain bc))
+# shares = map (\(i,d)->(i, sdsFocus (s i) (memoryStore (s i) (Just (dd d))))) st.sdss
+= (msgs, shares)