@@ -261,18 +261,23 @@ checkLoobacks name tipe hasExpr =
262checkLoobacksHelp :: String -> ST.CanonicalType -> ST.CanonicalType -> Bool -> Either [P.Doc] ()
262checkLoobacksHelp :: String -> ST.CanonicalType -> ST.CanonicalType -> Bool -> Either [P.Doc] ()
263checkLoobacksHelp name rootType tipe hasExpr =
263checkLoobacksHelp name rootType tipe hasExpr =
264− case tipe of
264+ case ST.dealias tipe of
265− ST.Aliased _ t ->
265+ ST.Record
266− checkLoobacksHelp name rootType t hasExpr
266+ [ ("mailbox", ST.App (ST.Type mailbox) [a])
267+ , ("stream", ST.App (ST.Type stream) [b])
271+ && Var.isStream stream
272+ && Var.isMailbox mailbox
268 ST.App (ST.Type signal) [ ST.App (ST.Type result) [_,_] ]
277 ST.App (ST.Type signal) [ ST.App (ST.Type result) [_,_] ]
269 | hasExpr && Var.isStream signal && Var.isResult result ->
278 | hasExpr && Var.isStream signal && Var.isResult result ->
270 return ()
279 return ()
272− ST.App (ST.Type signal) [ _ ]
273− | not hasExpr && Var.isWritableStream signal ->
278 [ P.text "Loopback Error:"
283 [ P.text "Loopback Error:"