I had the following Haskell code (just a fragment of all code, but works):
data ByteCode t where INT :: Int -> ByteCode Int BOOL:: Bool -> ByteC