+instance namedsds ByteCode where
+ namedsds f = {main = BC $ freshs
+ >>= \sdsi->pure {BCShare | sdsname="", sdsi=sdsi, sdsval=BCValue 0}
+ >>= \sds ->pure (f $ tell` [BCSdsFetch sds])
+ >>= \(v Named n In bdy)->modify (addSDS sds n v)
+ >>| unBC (unMain bdy)}
+ where
+ addSDS sds n v s = {s & sdss=[{sds & sdsname=n, sdsval=BCValue v}:s.sdss]}
+