| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Nix.Path
Synopsis
- data Path
- path :: Iso' Path [Identifier]
Documentation
Paths are non-empty lists of identifiers in Nix.
>>>path # [ident # "yo"]Path [Identifier "yo"]
Any attempt to construct the empty path throws an error:
>>>:set -XScopedTypeVariables>>>either (\(_::SomeException) -> "empty paths are illegal") show <$> try (evaluate (path # []))"empty paths are illegal"
Paths can be pretty-printed and parsed with the Text class:
>>>simpleParse "foo.\"foo.bar\".bar" :: Maybe PathJust (Path [Identifier "foo",Identifier "foo.bar",Identifier "bar"])>>>maybe empty disp (simpleParse "foo.\"foo\".\"bar\".bar" :: Maybe Path)foo.foo.bar.bar
\p -> Just (p :: Path) == simpleParse (display p)
Paths are instances of strings and can be implicitly converted:
>>>:set -XOverloadedStrings>>>disp $ ("yo.bar" :: Path)yo.bar>>>disp $ (" yo . bar " :: Path)yo.bar
Freaky quoted identifiers are fine throughout:
>>>disp $ path # ["yo","b\"ar"]yo."b\"ar">>>disp ("\"5ident\"" :: Path)"5ident">>>disp $ path # ["5ident","foo.bar","foo\nbar"]"5ident"."foo.bar"."foo\nbar"
Instances
| Eq Path # | |
| Ord Path # | |
| Show Path # | |
| IsString Path # | |
Defined in Language.Nix.Path Methods fromString :: String -> Path # | |
| Generic Path # | |
| Text Path # | |
| NFData Path # | |
Defined in Language.Nix.Path | |
| Arbitrary Path # | |
| type Rep Path # | |
Defined in Language.Nix.Path type Rep Path = D1 (MetaData "Path" "Language.Nix.Path" "language-nix-2.1.0.1-BmSDMjriyUI13JPNa6s8Su" True) (C1 (MetaCons "Path" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Identifier]))) | |
path :: Iso' Path [Identifier] #
Use this isomorphism to construct a path from a list of identifiers, or to access that list for a given path.