comparison src/explify.sml @ 1302:d008c4c43a0a

Flex kinds for type-level tuples; ::_ notation
author Adam Chlipala <adam@chlipala.net>
date Sun, 10 Oct 2010 13:07:38 -0400
parents b4480a56cab7
children c7b9a33c26c8
comparison
equal deleted inserted replaced
1301:4359e185d3af 1302:d008c4c43a0a
42 | L.KTuple ks => (L'.KTuple (map explifyKind ks), loc) 42 | L.KTuple ks => (L'.KTuple (map explifyKind ks), loc)
43 43
44 | L.KError => raise Fail ("explifyKind: KError at " ^ EM.spanToString loc) 44 | L.KError => raise Fail ("explifyKind: KError at " ^ EM.spanToString loc)
45 | L.KUnif (_, _, ref (SOME k)) => explifyKind k 45 | L.KUnif (_, _, ref (SOME k)) => explifyKind k
46 | L.KUnif _ => raise Fail ("explifyKind: KUnif at " ^ EM.spanToString loc) 46 | L.KUnif _ => raise Fail ("explifyKind: KUnif at " ^ EM.spanToString loc)
47 | L.KTupleUnif (loc, _, ref (SOME k)) => explifyKind k
48 | L.KTupleUnif _ => raise Fail ("explifyKind: KTupleUnif at " ^ EM.spanToString loc)
47 49
48 | L.KRel n => (L'.KRel n, loc) 50 | L.KRel n => (L'.KRel n, loc)
49 | L.KFun (x, k) => (L'.KFun (x, explifyKind k), loc) 51 | L.KFun (x, k) => (L'.KFun (x, explifyKind k), loc)
50 52
51 fun explifyCon (c, loc) = 53 fun explifyCon (c, loc) =