channel CIO2 {
out highest(h:Double, reset(v)) = v
}
channel CIO1 {
out temp_f(p:Double, observe(x)) = x
}
channel C1{
in temp_f(q:Double, conversion(y)) = y
out temp_c(r:Double, conversion(z)) = (z-32) / 1.8
}
channel C2{
in temp_f(q:Double, update(y)) = y
out highest(h:Double, update(z)) = if(z >= h, z, h)
}