-
Notifications
You must be signed in to change notification settings - Fork 258
Open
Description
The Substitutable instance for Type is currently defined as follows:
instance Substitutable Type where
apply _ (TCon a) = TCon a
apply s t@(TVar a) = Map.findWithDefault t a s
apply s (t1 `TArr` t2) = apply s t1 `TArr` apply s t2I believe the TVar case is incomplete. Consider the following substitution:
x <- y
y <- Int
If we apply this substitution to type variable x, we obtain y, when we should obtain Int. I think this case should instead recursively apply the substitution to the type found in the map.
Metadata
Metadata
Assignees
Labels
No labels