aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2018-08-24 21:07:11 +0200
committertv <tv@krebsco.de>2018-08-24 21:07:11 +0200
commit5d79992262e8f16a3efa985375be74abea3bb392 (patch)
treefefb05a756c92e72852fcaf082c77db821eb11b4
parent4d0829328e885a6d7163b513998a975e60dd0a72 (diff)
lib.types: add haskell.{conid,modid}v1.0.0
-rw-r--r--lib/types.nix13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/types.nix b/lib/types.nix
index 572964a..09d403a 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -1,6 +1,19 @@
{ lib, ... }:
with lib;
rec {
+
+ haskell.conid = mkOptionType {
+ name = "Haskell constructor identifier";
+ check = test "[[:upper:]][[:lower:]_[:upper:]0-9']*";
+ merge = mergeOneOption;
+ };
+
+ haskell.modid = mkOptionType {
+ name = "Haskell module identifier";
+ check = x: isString x && all haskell.conid.check (splitString "." x);
+ merge = mergeOneOption;
+ };
+
# POSIX.1‐2013, 3.2 Absolute Pathname
absolute-pathname = mkOptionType {
name = "POSIX absolute pathname";