Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Shorthands for making Nix expressions.
Functions with an F
suffix return a more general type (base functor F a
) without the outer
Fix
wrapper that creates a
.
Synopsis
- mkConst :: NAtom -> NExpr
- mkNull :: NExpr
- mkBool :: Bool -> NExpr
- mkInt :: Integer -> NExpr
- mkFloat :: Float -> NExpr
- mkStr :: Text -> NExpr
- mkIndentedStr :: Int -> Text -> NExpr
- mkPath :: Bool -> FilePath -> NExpr
- mkEnvPath :: FilePath -> NExpr
- mkRelPath :: FilePath -> NExpr
- mkSym :: Text -> NExpr
- mkSynHole :: Text -> NExpr
- mkSelector :: Text -> NAttrPath NExpr
- mkApp :: NExpr -> NExpr -> NExpr
- mkOp :: NUnaryOp -> NExpr -> NExpr
- mkNot :: NExpr -> NExpr
- mkNeg :: NExpr -> NExpr
- mkOp2 :: NBinaryOp -> NExpr -> NExpr -> NExpr
- mkParamSet :: [(Text, Maybe NExpr)] -> Params NExpr
- mkVariadicParamSet :: [(Text, Maybe NExpr)] -> Params NExpr
- mkNamedParamSet :: Text -> [(Text, Maybe NExpr)] -> Params NExpr
- mkNamedVariadicParamSet :: Text -> [(Text, Maybe NExpr)] -> Params NExpr
- mkGeneralParamSet :: Maybe Text -> [(Text, Maybe NExpr)] -> Bool -> Params NExpr
- mkRecSet :: [Binding NExpr] -> NExpr
- mkNonRecSet :: [Binding NExpr] -> NExpr
- mkSet :: Recursivity -> [Binding NExpr] -> NExpr
- emptySet :: NExpr
- mkList :: [NExpr] -> NExpr
- emptyList :: NExpr
- mkLets :: [Binding NExpr] -> NExpr -> NExpr
- mkWith :: NExpr -> NExpr -> NExpr
- mkAssert :: NExpr -> NExpr -> NExpr
- mkIf :: NExpr -> NExpr -> NExpr -> NExpr
- mkFunction :: Params NExpr -> NExpr -> NExpr
- getRefOrDefault :: Maybe NExpr -> NExpr -> Text -> NExpr
- mkNullF :: NExprF a
- mkBoolF :: Bool -> NExprF a
- mkIntF :: Integer -> NExprF a
- mkFloatF :: Float -> NExprF a
- mkPathF :: Bool -> FilePath -> NExprF a
- mkEnvPathF :: FilePath -> NExprF a
- mkRelPathF :: FilePath -> NExprF a
- mkSymF :: Text -> NExprF a
- mkSynHoleF :: Text -> NExprF a
- inheritFrom :: e -> [VarName] -> Binding e
- inherit :: [VarName] -> Binding e
- ($=) :: Text -> NExpr -> Binding NExpr
- bindTo :: Text -> NExpr -> Binding NExpr
- appendBindings :: [Binding NExpr] -> NExpr -> NExpr
- modifyFunctionBody :: (NExpr -> NExpr) -> NExpr -> NExpr
- letsE :: [(Text, NExpr)] -> NExpr -> NExpr
- letE :: Text -> NExpr -> NExpr -> NExpr
- attrsE :: [(Text, NExpr)] -> NExpr
- recAttrsE :: [(Text, NExpr)] -> NExpr
- (@@) :: NExpr -> NExpr -> NExpr
- ($==) :: NExpr -> NExpr -> NExpr
- ($!=) :: NExpr -> NExpr -> NExpr
- ($<) :: NExpr -> NExpr -> NExpr
- ($<=) :: NExpr -> NExpr -> NExpr
- ($>) :: NExpr -> NExpr -> NExpr
- ($>=) :: NExpr -> NExpr -> NExpr
- ($&&) :: NExpr -> NExpr -> NExpr
- ($||) :: NExpr -> NExpr -> NExpr
- ($->) :: NExpr -> NExpr -> NExpr
- ($//) :: NExpr -> NExpr -> NExpr
- ($+) :: NExpr -> NExpr -> NExpr
- ($-) :: NExpr -> NExpr -> NExpr
- ($*) :: NExpr -> NExpr -> NExpr
- ($/) :: NExpr -> NExpr -> NExpr
- ($++) :: NExpr -> NExpr -> NExpr
- (@.) :: NExpr -> Text -> NExpr
- (@.<|>) :: NExpr -> Text -> NExpr -> NExpr
- (==>) :: Params NExpr -> NExpr -> NExpr
- mkOper :: NUnaryOp -> NExpr -> NExpr
- mkOper2 :: NBinaryOp -> NExpr -> NExpr -> NExpr
- mkBinop :: NBinaryOp -> NExpr -> NExpr -> NExpr
- mkParamset :: [(Text, Maybe NExpr)] -> Bool -> Params NExpr
Basic expression builders
mkPath :: Bool -> FilePath -> NExpr Source #
Put a path. Use True
if the path should be read from the environment, else use False
.
mkEnvPath :: FilePath -> NExpr Source #
Put a path expression which pulls from the NIX_PATH
env
variable.
mkNeg :: NExpr -> NExpr Source #
Number negation: -
.
Negation in the language works with integers and floating point. @since 0.15.0
mkNamedVariadicParamSet :: Text -> [(Text, Maybe NExpr)] -> Params NExpr Source #
s@{ x, ... }
Since: 0.15.0
mkGeneralParamSet :: Maybe Text -> [(Text, Maybe NExpr)] -> Bool -> Params NExpr Source #
Args:
- Maybe name:
Nothing -> {} Just "s" -> s@{}
- key:expr pairs
- Is variadic or not:
True -> {...} False -> {}
Since: 0.15.0
Empty set.
Monoid. Use //
operation (shorthand $//) to extend the set.
@since 0.15.0
mkLets :: [Binding NExpr] -> NExpr -> NExpr Source #
Wrap in a let
.
(Evaluate the second argument after introducing the bindings.)
Haskell | Nix |
---|---|
mkLets bindings expr
| let bindings;
in expr |
mkWith :: NExpr -> NExpr -> NExpr Source #
Create a whith
:
1st expr - what to bring into the scope.
2nd - expression that recieves the scope extention.
Haskell | Nix |
---|---|
mkWith body main | with body; expr |
mkAssert :: NExpr -> NExpr -> NExpr Source #
Create an assert
:
1st expr - asserting itself, must return true
.
2nd - main expression to evaluated after assertion.
Haskell | Nix |
---|---|
mkAssert check eval | assert check; eval |
mkFunction :: Params NExpr -> NExpr -> NExpr Source #
Lambda function, analog of Haskell's \ x -> x
:
Haskell | Nix |
---|---|
mkFunction x expr | x: expr |
getRefOrDefault :: Maybe NExpr -> NExpr -> Text -> NExpr Source #
General dot-reference with optional alternative if the key does not exist. @since 0.15.0
Base functor builders for basic expressions builders *sic
mkEnvPathF :: FilePath -> NExprF a Source #
Unfixed mkEnvPath
.
mkRelPathF :: FilePath -> NExprF a Source #
Unfixed mkRelPath
.
mkSynHoleF :: Text -> NExprF a Source #
Unfixed mkSynHole
.
Other
inheritFrom :: e -> [VarName] -> Binding e Source #
An inherit
clause with an expression to pull from.
Hask | Nix | pseudocode |
---|---|---|
inheritFrom x [a, b]
| inherit (x) a b;
| a = x.a;
b = x.b; |
inherit :: [VarName] -> Binding e Source #
An inherit
clause without an expression to pull from.
Hask | Nix | pseudocode |
---|---|---|
inheritFrom [a, b]
| inherit a b;
| a = outside.a;
b = outside.b; |
bindTo :: Text -> NExpr -> Binding NExpr Source #
Shorthand for producing a binding of a name to an expression: Nix's =
.
appendBindings :: [Binding NExpr] -> NExpr -> NExpr Source #
Append a list of bindings to a set or let expression. For example: adding `[a = 1, b = 2]` to `let c = 3; in 4` produces `let a = 1; b = 2; c = 3; in 4`.
modifyFunctionBody :: (NExpr -> NExpr) -> NExpr -> NExpr Source #
Applies a transformation to the body of a Nix function.
Nix binary operators
($//) :: NExpr -> NExpr -> NExpr infixr 5 Source #
Extendoverride the left attr set, with the right one: @/@
(@.<|>) :: NExpr -> Text -> NExpr -> NExpr infix 9 Source #
Dot-reference into an attribute set with alternative if the key does not exist.
s.x or y
Since: 0.15.0
(==>) :: Params NExpr -> NExpr -> NExpr infixr 1 Source #
Lambda function, analog of Haskell's \ x -> x
:
Haskell | Nix |
---|---|
x ==> expr | x: expr |
Under deprecation
mkOper2 :: NBinaryOp -> NExpr -> NExpr -> NExpr Source #
Deprecated
: Please, use mkOp2
| Put a binary operator.
mkBinop :: NBinaryOp -> NExpr -> NExpr -> NExpr Source #
Deprecated
: Please, use mkOp2
| Nix binary operator builder.
mkParamset :: [(Text, Maybe NExpr)] -> Bool -> Params NExpr Source #
Deprecated
: Please, use:
* mkParamSet
is for closed sets;
* mkVariadicSet
is for variadic;
* mkGeneralParamSet
a general constructor.