-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Data types and useful functions to represent and manipulate the Nix language. -- -- Data types and useful functions to represent and manipulate the Nix -- language. @package language-nix @version 2 module Language.Nix.Identifier data Identifier ident :: Iso' Identifier String quote :: String -> String needsQuoting :: String -> Bool instance Data.String.IsString Language.Nix.Identifier.Identifier instance GHC.Classes.Ord Language.Nix.Identifier.Identifier instance GHC.Classes.Eq Language.Nix.Identifier.Identifier instance GHC.Show.Show Language.Nix.Identifier.Identifier instance Text.PrettyPrint.HughesPJClass.Pretty Language.Nix.Identifier.Identifier instance Control.DeepSeq.NFData Language.Nix.Identifier.Identifier module Language.Nix.Path -- | 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: -- --
-- >>> path # [] -- Path *** Exception: Nix paths cannot be empty ---- -- Identifier is an instance of IsString: -- --
-- >>> :set -XOverloadedStrings -- -- >>> pPrint $ path # ["yo","bar"] -- yo.bar ---- -- Freaky quoted identifiers are fine except in the first segment: -- --
-- >>> pPrint $ path # ["yo","b\"ar"] -- yo."b\"ar" -- -- >>> pPrint $ path # ["5ident"] -- *** Exception: invalid Nix path: [Identifier "5ident"] -- -- >>> pPrint $ path # ["5ident","foo","bar"] -- *** Exception: invalid Nix path: [Identifier "5ident",Identifier "foo",Identifier "bar"] --data Path path :: Iso' Path [Identifier] instance GHC.Classes.Ord Language.Nix.Path.Path instance GHC.Classes.Eq Language.Nix.Path.Path instance GHC.Show.Show Language.Nix.Path.Path instance Control.DeepSeq.NFData Language.Nix.Path.Path instance Text.PrettyPrint.HughesPJClass.Pretty Language.Nix.Path.Path module Language.Nix.Binding -- | A Binding represents an identifier that refers to some other -- Path. data Binding binding :: Iso' Binding (Identifier, Path) localName :: Lens' Binding Identifier reference :: Lens' Binding Path instance GHC.Classes.Ord Language.Nix.Binding.Binding instance GHC.Classes.Eq Language.Nix.Binding.Binding instance GHC.Show.Show Language.Nix.Binding.Binding instance Control.DeepSeq.NFData Language.Nix.Binding.Binding instance Text.PrettyPrint.HughesPJClass.Pretty Language.Nix.Binding.Binding module Language.Nix