@@ -190,14 +190,22 @@ instantiatorHelp env aliasVars sourceType =
190 do args' <- mapM (\(arg,tipe) -> (,) arg <$> go tipe) args
190 do args' <- mapM (\(arg,tipe) -> (,) arg <$> go tipe) args
191 aliasedType' <- instantiatorHelp env (Set.fromList (map fst args)) aliasedType
191 aliasedType' <- instantiatorHelp env (Set.fromList (map fst args)) aliasedType
192 case aliasedType' of
192 case aliasedType' of
193− PlaceHolder x ->
193+ PlaceHolder _ ->
194− return (PlaceHolder x)
194+ error "problem instantiating type"
196− VarN _ v ->
196+ VarN maybeSubAlias v ->
197+ case maybeSubAlias of
197− return (VarN (Just (name,args')) v)
199+ return (VarN (Just (name,args')) v)
201+ return (TermN (Just (name,args')) (Var1 aliasedType'))
199− TermN _ t ->
203+ TermN maybeSubAlias t ->
204+ case maybeSubAlias of
200− return (TermN (Just (name, args')) t)
206+ return (TermN (Just (name, args')) t)
208+ return (TermN (Just (name,args')) (Var1 aliasedType'))
202 T.Type name ->
210 T.Type name ->
203 case Map.lookup (V.toString name) (types env) of
211 case Map.lookup (V.toString name) (types env) of