diff options
| author | ยท๐๐ด๐๐๐ฉ๐ค | 2025-12-11 10:35:34 +0000 |
|---|---|---|
| committer | ยท๐๐ด๐๐๐ฉ๐ค | 2025-12-11 10:35:34 +0000 |
| commit | fe167ebb24c02486b80ccb8b8684a121dae00d60 (patch) | |
| tree | 13a7fcfefbc87ffe3bfd78be357ef47c5a874581 /lib/util.ml | |
| parent | 5fc560944760ddcd38399a39f8ddd275cd4b7d2b (diff) | |
| download | nixtaml-fe167ebb24c02486b80ccb8b8684a121dae00d60.tar nixtaml-fe167ebb24c02486b80ccb8b8684a121dae00d60.tar.gz nixtaml-fe167ebb24c02486b80ccb8b8684a121dae00d60.tar.bz2 nixtaml-fe167ebb24c02486b80ccb8b8684a121dae00d60.tar.lz nixtaml-fe167ebb24c02486b80ccb8b8684a121dae00d60.tar.xz nixtaml-fe167ebb24c02486b80ccb8b8684a121dae00d60.tar.zst nixtaml-fe167ebb24c02486b80ccb8b8684a121dae00d60.zip | |
move Non_empty_list to Utils
Diffstat (limited to 'lib/util.ml')
| -rw-r--r-- | lib/util.ml | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml index 30b8fef..985fc43 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -194,3 +194,19 @@ module URI = struct Jsont.string |> Jsont.map ~kind: "URI" ~dec: Uri.of_string ~enc: Uri.to_string end + +module Non_empty_list = struct + type 'a t = + ('a * 'a list) + [@@deriving show, eq, qcheck] + + let to_list (x, xs) = x :: xs + + let of_list = function + | [] -> None + | x :: xs -> Some (x, xs) + + let map f (x, xs) = (f x, List.map f xs) + let fold_left f acc (x, xs) = List.fold_left f acc (x :: xs) + let fold_right f acc (x, xs) = List.fold_right f acc (x :: xs) +end |
