comparison src/explify.sml @ 87:275aaeb73f1f

Push KUnit and CUnit through the phases
author Adam Chlipala <adamc@hcoop.net>
date Tue, 01 Jul 2008 13:23:46 -0400
parents 1f85890c9846
children 7bab29834cd6
comparison
equal deleted inserted replaced
86:7f9bcc8bfa1e 87:275aaeb73f1f
36 L.KType => (L'.KType, loc) 36 L.KType => (L'.KType, loc)
37 | L.KArrow (k1, k2) => (L'.KArrow (explifyKind k1, explifyKind k2), loc) 37 | L.KArrow (k1, k2) => (L'.KArrow (explifyKind k1, explifyKind k2), loc)
38 | L.KName => (L'.KName, loc) 38 | L.KName => (L'.KName, loc)
39 | L.KRecord k => (L'.KRecord (explifyKind k), loc) 39 | L.KRecord k => (L'.KRecord (explifyKind k), loc)
40 40
41 | L.KUnit => raise Fail "Explify KUnit" 41 | L.KUnit => (L'.KUnit, loc)
42 42
43 | L.KError => raise Fail ("explifyKind: KError at " ^ EM.spanToString loc) 43 | L.KError => raise Fail ("explifyKind: KError at " ^ EM.spanToString loc)
44 | L.KUnif (_, _, ref (SOME k)) => explifyKind k 44 | L.KUnif (_, _, ref (SOME k)) => explifyKind k
45 | L.KUnif _ => raise Fail ("explifyKind: KUnif at " ^ EM.spanToString loc) 45 | L.KUnif _ => raise Fail ("explifyKind: KUnif at " ^ EM.spanToString loc)
46 46
63 63
64 | 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)
65 | L.CConcat (c1, c2) => (L'.CConcat (explifyCon c1, explifyCon c2), loc) 65 | L.CConcat (c1, c2) => (L'.CConcat (explifyCon c1, explifyCon c2), loc)
66 | L.CFold (dom, ran) => (L'.CFold (explifyKind dom, explifyKind ran), loc) 66 | L.CFold (dom, ran) => (L'.CFold (explifyKind dom, explifyKind ran), loc)
67 67
68 | L.CUnit => raise Fail "Explify CUnit" 68 | L.CUnit => (L'.CUnit, loc)
69 69
70 | L.CError => raise Fail ("explifyCon: CError at " ^ EM.spanToString loc) 70 | L.CError => raise Fail ("explifyCon: CError at " ^ EM.spanToString loc)
71 | L.CUnif (_, _, _, ref (SOME c)) => explifyCon c 71 | L.CUnif (_, _, _, ref (SOME c)) => explifyCon c
72 | L.CUnif _ => raise Fail ("explifyCon: CUnif at " ^ EM.spanToString loc) 72 | L.CUnif _ => raise Fail ("explifyCon: CUnif at " ^ EM.spanToString loc)
73 73