-//(>>) infixl 2 :: (ByteCode a p) (ByteCode b q) -> ByteCode b q
-//(>>) m n = BC \s->(let (_, s1) = runBC m s in
-// let (a, s2) = runBC n s1
-// in (a, {s2 & bytecode=(s2.BCState.bytecode ++ s1.BCState.bytecode)}))
-//
-//(<+->) infixr 1
-//(<+->) m n :== m >> tell n
-//
-//runBC (BC m) = m
-//
-//tell :: [BC] -> ByteCode a p | mTaskType a
-//tell b = BC \s->(zero, {s & bytecode=b++s.bytecode})
-//
-//fmp :: (a -> BC) (ByteCode a p) -> ByteCode a q
-//fmp f b = BC \s->let (a, s`) = runBC b s in (a, {s` & code=[f a:s`.code]})
-
-instance toByteCode Bool where toByteCode b = if b "\x01" "\x00"