@@ -2,7 +2,7 @@ module AST.Type
22 ( Raw, Raw'(..)
33 , Canonical(..), Aliased(..)
44 , Port(..), getPortType
5− , deepDealias, dealias
5+ , deepDealias, iteratedDealias, dealias
66 , collectLambdas
77 , fieldMap
88 , tuple
@@ -114,6 +114,16 @@ deepDealias tipe =
114114 App (deepDealias f) (map deepDealias args)
115115
116116
117+iteratedDealias :: Canonical -> Canonical
118+iteratedDealias tipe =
119+ case tipe of
120+ Aliased _ args realType ->
121+ iteratedDealias (dealias args realType)
122+
123+ _ ->
124+ tipe
125+
126+
117127dealias :: [(String, Canonical)] -> Aliased Canonical -> Canonical
118128dealias args aliasType =
119129 case aliasType of