summaryrefslogtreecommitdiff
path: root/src/lem_interp/interp_lib.lem
diff options
context:
space:
mode:
authorGabriel Kerneis2014-06-11 15:15:38 +0100
committerGabriel Kerneis2014-06-11 15:15:38 +0100
commit56b21140e8d9cd1247ea064b9ce3fdbe2f8b57ec (patch)
tree29e1e83f526078b7cde32019de8fee1ef9112cbd /src/lem_interp/interp_lib.lem
parentecc003fd2aace0044e04305acd795441166c19e9 (diff)
Improve error message for missing library functions
Diffstat (limited to 'src/lem_interp/interp_lib.lem')
-rw-r--r--src/lem_interp/interp_lib.lem7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lem_interp/interp_lib.lem b/src/lem_interp/interp_lib.lem
index 18af8bfd..4d6ae138 100644
--- a/src/lem_interp/interp_lib.lem
+++ b/src/lem_interp/interp_lib.lem
@@ -1,7 +1,7 @@
open import Pervasives
open import Interp
open import Interp_ast
-import Maybe_extra
+import Assert_extra Maybe_extra
open import Num
open import List
open import Word
@@ -161,4 +161,7 @@ let function_map = [
("gt_vec", compare_op_vec (>));
] ;;
-let eval_external name v = (Maybe_extra.fromJust (List.lookup name function_map)) v ;;
+let eval_external name v = match List.lookup name function_map with
+ | Just f -> f v
+ | Nothing -> Assert_extra.failwith ("missing library function " ^ name)
+ end