comparison src/explify.sml @ 345:b85e6ba56618

Merge CDisjoint and TDisjoint
author Adam Chlipala <adamc@hcoop.net>
date Sat, 04 Oct 2008 15:50:28 -0400
parents 075b36dbb1a4
children dfc8c991abd0
comparison
equal deleted inserted replaced
344:3c0feecd057d 345:b85e6ba56618
47 47
48 fun explifyCon (c, loc) = 48 fun explifyCon (c, loc) =
49 case c of 49 case c of
50 L.TFun (t1, t2) => (L'.TFun (explifyCon t1, explifyCon t2), loc) 50 L.TFun (t1, t2) => (L'.TFun (explifyCon t1, explifyCon t2), loc)
51 | L.TCFun (_, x, k, t) => (L'.TCFun (x, explifyKind k, explifyCon t), loc) 51 | L.TCFun (_, x, k, t) => (L'.TCFun (x, explifyKind k, explifyCon t), loc)
52 | L.TDisjoint (_, _, _, c) => explifyCon c 52 | L.CDisjoint (_, _, _, c) => explifyCon c
53 | L.TRecord c => (L'.TRecord (explifyCon c), loc) 53 | L.TRecord c => (L'.TRecord (explifyCon c), loc)
54 54
55 | L.CRel n => (L'.CRel n, loc) 55 | L.CRel n => (L'.CRel n, loc)
56 | L.CNamed n => (L'.CNamed n, loc) 56 | L.CNamed n => (L'.CNamed n, loc)
57 | L.CModProj (m, ms, x) => (L'.CModProj (m, ms, x), loc) 57 | L.CModProj (m, ms, x) => (L'.CModProj (m, ms, x), loc)
58 58
59 | L.CApp (c1, c2) => (L'.CApp (explifyCon c1, explifyCon c2), loc) 59 | L.CApp (c1, c2) => (L'.CApp (explifyCon c1, explifyCon c2), loc)
60 | L.CAbs (x, k, c) => (L'.CAbs (x, explifyKind k, explifyCon c), loc) 60 | L.CAbs (x, k, c) => (L'.CAbs (x, explifyKind k, explifyCon c), loc)
61 | L.CDisjoint (_, _, c) => explifyCon c
62 61
63 | L.CName s => (L'.CName s, loc) 62 | L.CName s => (L'.CName s, loc)
64 63
65 | L.CRecord (k, xcs) => (L'.CRecord (explifyKind k, map (fn (c1, c2) => (explifyCon c1, explifyCon c2)) xcs), loc) 64 | L.CRecord (k, xcs) => (L'.CRecord (explifyKind k, map (fn (c1, c2) => (explifyCon c1, explifyCon c2)) xcs), loc)
66 | L.CConcat (c1, c2) => (L'.CConcat (explifyCon c1, explifyCon c2), loc) 65 | L.CConcat (c1, c2) => (L'.CConcat (explifyCon c1, explifyCon c2), loc)