comparison src/elab_env.sml @ 228:19e5791923d0

Resolving lingering type class constraints
author Adam Chlipala <adamc@hcoop.net>
date Thu, 21 Aug 2008 14:45:31 -0400
parents a3413288cce1
children 2b9dfaffb008
comparison
equal deleted inserted replaced
227:524e10c91478 228:19e5791923d0
361 361
362 fun class_name_in (c, _) = 362 fun class_name_in (c, _) =
363 case c of 363 case c of
364 CNamed n => SOME (ClNamed n) 364 CNamed n => SOME (ClNamed n)
365 | CModProj x => SOME (ClProj x) 365 | CModProj x => SOME (ClProj x)
366 | CUnif (_, _, _, ref (SOME c)) => class_name_in c
366 | _ => NONE 367 | _ => NONE
367 368
368 fun class_key_in (c, _) = 369 fun class_key_in (c, _) =
369 case c of 370 case c of
370 CRel n => SOME (CkRel n) 371 CRel n => SOME (CkRel n)
371 | CNamed n => SOME (CkNamed n) 372 | CNamed n => SOME (CkNamed n)
372 | CModProj x => SOME (CkProj x) 373 | CModProj x => SOME (CkProj x)
374 | CUnif (_, _, _, ref (SOME c)) => class_key_in c
373 | _ => NONE 375 | _ => NONE
374 376
375 fun class_pair_in (c, _) = 377 fun class_pair_in (c, _) =
376 case c of 378 case c of
377 CApp (f, x) => 379 CApp (f, x) =>