module Net.Interface where


data Interface m i o
  = Interface { rx :: m i, tx :: o -> m () }

data TimedInterface m i o
  = TimedInterface { rxT :: Maybe Int -> m (Maybe i), txT :: o -> m () }