outbound :: String -> Expression () -> T.Port T.Canonical -> Expression ()
outbound name expr portType =
  case portType of
    T.Normal tipe ->
        _Port "outbound" `call` [ StringLit () name, fromTypeFunction tipe, expr ]

    T.Signal _ arg ->
        _Port "outboundSignal" `call` [ StringLit () name, fromTypeFunction arg, expr ]
outbound :: String -> Expression () -> T.Port T.Canonical -> Expression ()
outbound name expr portType =
  case portType of
    T.Normal tipe ->
        _Port "outbound" `call` [ StringLit () name, fromTypeFunction tipe, expr ]

    T.Signal _ arg ->
        _Port "outboundSignal" `call` [ StringLit () name, fromTypeFunction arg, expr ]
outbound name expr portType =
  case portType of
    T.Normal tipe ->
        _Port "outbound" `call` [ StringLit () name, fromTypeFunction tipe, expr ]

    T.Signal _ arg ->
        _Port "outboundSignal" `call` [ StringLit () name, fromTypeFunction arg, expr ]