summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-10-21 19:31:11 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-10-21 19:31:11 -0400
commit29ee4365f5e19e5eccfa57252cca0bd0f0600ba9 (patch)
tree92c48b30a7960f6c43da6de37013afd0b7f9af5a /src
parent17b3f5af99c07d7361fb99124412aff1768cfe13 (diff)
Infering sum rows
Diffstat (limited to 'src')
-rw-r--r--src/elaborate.sml7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml
index 1ea854cd..aa48952c 100644
--- a/src/elaborate.sml
+++ b/src/elaborate.sml
@@ -1,4 +1,4 @@
- (* Copyright (c) 2008, Adam Chlipala
+(* Copyright (c) 2008, Adam Chlipala
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -743,7 +743,10 @@
fun unfold (dom, ran, f, i, r, c) =
let
val nm = cunif (loc, (L'.KName, loc))
- val v = cunif (loc, dom)
+ val v =
+ case dom of
+ (L'.KUnit, _) => (L'.CUnit, loc)
+ | _ => cunif (loc, dom)
val rest = cunif (loc, (L'.KRecord dom, loc))
val acc = (L'.CFold (dom, ran), loc)
val acc = (L'.CApp (acc, f), loc)