diff options
-rw-r--r-- | gen/src/gleam@list.erl | 12 | ||||
-rw-r--r-- | gen/src/gleam@map.erl | 2 | ||||
-rw-r--r-- | src/gleam/int.gleam | 5 | ||||
-rw-r--r-- | src/gleam/list.gleam | 19 | ||||
-rw-r--r-- | src/gleam/map.gleam | 9 | ||||
-rw-r--r-- | src/gleam__stdlib.erl | 4 |
6 files changed, 18 insertions, 33 deletions
diff --git a/gen/src/gleam@list.erl b/gen/src/gleam@list.erl index e8eabd2..324395f 100644 --- a/gen/src/gleam@list.erl +++ b/gen/src/gleam@list.erl @@ -24,7 +24,7 @@ contains(List, Elem) -> head(List) -> case List of [] -> - {error, empty}; + {error, {}}; [X | _] -> {ok, X} @@ -33,7 +33,7 @@ head(List) -> tail(List) -> case List of [] -> - {error, empty}; + {error, {}}; [_ | Xs] -> {ok, Xs} @@ -172,7 +172,7 @@ fold_right(List, Acc, Fun) -> find(Haystack, F) -> case Haystack of [] -> - {error, not_found}; + {error, {}}; [X | Rest] -> case F(X) of @@ -232,7 +232,7 @@ strict_zip(L1, L2) -> {ok, zip(L1, L2)}; false -> - {error, length_mismatch} + {error, {}} end. intersperse(List, Elem) -> @@ -250,12 +250,12 @@ intersperse(List, Elem) -> at(List, I) -> case I < 0 of true -> - {error, not_found}; + {error, {}}; false -> case List of [] -> - {error, not_found}; + {error, {}}; [X | Rest] -> case I =:= 0 of diff --git a/gen/src/gleam@map.erl b/gen/src/gleam@map.erl index e3a2e35..b93f8bd 100644 --- a/gen/src/gleam@map.erl +++ b/gen/src/gleam@map.erl @@ -72,7 +72,7 @@ update(Dict, Key, F) -> put(Dict, Key, F({ok, Value})); {error, _} -> - put(Dict, Key, F({error, not_found})) + put(Dict, Key, F({error, nil})) end. do_fold(List, Acc, F) -> diff --git a/src/gleam/int.gleam b/src/gleam/int.gleam index 2fed6bd..7a83fba 100644 --- a/src/gleam/int.gleam +++ b/src/gleam/int.gleam @@ -1,9 +1,6 @@ import gleam/order -pub enum NotAnInt = - | NotAnInt - -pub external fn parse(String) -> Result(Int, NotAnInt) = "gleam__stdlib" "parse_int"; +pub external fn parse(String) -> Result(Int, Nil) = "gleam__stdlib" "parse_int"; pub external fn to_string(Int) -> String = "erlang" "integer_to_binary" diff --git a/src/gleam/list.gleam b/src/gleam/list.gleam index ed63a4b..2df547c 100644 --- a/src/gleam/list.gleam +++ b/src/gleam/list.gleam @@ -2,14 +2,7 @@ import gleam/int import gleam/order import gleam/pair -pub enum Empty = - | Empty - -pub enum NotFound = - | NotFound - -pub enum LengthMismatch = - | LengthMismatch +pub struct LengthMismatch {} // Using the Erlang C BIF implementation. // @@ -32,14 +25,14 @@ pub fn contains(list, elem) { pub fn head(list) { case list { - | [] -> Error(Empty) + | [] -> Error(Nil) | [x | _] -> Ok(x) } } pub fn tail(list) { case list { - | [] -> Error(Empty) + | [] -> Error(Nil) | [_ | xs] -> Ok(xs) } } @@ -157,7 +150,7 @@ pub fn fold_right(list, acc, fun) { pub fn find(haystack, f) { case haystack { - | [] -> Error(NotFound) + | [] -> Error(Nil) | [x | rest] -> case f(x) { | Ok(x) -> Ok(x) @@ -213,10 +206,10 @@ pub fn intersperse(list, elem) { pub fn at(list, i) { case i < 0 { - | True -> Error(NotFound) + | True -> Error(Nil) | False -> case list { - | [] -> Error(NotFound) + | [] -> Error(Nil) | [x | rest] -> case i == 0 { | True -> Ok(x) diff --git a/src/gleam/map.gleam b/src/gleam/map.gleam index 935f3cb..b46590d 100644 --- a/src/gleam/map.gleam +++ b/src/gleam/map.gleam @@ -5,9 +5,6 @@ import gleam/pair pub external type MapDict(key, value); -pub enum NotFound = - | NotFound - pub external fn size(MapDict(k, v)) -> Int = "maps" "size" @@ -27,7 +24,7 @@ pub fn has_key(map, key) { pub external fn new() -> MapDict(key, value) = "maps" "new" -pub external fn fetch(MapDict(key, value), key) -> Result(value, NotFound) +pub external fn fetch(MapDict(key, value), key) -> Result(value, Nil) = "gleam__stdlib" "map_fetch"; external fn erl_put(key, value, MapDict(key, value)) -> MapDict(key, value) @@ -79,12 +76,10 @@ pub fn drop(map, keys) { }) } -pub external type NotFound; - pub fn update(dict, key, f) { case fetch(dict, key) { | Ok(value) -> put(dict, key, f(Ok(value))) - | Error(_) -> put(dict, key, f(Error(NotFound))) + | Error(_) -> put(dict, key, f(Error(Nil))) } } diff --git a/src/gleam__stdlib.erl b/src/gleam__stdlib.erl index 55e847d..b9236ed 100644 --- a/src/gleam__stdlib.erl +++ b/src/gleam__stdlib.erl @@ -17,7 +17,7 @@ expect_is_error(A) -> ?assertMatch({error, _}, A). map_fetch(Map, Key) -> case maps:find(Key, Map) of - error -> {error, not_found}; + error -> {error, nil}; OkFound -> OkFound end. @@ -79,7 +79,7 @@ parse_int(String) -> {ok, Integer}; _ -> - {error, parse_error} + {error, nil} end. parse_float(String) -> |