@@ -2,7 +2,7 @@ module AST.Type
2 ( Raw, Raw'(..)
2 ( Raw, Raw'(..)
3 , Canonical(..), Aliased(..)
3 , Canonical(..), Aliased(..)
4 , Port(..), getPortType
4 , Port(..), getPortType
5− , deepDealias, dealias
5+ , deepDealias, iteratedDealias, dealias
6 , collectLambdas
6 , collectLambdas
@@ -114,6 +114,16 @@ deepDealias tipe =
114 App (deepDealias f) (map deepDealias args)
114 App (deepDealias f) (map deepDealias args)
117+iteratedDealias :: Canonical -> Canonical
118+iteratedDealias tipe =
120+ Aliased _ args realType ->
121+ iteratedDealias (dealias args realType)
117dealias :: [(String, Canonical)] -> Aliased Canonical -> Canonical
127dealias :: [(String, Canonical)] -> Aliased Canonical -> Canonical
118dealias args aliasType =
128dealias args aliasType =
119 case aliasType of
129 case aliasType of