- | GrafiteAst.Demodulate loc ->
- metasenv,GrafiteAst.Demodulate loc
- | GrafiteAst.Destruct (loc,term) ->
- let metasenv,term = disambiguate_term context metasenv term in
- metasenv,GrafiteAst.Destruct(loc,term)
+ | GrafiteAst.Demodulate (loc, params) ->
+ let metasenv, params = disambiguate_auto_params metasenv params in
+ metasenv,GrafiteAst.Demodulate (loc, params)
+ | GrafiteAst.Destruct (loc, Some terms) ->
+ let map term (metasenv, terms) =
+ let metasenv, term = disambiguate_term context metasenv term in
+ metasenv, term :: terms
+ in
+ let metasenv, terms = List.fold_right map terms (metasenv, []) in
+ metasenv, GrafiteAst.Destruct(loc, Some terms)
+ | GrafiteAst.Destruct (loc, None) ->
+ metasenv,GrafiteAst.Destruct(loc,None)