@startuml
!include <material/transfer>
!include <material/lambda>

left to right direction
skinparam defaultTextAlignment center

rectangle "<$ma_transfer>\nSimple Queue" as block #DeepSkyBlue
rectangle "<$ma_lambda>\nConstant\nGenerator" as gen #LightGreen

interface " " as q1
interface " " as q2
interface " " as q3

interface " " as q1
interface " " as q2
interface " " as q3
interface " " as q4
interface " " as q5
interface " " as q6
interface " " as q7
interface " " as q8
interface " " as q9
interface " " as qA
interface " " as qB

q1 --> block: enqueue
q2 -r-> block: requestdequeue
q3 --> block: requestrenege
q4 --> block: dr
block --> q5: dequeue
block --> q6: renege
block --> q7: overflow
q9 --> q8: dd
q8 --> gen: dt
gen -r-> q2: out
qA ..> gen: value
qB --> q2: requestdequeue
@enduml
