+instance zero BCState
+
+class toByteCode a :: a -> String
+class fromByteCode a :: String -> a
+class mTaskType a | toByteCode, fromByteCode, iTask, TC a
+
+instance toByteCode Int, Bool, Char, Long, String, Button, UserLED, BCValue
+instance fromByteCode Int, Bool, Char, Long, String, Button, UserLED, BCValue
+instance toByteCode MTaskInterval
+instance fromByteCode MTaskInterval, MTaskDeviceSpec
+
+instance arith ByteCode
+instance boolExpr ByteCode
+instance analogIO ByteCode
+instance digitalIO ByteCode
+instance aIO ByteCode
+instance dIO ByteCode
+instance userLed ByteCode
+instance If ByteCode Stmt Stmt Stmt
+instance If ByteCode e Stmt Stmt
+instance If ByteCode Stmt e Stmt
+instance If ByteCode x y Stmt
+instance IF ByteCode
+instance noOp ByteCode
+instance retrn ByteCode
+
+instance sds ByteCode
+instance assign ByteCode
+instance seq ByteCode
+instance serial ByteCode