summaryrefslogtreecommitdiff
path: root/src/elab_util.sml
diff options
context:
space:
mode:
Diffstat (limited to 'src/elab_util.sml')
-rw-r--r--src/elab_util.sml12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/elab_util.sml b/src/elab_util.sml
index 1c67fbb2..5fa0fa27 100644
--- a/src/elab_util.sml
+++ b/src/elab_util.sml
@@ -30,10 +30,14 @@ structure ElabUtil :> ELAB_UTIL = struct
open Elab
fun classifyDatatype xncs =
- if List.all (fn (_, _, NONE) => true | _ => false) xncs then
- Enum
- else
- Default
+ case xncs of
+ [(_, _, NONE), (_, _, SOME _)] => Option
+ | [(_, _, SOME _), (_, _, NONE)] => Option
+ | _ =>
+ if List.all (fn (_, _, NONE) => true | _ => false) xncs then
+ Enum
+ else
+ Default
structure S = Search