Reference 1
The Connectable type class defines the module mkConnection, which is used to connect a pair of related types. typeclass Connectable#(type a, type b); module mkConnection#(a x1, b x2)(Empty); endtypeclass Instances of typeclass to be connectable Get and Put instance Connectable#(Get#(a), Put#(a)); One put and another will get the element. Tuples instance Connectable#(Tuple2#(a, c), Tuple2#(b, d)) provisos (Connectable#(a, b), Connectable#(c, d)); This is used by ClientServer to connect the Get of Client to the Put of the Server and visa-versa.
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?