module Net.Interface where data Interface m i o = Interface { forall (m :: * -> *) i o. Interface m i o -> m i rx :: m i, forall (m :: * -> *) i o. Interface m i o -> o -> m () tx :: o -> m () } data TimedInterface m i o = TimedInterface { forall (m :: * -> *) i o. TimedInterface m i o -> Maybe Int -> m (Maybe i) rxT :: Maybe Int -> m (Maybe i), forall (m :: * -> *) i o. TimedInterface m i o -> o -> m () txT :: o -> m () }