···1+# | Discard the context of a string while ensuring that expected path
2+# validity invariants hold.
3+#
4+# This relies on import-from-derivation, but it is only useful in
5+# contexts where the string is going to be used in an
6+# import-from-derivation anyway.
7+#
8+# safeDiscardStringContext : String → String
9+{ writeText }: s:
10+ builtins.seq
11+ (import (writeText
12+ "discard.nix"
13+ "${builtins.substring 0 0 s}null\n"))
14+ (builtins.unsafeDiscardStringContext s)