diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-10-21 19:31:11 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-10-21 19:31:11 -0400 |
commit | 29ee4365f5e19e5eccfa57252cca0bd0f0600ba9 (patch) | |
tree | 92c48b30a7960f6c43da6de37013afd0b7f9af5a /src | |
parent | 17b3f5af99c07d7361fb99124412aff1768cfe13 (diff) |
Infering sum rows
Diffstat (limited to 'src')
-rw-r--r-- | src/elaborate.sml | 7 |
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) |