type Algs = Channel -> Alg
type ChipState = (Memory,Regs)
type Packet = (Channel,Data)
type Data = [Word]
type StateM s a = s -> (a,s)
chip :: Algs -> ChipState -> [Packet] -> StateM ChipState [Packet]
onePacket :: Algs -> Channel -> Data -> StateM ChipState Packet