implementation module dnc import graph import StdEnv // dnc is like varcontents, but can give a more reasonable error message // when the contents is used when undefined. dnc :: (var->.String) !(Graph .sym var) var -> (.Bool,Node .sym var) | == var dnc makemessage graph var | fst vc = vc = (False,(wrong "symbol",wrong "arguments")) where vc = varcontents graph var wrong element = abort ("getting "+++element+++" of free variable: "+++makemessage var)