nt/nib/types/fault.nix
2025-12-14 12:59:31 +10:00

17 lines
347 B
Nix

{...}:
with builtins; rec {
# Fault Monad
# Wrapper around an error (ie builtins.abort)
Fault = error: {
error = error;
};
# Pattern Matching
isFault = F: attrNames F == ["error"];
# Unwrap (Monadic Return Operation)
unwrapFault = F: F.error;
# Map (Monadic Bind Operation)
mapFault = f: F: Fault (f (unwrapFault F));
}