rename mapMaybe -> bindMaybe
This commit is contained in:
parent
87ab7f7ede
commit
22ed581b2d
2 changed files with 10 additions and 10 deletions
|
|
@ -47,8 +47,8 @@ in rec {
|
||||||
# unwrapSome = unwrapMaybe (v: v);
|
# unwrapSome = unwrapMaybe (v: v);
|
||||||
# unwrapNone = f: unwrapMaybe f (v: v);
|
# unwrapNone = f: unwrapMaybe f (v: v);
|
||||||
|
|
||||||
# Map (Monadic Bind Operation)
|
# Monadic Bind Operation
|
||||||
mapMaybe = f: T:
|
bindMaybe = f: T:
|
||||||
if isSome T
|
if isSome T
|
||||||
then Some (f T._value)
|
then Some (f T._value)
|
||||||
else T;
|
else T;
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
inherit
|
inherit
|
||||||
(this.maybe)
|
(this.maybe)
|
||||||
isSome
|
isSome
|
||||||
mapMaybe
|
bindMaybe
|
||||||
;
|
;
|
||||||
|
|
||||||
inherit
|
inherit
|
||||||
|
|
@ -30,17 +30,17 @@ in rec {
|
||||||
# check if a value is NixTypes compatible
|
# check if a value is NixTypes compatible
|
||||||
isNT = T:
|
isNT = T:
|
||||||
openNT T
|
openNT T
|
||||||
|> mapMaybe (content: attrNames content |> contains ["sig" "derive" "ops" "req"])
|
|> bindMaybe (content: attrNames content |> contains ["sig" "derive" "ops" "req"])
|
||||||
|> isSome;
|
|> isSome;
|
||||||
|
|
||||||
isNTClass = T:
|
isNTClass = T:
|
||||||
openNT T
|
openNT T
|
||||||
|> mapMaybe (content: attrNames content == ["sig" "derive" "ops" "req"])
|
|> bindMaybe (content: attrNames content == ["sig" "derive" "ops" "req"])
|
||||||
|> isSome;
|
|> isSome;
|
||||||
|
|
||||||
isNTType = T:
|
isNTType = T:
|
||||||
openNT T
|
openNT T
|
||||||
|> mapMaybe (content:
|
|> bindMaybe (content:
|
||||||
attrNames content
|
attrNames content
|
||||||
== ["instance" "sig" "derive" "ops" "req"]
|
== ["instance" "sig" "derive" "ops" "req"]
|
||||||
&& content.instance == false)
|
&& content.instance == false)
|
||||||
|
|
@ -48,7 +48,7 @@ in rec {
|
||||||
|
|
||||||
isNTInstance = T:
|
isNTInstance = T:
|
||||||
openNT T
|
openNT T
|
||||||
|> mapMaybe (content:
|
|> bindMaybe (content:
|
||||||
attrNames content
|
attrNames content
|
||||||
== ["instance" "sig" "derive" "ops" "req"]
|
== ["instance" "sig" "derive" "ops" "req"]
|
||||||
&& content.instance == true)
|
&& content.instance == true)
|
||||||
|
|
@ -60,19 +60,19 @@ in rec {
|
||||||
impls = type: T:
|
impls = type: T:
|
||||||
assert enfIsNT T "nt.impls";
|
assert enfIsNT T "nt.impls";
|
||||||
openNT T
|
openNT T
|
||||||
|> mapMaybe (content: content.derive |> elem (toTypeSig type))
|
|> bindMaybe (content: content.derive |> elem (toTypeSig type))
|
||||||
|> isSome;
|
|> isSome;
|
||||||
|
|
||||||
is = type: T:
|
is = type: T:
|
||||||
assert enfIsNT T "nt.is";
|
assert enfIsNT T "nt.is";
|
||||||
openNT T
|
openNT T
|
||||||
|> mapMaybe (content: content.sig == toTypeSig type)
|
|> bindMaybe (content: content.sig == toTypeSig type)
|
||||||
|> isSome;
|
|> isSome;
|
||||||
|
|
||||||
typeSig = T:
|
typeSig = T:
|
||||||
assert enfIsNT T "nt.typeSig";
|
assert enfIsNT T "nt.typeSig";
|
||||||
openNT T
|
openNT T
|
||||||
|> mapMaybe (getAttr "sig")
|
|> bindMaybe (getAttr "sig")
|
||||||
|> isSome;
|
|> isSome;
|
||||||
|
|
||||||
toTypeSig = x:
|
toTypeSig = x:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue