docs/Nixpkgs/Library-Reference/trivial/index.html

5123 lines
126 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Aux Documentation">
<meta name="author" content="Nixpkgs Aux, and Lix Contributors">
<link rel="canonical" href="https://docs.auxolotl.org/Nixpkgs/Library-Reference/trivial/">
<link rel="prev" href="../strings/">
<link rel="next" href="../versions/">
<link rel="icon" href="../../../assets/aux-logo.svg">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.29">
<title>lib.trivial: miscellaneous functions - Aux Docs</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.76a95c52.min.css">
<link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.bunny.net/css?family=IBM+Plex+Sans:300,300i,400,400i,700,700i%7CIBM+Plex+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"IBM Plex Sans";--md-code-font:"IBM Plex Mono"}</style>
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<meta property="og:type" content="website" >
<meta property="og:title" content="lib.trivial: miscellaneous functions {#sec-functions-library-trivial} - Aux Docs" >
<meta property="og:description" content="Aux Documentation" >
<meta property="og:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Library-Reference/trivial.png" >
<meta property="og:image:type" content="image/png" >
<meta property="og:image:width" content="1200" >
<meta property="og:image:height" content="630" >
<meta property="og:url" content="https://docs.auxolotl.org/Nixpkgs/Library-Reference/trivial/" >
<meta name="twitter:card" content="summary_large_image" >
<meta name="twitter:title" content="lib.trivial: miscellaneous functions {#sec-functions-library-trivial} - Aux Docs" >
<meta name="twitter:description" content="Aux Documentation" >
<meta name="twitter:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Library-Reference/trivial.png" >
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="blue">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#sec-functions-library-trivial" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../../.." title="Aux Docs" class="md-header__button md-logo" aria-label="Aux Docs" data-md-component="logo">
<img src="../../../assets/aux-logo.svg" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Aux Docs
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
lib.trivial: miscellaneous functions
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="blue" aria-label="Dark Mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Dark Mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="blue" aria-label="Light Mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Light Mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg>
</label>
</form>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://git.auxolotl.org/auxolotl/docs" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
</div>
<div class="md-source__repository">
auxolotl/docs
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../.." class="md-tabs__link">
Aux Documentation Hub
</a>
</li>
<li class="md-tabs__item">
<a href="../../../TODO/" class="md-tabs__link">
TODO
</a>
</li>
<li class="md-tabs__item">
<a href="../../../Aux/" class="md-tabs__link">
Aux
</a>
</li>
<li class="md-tabs__item">
<a href="../../../Lix/" class="md-tabs__link">
Lix
</a>
</li>
<li class="md-tabs__item">
<a href="../../../NixOS/appstream/" class="md-tabs__link">
NixOS
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../../" class="md-tabs__link">
Nixpkgs
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../.." title="Aux Docs" class="md-nav__button md-logo" aria-label="Aux Docs" data-md-component="logo">
<img src="../../../assets/aux-logo.svg" alt="logo">
</a>
Aux Docs
</label>
<div class="md-nav__source">
<a href="https://git.auxolotl.org/auxolotl/docs" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
</div>
<div class="md-source__repository">
auxolotl/docs
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
<span class="md-ellipsis">
Aux Documentation Hub
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../TODO/" class="md-nav__link">
<span class="md-ellipsis">
TODO
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../../Aux/" class="md-nav__link">
<span class="md-ellipsis">
Aux
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../../Lix/" class="md-nav__link">
<span class="md-ellipsis">
Lix
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../../NixOS/appstream/" class="md-nav__link">
<span class="md-ellipsis">
NixOS
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
<div class="md-nav__link md-nav__container">
<a href="../../" class="md-nav__link ">
<span class="md-ellipsis">
Nixpkgs
</span>
</a>
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Nixpkgs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../options/" class="md-nav__link">
<span class="md-ellipsis">
Options
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Build-Helpers/" class="md-nav__link">
<span class="md-ellipsis">
Build Helpers
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Development/" class="md-nav__link">
<span class="md-ellipsis">
Development
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Functions/" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Hooks/" class="md-nav__link">
<span class="md-ellipsis">
Hooks
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Languages-And-Frameworks/" class="md-nav__link">
<span class="md-ellipsis">
Languages And Frameworks
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_8" checked>
<label class="md-nav__link" for="__nav_6_8" id="__nav_6_8_label" tabindex="0">
<span class="md-ellipsis">
Library Reference
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_8_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6_8">
<span class="md-nav__icon md-icon"></span>
Library Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../asserts/" class="md-nav__link">
<span class="md-ellipsis">
lib.asserts: assertion functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../attrsets/" class="md-nav__link">
<span class="md-ellipsis">
lib.attrsets: attribute set functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cli/" class="md-nav__link">
<span class="md-ellipsis">
lib.cli: command-line serialization functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../customisation/" class="md-nav__link">
<span class="md-ellipsis">
lib.customisation: Functions to customise (derivation-related) functions, derivatons, or attribute sets
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../debug/" class="md-nav__link">
<span class="md-ellipsis">
lib.debug: debugging functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../derivations/" class="md-nav__link">
<span class="md-ellipsis">
lib.derivations: miscellaneous derivation-specific functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../fileset/" class="md-nav__link">
<span class="md-ellipsis">
lib.fileset: file set functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../filesystem/" class="md-nav__link">
<span class="md-ellipsis">
lib.filesystem: filesystem functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../fixedPoints/" class="md-nav__link">
<span class="md-ellipsis">
lib.fixedPoints: explicit recursion functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../generators/" class="md-nav__link">
<span class="md-ellipsis">
lib.generators: functions that create file formats from nix data structures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../gvariant/" class="md-nav__link">
<span class="md-ellipsis">
lib.gvariant: GVariant formatted string serialization functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../lists/" class="md-nav__link">
<span class="md-ellipsis">
lib.lists: list manipulation functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../meta/" class="md-nav__link">
<span class="md-ellipsis">
lib.meta: functions for derivation metadata
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../options/" class="md-nav__link">
<span class="md-ellipsis">
lib.options: NixOS / nixpkgs option handling
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../path/" class="md-nav__link">
<span class="md-ellipsis">
lib.path: path functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../sources/" class="md-nav__link">
<span class="md-ellipsis">
lib.sources: source filtering functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../strings/" class="md-nav__link">
<span class="md-ellipsis">
lib.strings: string manipulation functions
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
lib.trivial: miscellaneous functions
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
lib.trivial: miscellaneous functions
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.id" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.id
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.id">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.const" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.const
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.const">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_1" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_1" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.pipe" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.pipe
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.pipe">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_2" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_2" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_1" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.concat" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.concat
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.concat">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_3" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_3" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_2" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.or" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.or
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.or">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_4" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.and" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.and
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.and">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_5" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.xor" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.xor
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.xor">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_6" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.bitNot" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.bitNot
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.boolToString" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.boolToString
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.boolToString">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_7" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_4" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.mergeAttrs" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.mergeAttrs
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.mergeAttrs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_8" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_3" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.flip" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.flip
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.flip">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_9" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_5" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_4" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.mapNullable" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.mapNullable
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.mapNullable">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_10" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_5" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.version" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.version
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.release" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.release
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.oldestSupportedRelease" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.oldestSupportedRelease
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.isInOldestRelease" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.isInOldestRelease
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.isInOldestRelease">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_11" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.codeName" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.codeName
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.versionSuffix" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.versionSuffix
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.revisionWithDefault" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.revisionWithDefault
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.revisionWithDefault">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_12" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_6" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.inNixShell" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.inNixShell
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.inNixShell">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#type_7" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.inPureEvalMode" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.inPureEvalMode
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.inPureEvalMode">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#type_8" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.min" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.min
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.min">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_13" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.max" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.max
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.max">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_14" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.mod" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.mod
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.mod">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_15" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_6" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.compare" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.compare
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.compare">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_16" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.splitByAndCompare" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.splitByAndCompare
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.splitByAndCompare">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_17" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_9" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_7" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.importJSON" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.importJSON
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.importJSON">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#examples_8" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#inputs_18" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_10" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.importTOML" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.importTOML
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.importTOML">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#examples_9" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#inputs_19" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_11" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.warn" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.warn
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.warn">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_20" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_12" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.warnIf" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.warnIf
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.warnIf">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_21" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_13" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.warnIfNot" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.warnIfNot
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.warnIfNot">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_22" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_14" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.throwIfNot" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.throwIfNot
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.throwIfNot">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_23" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_15" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_10" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.throwIf" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.throwIf
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.throwIf">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_24" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_16" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.checkListOfEnum" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.checkListOfEnum
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.checkListOfEnum">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_25" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_17" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_11" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.setFunctionArgs" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.setFunctionArgs
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.setFunctionArgs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_26" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.functionArgs" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.functionArgs
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.functionArgs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_27" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.isFunction" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.isFunction
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.isFunction">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_28" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.mirrorFunctionArgs" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.mirrorFunctionArgs
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.mirrorFunctionArgs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_29" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_18" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_12" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.toFunction" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.toFunction
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.toFunction">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_30" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_13" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.fromHexString" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.fromHexString
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.fromHexString">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#type_19" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_14" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.toHexString" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.toHexString
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.toBaseDigits" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.toBaseDigits
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.toBaseDigits">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_31" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../versions/" class="md-nav__link">
<span class="md-ellipsis">
lib.versions: version string functions
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Module-System/module-system.chapter/" class="md-nav__link">
<span class="md-ellipsis">
Module System
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Packages/" class="md-nav__link">
<span class="md-ellipsis">
Packages
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Standard-Environment/" class="md-nav__link">
<span class="md-ellipsis">
Standard Environment
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Using-Nixpkgs/" class="md-nav__link">
<span class="md-ellipsis">
Using Nixpkgs
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.id" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.id
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.id">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.const" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.const
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.const">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_1" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_1" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.pipe" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.pipe
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.pipe">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_2" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_2" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_1" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.concat" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.concat
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.concat">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_3" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_3" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_2" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.or" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.or
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.or">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_4" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.and" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.and
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.and">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_5" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.xor" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.xor
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.xor">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_6" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.bitNot" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.bitNot
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.boolToString" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.boolToString
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.boolToString">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_7" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_4" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.mergeAttrs" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.mergeAttrs
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.mergeAttrs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_8" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_3" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.flip" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.flip
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.flip">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_9" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_5" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_4" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.mapNullable" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.mapNullable
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.mapNullable">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_10" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_5" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.version" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.version
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.release" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.release
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.oldestSupportedRelease" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.oldestSupportedRelease
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.isInOldestRelease" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.isInOldestRelease
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.isInOldestRelease">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_11" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.codeName" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.codeName
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.versionSuffix" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.versionSuffix
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.revisionWithDefault" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.revisionWithDefault
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.revisionWithDefault">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_12" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_6" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.inNixShell" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.inNixShell
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.inNixShell">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#type_7" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.inPureEvalMode" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.inPureEvalMode
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.inPureEvalMode">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#type_8" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.min" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.min
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.min">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_13" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.max" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.max
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.max">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_14" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.mod" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.mod
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.mod">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_15" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_6" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.compare" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.compare
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.compare">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_16" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.splitByAndCompare" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.splitByAndCompare
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.splitByAndCompare">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_17" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_9" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_7" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.importJSON" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.importJSON
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.importJSON">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#examples_8" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#inputs_18" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_10" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.importTOML" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.importTOML
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.importTOML">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#examples_9" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#inputs_19" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_11" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.warn" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.warn
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.warn">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_20" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_12" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.warnIf" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.warnIf
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.warnIf">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_21" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_13" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.warnIfNot" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.warnIfNot
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.warnIfNot">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_22" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_14" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.throwIfNot" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.throwIfNot
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.throwIfNot">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_23" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_15" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_10" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.throwIf" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.throwIf
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.throwIf">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_24" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_16" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.checkListOfEnum" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.checkListOfEnum
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.checkListOfEnum">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_25" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_17" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_11" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.setFunctionArgs" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.setFunctionArgs
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.setFunctionArgs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_26" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.functionArgs" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.functionArgs
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.functionArgs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_27" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.isFunction" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.isFunction
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.isFunction">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_28" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.mirrorFunctionArgs" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.mirrorFunctionArgs
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.mirrorFunctionArgs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_29" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type_18" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_12" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.toFunction" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.toFunction
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.toFunction">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_30" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_13" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.fromHexString" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.fromHexString
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.fromHexString">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#type_19" class="md-nav__link">
<span class="md-ellipsis">
Type
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples_14" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.toHexString" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.toHexString
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.trivial.toBaseDigits" class="md-nav__link">
<span class="md-ellipsis">
lib.trivial.toBaseDigits
</span>
</a>
<nav class="md-nav" aria-label="lib.trivial.toBaseDigits">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#inputs_31" class="md-nav__link">
<span class="md-ellipsis">
Inputs
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="sec-functions-library-trivial">lib.trivial: miscellaneous functions</h1>
<h2 id="function-library-lib.trivial.id"><code>lib.trivial.id</code></h2>
<p>The identity function
For when you need a function that does “nothing”.</p>
<h3 id="inputs">Inputs</h3>
<p><code>x</code></p>
<p>: The value to return</p>
<h3 id="type">Type</h3>
<div class="highlight"><pre><span></span><code>id :: a -&gt; a
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L39">lib/trivial.nix:39</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.const"><code>lib.trivial.const</code></h2>
<p>The constant function</p>
<p>Ignores the second argument. If called with only one argument,
constructs a function that always returns a static value.</p>
<h3 id="inputs_1">Inputs</h3>
<p><code>x</code></p>
<p>: Value to return</p>
<p><code>y</code></p>
<p>: Value to ignore</p>
<h3 id="type_1">Type</h3>
<div class="highlight"><pre><span></span><code>const :: a -&gt; b -&gt; a
</code></pre></div>
<h3 id="examples">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.const</code> usage example</p>
<div class="highlight"><pre><span></span><code><span class="k">let</span> <span class="ss">f</span> <span class="o">=</span> const <span class="mi">5</span><span class="p">;</span> <span class="k">in</span> f <span class="mi">10</span>
<span class="o">=&gt;</span> <span class="mi">5</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L75">lib/trivial.nix:75</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.pipe"><code>lib.trivial.pipe</code></h2>
<p>Pipes a value through a list of functions, left to right.</p>
<h3 id="inputs_2">Inputs</h3>
<p><code>value</code></p>
<p>: Value to start piping.</p>
<p><code>fns</code></p>
<p>: List of functions to apply sequentially.</p>
<h3 id="type_2">Type</h3>
<div class="highlight"><pre><span></span><code>pipe :: a -&gt; [&lt;functions&gt;] -&gt; &lt;return type of last function&gt;
</code></pre></div>
<h3 id="examples_1">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.pipe</code> usage example</p>
<div class="highlight"><pre><span></span><code>pipe <span class="mi">2</span> <span class="p">[</span>
<span class="p">(</span>x<span class="p">:</span> x <span class="o">+</span> <span class="mi">2</span><span class="p">)</span> <span class="c1"># 2 + 2 = 4</span>
<span class="p">(</span>x<span class="p">:</span> x <span class="o">*</span> <span class="mi">2</span><span class="p">)</span> <span class="c1"># 4 * 2 = 8</span>
<span class="p">]</span>
<span class="o">=&gt;</span> <span class="mi">8</span> <span class="s2">&quot;ideal to do text transformations</span>
<span class="s2">pipe [ &quot;</span><span class="l">a/b</span><span class="s2">&quot; &quot;</span><span class="l">a/c</span><span class="s2">&quot; ] [</span>
<span class="s2"> # create the cp command</span>
<span class="s2"> (map (file: &#39;&#39;cp &quot;</span><span class="si">${</span>src<span class="si">}</span><span class="o">/</span><span class="si">${</span>file<span class="si">}</span><span class="s2">&quot; $out</span><span class="se">\n</span><span class="s2">&#39;&#39;))</span>
<span class="s2"> # concatenate all commands into one string</span>
<span class="s2"> lib.concatStrings</span>
<span class="s2"> # make that string into a nix derivation</span>
<span class="s2"> (pkgs.runCommand &quot;</span>copy-to-out<span class="s2">&quot; {})</span>
<span class="s2">]</span>
<span class="s2">=&gt; &lt;drv which copies all files to $out&gt;</span>
<span class="s2">The output type of each function has to be the input type</span>
<span class="s2">of the next function, and the last function returns the</span>
<span class="s2">final value.</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L131">lib/trivial.nix:131</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.concat"><code>lib.trivial.concat</code></h2>
<p>Concatenate two lists</p>
<h3 id="inputs_3">Inputs</h3>
<p><code>x</code></p>
<p>: 1. Function argument</p>
<p><code>y</code></p>
<p>: 2. Function argument</p>
<h3 id="type_3">Type</h3>
<div class="highlight"><pre><span></span><code>concat :: [a] -&gt; [a] -&gt; [a]
</code></pre></div>
<h3 id="examples_2">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.concat</code> usage example</p>
<div class="highlight"><pre><span></span><code>concat <span class="p">[</span> <span class="mi">1</span> <span class="mi">2</span> <span class="p">]</span> <span class="p">[</span> <span class="mi">3</span> <span class="mi">4</span> <span class="p">]</span>
<span class="o">=&gt;</span> <span class="p">[</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">4</span> <span class="p">]</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L171">lib/trivial.nix:171</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.or"><code>lib.trivial.or</code></h2>
<p>boolean “or”</p>
<h3 id="inputs_4">Inputs</h3>
<p><code>x</code></p>
<p>: 1. Function argument</p>
<p><code>y</code></p>
<p>: 2. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L187">lib/trivial.nix:187</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.and"><code>lib.trivial.and</code></h2>
<p>boolean “and”</p>
<h3 id="inputs_5">Inputs</h3>
<p><code>x</code></p>
<p>: 1. Function argument</p>
<p><code>y</code></p>
<p>: 2. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L203">lib/trivial.nix:203</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.xor"><code>lib.trivial.xor</code></h2>
<p>boolean “exclusive or”</p>
<h3 id="inputs_6">Inputs</h3>
<p><code>x</code></p>
<p>: 1. Function argument</p>
<p><code>y</code></p>
<p>: 2. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L221">lib/trivial.nix:221</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.bitNot"><code>lib.trivial.bitNot</code></h2>
<p>bitwise “not”</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L226">lib/trivial.nix:226</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.boolToString"><code>lib.trivial.boolToString</code></h2>
<p>Convert a boolean to a string.</p>
<p>This function uses the strings "true" and "false" to represent
boolean values. Calling <code>toString</code> on a bool instead returns "1"
and "" (sic!).</p>
<h3 id="inputs_7">Inputs</h3>
<p><code>b</code></p>
<p>: 1. Function argument</p>
<h3 id="type_4">Type</h3>
<div class="highlight"><pre><span></span><code>boolToString :: bool -&gt; string
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L248">lib/trivial.nix:248</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.mergeAttrs"><code>lib.trivial.mergeAttrs</code></h2>
<p>Merge two attribute sets shallowly, right side trumps left</p>
<p>mergeAttrs :: attrs -&gt; attrs -&gt; attrs</p>
<h3 id="inputs_8">Inputs</h3>
<p><code>x</code></p>
<p>: Left attribute set</p>
<p><code>y</code></p>
<p>: Right attribute set (higher precedence for equal keys)</p>
<h3 id="examples_3">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.mergeAttrs</code> usage example</p>
<div class="highlight"><pre><span></span><code>mergeAttrs <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="ss">c</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span> <span class="p">}</span>
<span class="o">=&gt;</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="ss">c</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span> <span class="p">}</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L278">lib/trivial.nix:278</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.flip"><code>lib.trivial.flip</code></h2>
<p>Flip the order of the arguments of a binary function.</p>
<h3 id="inputs_9">Inputs</h3>
<p><code>f</code></p>
<p>: 1. Function argument</p>
<p><code>a</code></p>
<p>: 2. Function argument</p>
<p><code>b</code></p>
<p>: 3. Function argument</p>
<h3 id="type_5">Type</h3>
<div class="highlight"><pre><span></span><code>flip :: (a -&gt; b -&gt; c) -&gt; (b -&gt; a -&gt; c)
</code></pre></div>
<h3 id="examples_4">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.flip</code> usage example</p>
<div class="highlight"><pre><span></span><code>flip concat <span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">[</span><span class="mi">2</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="p">[</span> <span class="mi">2</span> <span class="mi">1</span> <span class="p">]</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L317">lib/trivial.nix:317</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.mapNullable"><code>lib.trivial.mapNullable</code></h2>
<p>Apply function if the supplied argument is non-null.</p>
<h3 id="inputs_10">Inputs</h3>
<p><code>f</code></p>
<p>: Function to call</p>
<p><code>a</code></p>
<p>: Argument to check for null before passing it to <code>f</code></p>
<h3 id="examples_5">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.mapNullable</code> usage example</p>
<div class="highlight"><pre><span></span><code>mapNullable <span class="p">(</span>x<span class="p">:</span> x<span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="no">null</span>
<span class="o">=&gt;</span> <span class="no">null</span>
mapNullable <span class="p">(</span>x<span class="p">:</span> x<span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="mi">22</span>
<span class="o">=&gt;</span> <span class="mi">23</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L347">lib/trivial.nix:347</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.version"><code>lib.trivial.version</code></h2>
<p>Returns the current full nixpkgs version number.</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L363">lib/trivial.nix:363</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.release"><code>lib.trivial.release</code></h2>
<p>Returns the current nixpkgs release number as string.</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L368">lib/trivial.nix:368</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.oldestSupportedRelease"><code>lib.trivial.oldestSupportedRelease</code></h2>
<p>The latest release that is supported, at the time of release branch-off,
if applicable.</p>
<p>Ideally, out-of-tree modules should be able to evaluate cleanly with all
supported Nixpkgs versions (master, release and old release until EOL).
So if possible, deprecation warnings should take effect only when all
out-of-tree expressions/libs/modules can upgrade to the new way without
losing support for supported Nixpkgs versions.</p>
<p>This release number allows deprecation warnings to be implemented such that
they take effect as soon as the oldest release reaches end of life.</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L383">lib/trivial.nix:383</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.isInOldestRelease"><code>lib.trivial.isInOldestRelease</code></h2>
<p>Whether a feature is supported in all supported releases (at the time of
release branch-off, if applicable). See <code>oldestSupportedRelease</code>.</p>
<h3 id="inputs_11">Inputs</h3>
<p><code>release</code></p>
<p>: Release number of feature introduction as an integer, e.g. 2111 for 21.11.
Set it to the upcoming release, matching the nixpkgs/.version file.</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L399">lib/trivial.nix:399</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.codeName"><code>lib.trivial.codeName</code></h2>
<p>Returns the current nixpkgs release code name.</p>
<p>On each release the first letter is bumped and a new animal is chosen
starting with that new letter.</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L409">lib/trivial.nix:409</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.versionSuffix"><code>lib.trivial.versionSuffix</code></h2>
<p>Returns the current nixpkgs version suffix as string.</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L414">lib/trivial.nix:414</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.revisionWithDefault"><code>lib.trivial.revisionWithDefault</code></h2>
<p>Attempts to return the the current revision of nixpkgs and
returns the supplied default value otherwise.</p>
<h3 id="inputs_12">Inputs</h3>
<p><code>default</code></p>
<p>: Default value to return if revision can not be determined</p>
<h3 id="type_6">Type</h3>
<div class="highlight"><pre><span></span><code>revisionWithDefault :: string -&gt; string
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L437">lib/trivial.nix:437</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.inNixShell"><code>lib.trivial.inNixShell</code></h2>
<p>Determine whether the function is being called from inside a Nix
shell.</p>
<h3 id="type_7">Type</h3>
<div class="highlight"><pre><span></span><code>inNixShell :: bool
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L459">lib/trivial.nix:459</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.inPureEvalMode"><code>lib.trivial.inPureEvalMode</code></h2>
<p>Determine whether the function is being called from inside pure-eval mode
by seeing whether <code>builtins</code> contains <code>currentSystem</code>. If not, we must be in
pure-eval mode.</p>
<h3 id="type_8">Type</h3>
<div class="highlight"><pre><span></span><code>inPureEvalMode :: bool
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L472">lib/trivial.nix:472</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.min"><code>lib.trivial.min</code></h2>
<p>Return minimum of two numbers.</p>
<h3 id="inputs_13">Inputs</h3>
<p><code>x</code></p>
<p>: 1. Function argument</p>
<p><code>y</code></p>
<p>: 2. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L490">lib/trivial.nix:490</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.max"><code>lib.trivial.max</code></h2>
<p>Return maximum of two numbers.</p>
<h3 id="inputs_14">Inputs</h3>
<p><code>x</code></p>
<p>: 1. Function argument</p>
<p><code>y</code></p>
<p>: 2. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L506">lib/trivial.nix:506</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.mod"><code>lib.trivial.mod</code></h2>
<p>Integer modulus</p>
<h3 id="inputs_15">Inputs</h3>
<p><code>base</code></p>
<p>: 1. Function argument</p>
<p><code>int</code></p>
<p>: 2. Function argument</p>
<h3 id="examples_6">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.mod</code> usage example</p>
<div class="highlight"><pre><span></span><code>mod <span class="mi">11</span> <span class="mi">10</span>
<span class="o">=&gt;</span> <span class="mi">1</span>
mod <span class="mi">1</span> <span class="mi">10</span>
<span class="o">=&gt;</span> <span class="mi">1</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L536">lib/trivial.nix:536</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.compare"><code>lib.trivial.compare</code></h2>
<p>C-style comparisons</p>
<p>a &lt; b, compare a b =&gt; -1
a == b, compare a b =&gt; 0
a &gt; b, compare a b =&gt; 1</p>
<h3 id="inputs_16">Inputs</h3>
<p><code>a</code></p>
<p>: 1. Function argument</p>
<p><code>b</code></p>
<p>: 2. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L559">lib/trivial.nix:559</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.splitByAndCompare"><code>lib.trivial.splitByAndCompare</code></h2>
<p>Split type into two subtypes by predicate <code>p</code>, take all elements
of the first subtype to be less than all the elements of the
second subtype, compare elements of a single subtype with <code>yes</code>
and <code>no</code> respectively.</p>
<h3 id="inputs_17">Inputs</h3>
<p><code>p</code></p>
<p>: Predicate</p>
<p><code>yes</code></p>
<p>: Comparison function if predicate holds for both values</p>
<p><code>no</code></p>
<p>: Comparison function if predicate holds for neither value</p>
<p><code>a</code></p>
<p>: First value to compare</p>
<p><code>b</code></p>
<p>: Second value to compare</p>
<h3 id="type_9">Type</h3>
<div class="highlight"><pre><span></span><code>(a -&gt; bool) -&gt; (a -&gt; a -&gt; int) -&gt; (a -&gt; a -&gt; int) -&gt; (a -&gt; a -&gt; int)
</code></pre></div>
<h3 id="examples_7">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.splitByAndCompare</code> usage example</p>
<div class="highlight"><pre><span></span><code><span class="k">let</span> <span class="ss">cmp</span> <span class="o">=</span> splitByAndCompare <span class="p">(</span>hasPrefix <span class="s2">&quot;foo&quot;</span><span class="p">)</span> compare compare<span class="p">;</span> <span class="k">in</span>
cmp <span class="s2">&quot;a&quot;</span> <span class="s2">&quot;z&quot;</span> <span class="o">=&gt;</span> <span class="mi">-1</span>
cmp <span class="s2">&quot;fooa&quot;</span> <span class="s2">&quot;fooz&quot;</span> <span class="o">=&gt;</span> <span class="mi">-1</span>
cmp <span class="s2">&quot;f&quot;</span> <span class="s2">&quot;a&quot;</span> <span class="o">=&gt;</span> <span class="mi">1</span>
cmp <span class="s2">&quot;fooa&quot;</span> <span class="s2">&quot;a&quot;</span> <span class="o">=&gt;</span> <span class="mi">-1</span>
<span class="c1"># while</span>
compare <span class="s2">&quot;fooa&quot;</span> <span class="s2">&quot;a&quot;</span> <span class="o">=&gt;</span> <span class="mi">1</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L619">lib/trivial.nix:619</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.importJSON"><code>lib.trivial.importJSON</code></h2>
<p>Reads a JSON file.</p>
<h3 id="examples_8">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.importJSON</code> usage example</p>
<p>example.json
<div class="highlight"><pre><span></span><code><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;title&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;Example JSON&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;hello&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;world&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;foo&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;bar&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">&quot;foobar&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div></p>
<div class="highlight"><pre><span></span><code>importJSON <span class="l">./example.json</span>
<span class="o">=&gt;</span> <span class="p">{</span>
<span class="ss">title</span> <span class="o">=</span> <span class="s2">&quot;Example JSON&quot;</span><span class="p">;</span>
<span class="ss">hello</span> <span class="o">=</span> <span class="p">{</span>
<span class="ss">world</span> <span class="o">=</span> <span class="s2">&quot;foo&quot;</span><span class="p">;</span>
<span class="ss">bar</span> <span class="o">=</span> <span class="p">{</span>
<span class="ss">foobar</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
</div>
<h3 id="inputs_18">Inputs</h3>
<p><code>path</code></p>
<p>: 1. Function argument</p>
<h3 id="type_10">Type</h3>
<div class="highlight"><pre><span></span><code>importJSON :: path -&gt; any
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L673">lib/trivial.nix:673</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.importTOML"><code>lib.trivial.importTOML</code></h2>
<p>Reads a TOML file.</p>
<h3 id="examples_9">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.importTOML</code> usage example</p>
<p>example.toml
<div class="highlight"><pre><span></span><code><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;TOML Example&quot;</span>
<span class="k">[hello]</span>
<span class="n">world</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;foo&quot;</span>
<span class="k">[hello.bar]</span>
<span class="n">foobar</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span>
</code></pre></div></p>
<div class="highlight"><pre><span></span><code>importTOML <span class="l">./example.toml</span>
<span class="o">=&gt;</span> <span class="p">{</span>
<span class="ss">title</span> <span class="o">=</span> <span class="s2">&quot;TOML Example&quot;</span><span class="p">;</span>
<span class="ss">hello</span> <span class="o">=</span> <span class="p">{</span>
<span class="ss">world</span> <span class="o">=</span> <span class="s2">&quot;foo&quot;</span><span class="p">;</span>
<span class="ss">bar</span> <span class="o">=</span> <span class="p">{</span>
<span class="ss">foobar</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
<span class="p">};</span>
<span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
</div>
<h3 id="inputs_19">Inputs</h3>
<p><code>path</code></p>
<p>: 1. Function argument</p>
<h3 id="type_11">Type</h3>
<div class="highlight"><pre><span></span><code>importTOML :: path -&gt; any
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L721">lib/trivial.nix:721</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.warn"><code>lib.trivial.warn</code></h2>
<p><code>warn</code> <em><code>message</code></em> <em><code>value</code></em></p>
<p>Print a warning before returning the second argument.</p>
<p>See <a href="https://nix.dev/manual/nix/latest/language/builtins.html#builtins-warn"><code>builtins.warn</code></a> (Nix &gt;= 2.23).
On older versions, the Nix 2.23 behavior is emulated with <a href="https://nix.dev/manual/nix/latest/language/builtins.html#builtins-warn"><code>builtins.trace</code></a>, including the <a href="https://nix.dev/manual/nix/latest/command-ref/conf-file#conf-abort-on-warn"><code>NIX_ABORT_ON_WARN</code></a> behavior, but not the <code>nix.conf</code> setting or command line option.</p>
<h3 id="inputs_20">Inputs</h3>
<p><em><code>message</code></em> (String)</p>
<p>: Warning message to print before evaluating <em><code>value</code></em>.</p>
<p><em><code>value</code></em> (any value)</p>
<p>: Value to return as-is.</p>
<h3 id="type_12">Type</h3>
<div class="highlight"><pre><span></span><code>String -&gt; a -&gt; a
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L749">lib/trivial.nix:749</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.warnIf"><code>lib.trivial.warnIf</code></h2>
<p><code>warnIf</code> <em><code>condition</code></em> <em><code>message</code></em> <em><code>value</code></em></p>
<p>Like <code>warn</code>, but only warn when the first argument is <code>true</code>.</p>
<h3 id="inputs_21">Inputs</h3>
<p><em><code>condition</code></em> (Boolean)</p>
<p>: <code>true</code> to trigger the warning before continuing with <em><code>value</code></em>.</p>
<p><em><code>message</code></em> (String)</p>
<p>: Warning message to print before evaluating</p>
<p><em><code>value</code></em> (any value)</p>
<p>: Value to return as-is.</p>
<h3 id="type_13">Type</h3>
<div class="highlight"><pre><span></span><code>Bool -&gt; String -&gt; a -&gt; a
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L789">lib/trivial.nix:789</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.warnIfNot"><code>lib.trivial.warnIfNot</code></h2>
<p><code>warnIfNot</code> <em><code>condition</code></em> <em><code>message</code></em> <em><code>value</code></em></p>
<p>Like <code>warnIf</code>, but negated: warn if the first argument is <code>false</code>.</p>
<h3 id="inputs_22">Inputs</h3>
<p><em><code>condition</code></em></p>
<p>: <code>false</code> to trigger the warning before continuing with <code>val</code>.</p>
<p><em><code>message</code></em></p>
<p>: Warning message to print before evaluating <em><code>value</code></em>.</p>
<p><em><code>value</code></em></p>
<p>: Value to return as-is.</p>
<h3 id="type_14">Type</h3>
<div class="highlight"><pre><span></span><code>Boolean -&gt; String -&gt; a -&gt; a
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L817">lib/trivial.nix:817</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.throwIfNot"><code>lib.trivial.throwIfNot</code></h2>
<p>Like the <code>assert b; e</code> expression, but with a custom error message and
without the semicolon.</p>
<p>If true, return the identity function, <code>r: r</code>.</p>
<p>If false, throw the error message.</p>
<p>Calls can be juxtaposed using function application, as <code>(r: r) a = a</code>, so
<code>(r: r) (r: r) a = a</code>, and so forth.</p>
<h3 id="inputs_23">Inputs</h3>
<p><code>cond</code></p>
<p>: 1. Function argument</p>
<p><code>msg</code></p>
<p>: 2. Function argument</p>
<h3 id="type_15">Type</h3>
<div class="highlight"><pre><span></span><code>bool -&gt; string -&gt; a -&gt; a
</code></pre></div>
<h3 id="examples_10">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.throwIfNot</code> usage example</p>
<div class="highlight"><pre><span></span><code>throwIfNot <span class="p">(</span>lib<span class="o">.</span>isList overlays<span class="p">)</span> <span class="s2">&quot;The overlays argument to nixpkgs must be a list.&quot;</span>
lib<span class="o">.</span>foldr <span class="p">(</span>x<span class="p">:</span> throwIfNot <span class="p">(</span>lib<span class="o">.</span>isFunction x<span class="p">)</span> <span class="s2">&quot;All overlays passed to nixpkgs must be functions.&quot;</span><span class="p">)</span> <span class="p">(</span>r<span class="p">:</span> r<span class="p">)</span> overlays
pkgs
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L859">lib/trivial.nix:859</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.throwIf"><code>lib.trivial.throwIf</code></h2>
<p>Like throwIfNot, but negated (throw if the first argument is <code>true</code>).</p>
<h3 id="inputs_24">Inputs</h3>
<p><code>cond</code></p>
<p>: 1. Function argument</p>
<p><code>msg</code></p>
<p>: 2. Function argument</p>
<h3 id="type_16">Type</h3>
<div class="highlight"><pre><span></span><code>bool -&gt; string -&gt; a -&gt; a
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L881">lib/trivial.nix:881</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.checkListOfEnum"><code>lib.trivial.checkListOfEnum</code></h2>
<p>Check if the elements in a list are valid values from a enum, returning the identity function, or throwing an error message otherwise.</p>
<h3 id="inputs_25">Inputs</h3>
<p><code>msg</code></p>
<p>: 1. Function argument</p>
<p><code>valid</code></p>
<p>: 2. Function argument</p>
<p><code>given</code></p>
<p>: 3. Function argument</p>
<h3 id="type_17">Type</h3>
<div class="highlight"><pre><span></span><code>String -&gt; List ComparableVal -&gt; List ComparableVal -&gt; a -&gt; a
</code></pre></div>
<h3 id="examples_11">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.checkListOfEnum</code> usage example</p>
<div class="highlight"><pre><span></span><code><span class="k">let</span> <span class="ss">colorVariants</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;bright&quot;</span> <span class="s2">&quot;dark&quot;</span> <span class="s2">&quot;black&quot;</span><span class="p">]</span>
<span class="k">in</span> checkListOfEnum <span class="s2">&quot;color variants&quot;</span> <span class="p">[</span> <span class="s2">&quot;standard&quot;</span> <span class="s2">&quot;light&quot;</span> <span class="s2">&quot;dark&quot;</span> <span class="p">]</span> colorVariants<span class="p">;</span>
<span class="o">=&gt;</span>
error<span class="p">:</span> color variants<span class="p">:</span> bright<span class="p">,</span> black unexpected<span class="p">;</span> valid ones<span class="p">:</span> standard<span class="p">,</span> light<span class="p">,</span> dark
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L920">lib/trivial.nix:920</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.setFunctionArgs"><code>lib.trivial.setFunctionArgs</code></h2>
<p>Add metadata about expected function arguments to a function.
The metadata should match the format given by
builtins.functionArgs, i.e. a set from expected argument to a bool
representing whether that argument has a default or not.
setFunctionArgs : (a → b) → Map String Bool → (a → b)</p>
<p>This function is necessary because you can't dynamically create a
function of the { a, b ? foo, ... }: format, but some facilities
like callPackage expect to be able to query expected arguments.</p>
<h3 id="inputs_26">Inputs</h3>
<p><code>f</code></p>
<p>: 1. Function argument</p>
<p><code>args</code></p>
<p>: 2. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L955">lib/trivial.nix:955</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.functionArgs"><code>lib.trivial.functionArgs</code></h2>
<p>Extract the expected function arguments from a function.
This works both with nix-native { a, b ? foo, ... }: style
functions and functions with args set with 'setFunctionArgs'. It
has the same return type and semantics as builtins.functionArgs.
setFunctionArgs : (a → b) → Map String Bool.</p>
<h3 id="inputs_27">Inputs</h3>
<p><code>f</code></p>
<p>: 1. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L975">lib/trivial.nix:975</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.isFunction"><code>lib.trivial.isFunction</code></h2>
<p>Check whether something is a function or something
annotated with function args.</p>
<h3 id="inputs_28">Inputs</h3>
<p><code>f</code></p>
<p>: 1. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L991">lib/trivial.nix:991</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.mirrorFunctionArgs"><code>lib.trivial.mirrorFunctionArgs</code></h2>
<p><code>mirrorFunctionArgs f g</code> creates a new function <code>g'</code> with the same behavior as <code>g</code> (<code>g' x == g x</code>)
but its function arguments mirroring <code>f</code> (<code>lib.functionArgs g' == lib.functionArgs f</code>).</p>
<h3 id="inputs_29">Inputs</h3>
<p><code>f</code></p>
<p>: Function to provide the argument metadata</p>
<p><code>g</code></p>
<p>: Function to set the argument metadata to</p>
<h3 id="type_18">Type</h3>
<div class="highlight"><pre><span></span><code>mirrorFunctionArgs :: (a -&gt; b) -&gt; (a -&gt; c) -&gt; (a -&gt; c)
</code></pre></div>
<h3 id="examples_12">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.mirrorFunctionArgs</code> usage example</p>
<div class="highlight"><pre><span></span><code><span class="ss">addab</span> <span class="o">=</span> <span class="p">{</span>a<span class="p">,</span> b<span class="p">}:</span> a <span class="o">+</span> b
addab <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span> <span class="p">}</span>
<span class="o">=&gt;</span> <span class="mi">6</span>
lib<span class="o">.</span>functionArgs <span class="ss">addab</span>
<span class="o">=&gt;</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="no">false</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="no">false</span><span class="p">;</span> <span class="p">}</span>
<span class="ss">addab1</span> <span class="o">=</span> attrs<span class="p">:</span> addab attrs <span class="o">+</span> <span class="mi">1</span>
addab1 <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span> <span class="p">}</span>
<span class="o">=&gt;</span> <span class="mi">7</span>
lib<span class="o">.</span>functionArgs <span class="ss">addab1</span>
<span class="o">=&gt;</span> <span class="p">{</span> <span class="p">}</span>
addab1&#39; <span class="o">=</span> lib<span class="o">.</span>mirrorFunctionArgs addab addab1
addab1&#39; <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span> <span class="p">}</span>
<span class="o">=&gt;</span> <span class="mi">7</span>
lib<span class="o">.</span>functionArgs addab1&#39;
<span class="o">=&gt;</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="no">false</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="no">false</span><span class="p">;</span> <span class="p">}</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L1039">lib/trivial.nix:1039</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.toFunction"><code>lib.trivial.toFunction</code></h2>
<p>Turns any non-callable values into constant functions.
Returns callable values as is.</p>
<h3 id="inputs_30">Inputs</h3>
<p><code>v</code></p>
<p>: Any value</p>
<h3 id="examples_13">Examples</h3>
<div class="admonition example">
<p class="admonition-title"><code>lib.trivial.toFunction</code> usage example</p>
<div class="highlight"><pre><span></span><code>nix-repl<span class="o">&gt;</span> lib<span class="o">.</span>toFunction <span class="mi">1</span> <span class="mi">2</span>
<span class="mi">1</span>
nix-repl<span class="o">&gt;</span> lib<span class="o">.</span>toFunction <span class="p">(</span>x<span class="p">:</span> x <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="mi">2</span>
<span class="mi">3</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L1073">lib/trivial.nix:1073</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.fromHexString"><code>lib.trivial.fromHexString</code></h2>
<p>Convert a hexadecimal string to it's integer representation.</p>
<h3 id="type_19">Type</h3>
<div class="highlight"><pre><span></span><code>fromHexString :: String -&gt; [ String ]
</code></pre></div>
<h3 id="examples_14">Examples</h3>
<div class="highlight"><pre><span></span><code>fromHexString <span class="s2">&quot;FF&quot;</span>
<span class="o">=&gt;</span> <span class="mi">255</span>
fromHexString <span class="p">(</span><span class="nb">builtins</span><span class="o">.</span>hashString <span class="s2">&quot;sha256&quot;</span> <span class="s2">&quot;test&quot;</span><span class="p">)</span>
<span class="o">=&gt;</span> <span class="mi">9223372036854775807</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L1098">lib/trivial.nix:1098</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.toHexString"><code>lib.trivial.toHexString</code></h2>
<p>Convert the given positive integer to a string of its hexadecimal
representation. For example:</p>
<p>toHexString 0 =&gt; "0"</p>
<p>toHexString 16 =&gt; "10"</p>
<p>toHexString 250 =&gt; "FA"</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L1115">lib/trivial.nix:1115</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.trivial.toBaseDigits"><code>lib.trivial.toBaseDigits</code></h2>
<p><code>toBaseDigits base i</code> converts the positive integer i to a list of its
digits in the given base. For example:</p>
<p>toBaseDigits 10 123 =&gt; [ 1 2 3 ]</p>
<p>toBaseDigits 2 6 =&gt; [ 1 1 0 ]</p>
<p>toBaseDigits 16 250 =&gt; [ 15 10 ]</p>
<h3 id="inputs_31">Inputs</h3>
<p><code>base</code></p>
<p>: 1. Function argument</p>
<p><code>i</code></p>
<p>: 2. Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/trivial.nix#L1151">lib/trivial.nix:1151</a> in <code>&lt;nixpkgs&gt;</code>.</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Licenced MIT
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://git.auxolotl.org/auxolotl/docs" target="_blank" rel="noopener" title="Aux Docs Repo" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
</a>
<a href="https://forum.aux.computer/" target="_blank" rel="noopener" title="Aux Forum" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563a7.395 7.395 0 0 0-6.337 3.57 7.247 7.247 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.424 7.424 0 0 0 8.136-1.39 7.256 7.256 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585h-.008z"/></svg>
</a>
<a href="https://wiki.auxolotl.org/" target="_blank" rel="noopener" title="Aux Wiki" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.801 13.557c.148.098.288.202.417.313 1.854 1.6 3.127 4.656 2.582 7.311-1.091-.255-5.747-1.055-7.638-3.383-.91-1.12-1.366-2.081-1.569-2.885a5.65 5.65 0 0 0 .034-.219c.089.198.197.35.313.466.24.24.521.335.766.372.304.046.594-.006.806-.068l.001.001c.05-.015.433-.116.86-.342.325-.173 2.008-.931 3.428-1.566Zm-7.384 1.435C9.156 16.597 6.6 18.939.614 18.417c.219-1.492 1.31-3.019 2.51-4.11.379-.345.906-.692 1.506-1.009.286.168.598.332.939.486 2.689 1.221 3.903 1.001 4.89.573a1.3 1.3 0 0 0 .054-.025 6.156 6.156 0 0 0-.096.66Zm4.152-.462c.38-.341.877-.916 1.383-1.559-.389-.15-.866-.371-1.319-.591-.598-.29-1.305-.283-2.073-.315a4.685 4.685 0 0 1-.804-.103c.014-.123.027-.246.038-.369.062.104.673.057.871.057.354 0 1.621.034 3.074-.574 1.452-.608 2.55-1.706 3.022-3.225.474-1.52.22-3.091-.168-3.952-.169.709-1.453 2.381-1.926 2.871-.473.489-2.381 2.296-2.972 2.921-.7.74-.688.793-1.332 1.302-.202.19-.499.402-.563.53.027-.338.039-.675.027-.997a7.653 7.653 0 0 0-.032-.523c.322-.059.567-.522.567-.861 0-.224-.106-.247-.271-.229.075-.894.382-3.923 1.254-4.281.218.109.831.068.649-.295-.182-.364-.825-.074-1.081.266-.28.374-.956 2.046-.92 4.324-.113.014-.174.033-.322.033-.171 0-.321-.04-.433-.05.034-2.275-.714-3.772-.84-4.169-.12-.375-.491-.596-.781-.596-.146 0-.272.056-.333.179-.182.363.459.417.677.308.706.321 1.156 3.519 1.254 4.277-.125-.006-.199.035-.199.233 0 .311.17.756.452.843a.442.442 0 0 0-.007.03s-.287.99-.413 2.189a4.665 4.665 0 0 1-.718-.225c-.714-.286-1.355-.583-2.019-.566-.664.018-1.366.023-1.804-.036-.438-.058-.649-.15-.649-.15s-.234.365.257 1.075c.42.607 1.055 1.047 1.644 1.18.589.134 1.972.18 2.785-.377.16-.109.317-.228.459-.34a8.717 8.717 0 0 0-.013.626c-.289.753-.571 1.993-.268 3.338 0-.001.701-.842.787-2.958.006-.144.009-.271.01-.383.052-.248.103-.518.148-.799.072.135.151.277.234.413.511.842 1.791 1.37 2.383 1.49.091.019.187.032.285.038Zm-1.12.745c-.188.055-.445.1-.713.059-.21-.031-.45-.11-.655-.316-.169-.168-.312-.419-.401-.789a9.837 9.837 0 0 0 .039-.82l.049-.243c.563.855 1.865 1.398 2.476 1.522.036.008.072.014.109.02l-.013.009c-.579.415-.76.503-.891.558Zm6.333-2.818c-.257.114-4.111 1.822-5.246 2.363.98-.775 3.017-3.59 3.699-4.774 1.062.661 1.468 1.109 1.623 1.441.101.217.09.38.096.515a.57.57 0 0 1-.172.455Zm-9.213 1.62a1.606 1.606 0 0 1-.19.096c-.954.414-2.126.61-4.728-.571-2.023-.918-3.024-2.157-3.371-2.666.476.161 1.471.473 2.157.524.282.021.703.068 1.167.125.021.209.109.486.345.829l.001.001c.451.651 1.134 1.119 1.765 1.262.622.141 2.083.182 2.942-.407a3.12 3.12 0 0 0 .132-.093l.001.179a6.052 6.052 0 0 0-.221.721Zm5.512-1.271a17.49 17.49 0 0 1-1.326-.589c.437.042 1.054.083 1.692.108-.121.162-.244.323-.366.481Zm.932-1.26c-.12.17-.245.343-.373.517-.241.018-.478.03-.709.038a29.05 29.05 0 0 1-.741-.048c.608-.065 1.228-.252 1.823-.507Zm.22-.315c-.809.382-1.679.648-2.507.648-.472 0-.833.018-1.139.039v.001c-.324-.031-.665-.039-1.019-.054a3.555 3.555 0 0 1-.152-.009c.102-.002.192-.006.249-.006.363 0 1.662.034 3.151-.589 1.508-.632 2.645-1.773 3.136-3.351.37-1.186.31-2.402.086-3.312.458-.336.86-.651 1.147-.91.501-.451.743-.733.848-.869.199.206.714.864.685 2.138-.036 1.611-.606 3.187-1.501 4.154a9.099 9.099 0 0 1-1.321 1.132 11.978 11.978 0 0 0-.644-.422l-.089-.055-.051.091c-.184.332-.5.825-.879 1.374ZM4.763 5.817c-.157 1.144.113 2.323.652 3.099.539.776 2.088 2.29 3.614 2.505.991.14 2.055.134 2.055.134s-.593-.576-1.114-1.66c-.521-1.085-.948-2.104-1.734-2.786-.785-.681-1.601-1.416-2.045-1.945-.444-.53-.59-.86-.59-.86s-.656.175-.838 1.513Zm14.301 4.549a9.162 9.162 0 0 0 1.3-1.12c.326-.352.611-.782.845-1.265 1.315.145 2.399.371 2.791.434 0 0-.679 1.971-3.945 3.022l-.016-.035c-.121-.26-.385-.594-.975-1.036Zm-11.634.859a8.537 8.537 0 0 1-.598-.224c-1.657-.693-2.91-1.944-3.449-3.678-.498-1.601-.292-3.251.091-4.269.225.544.758 1.34 1.262 2.01a3.58 3.58 0 0 0-.172.726c-.163 1.197.123 2.428.687 3.24.416.599 1.417 1.62 2.555 2.193-.128.002-.253.003-.376.002Zm-1.758-.077c-.958-.341-1.901-.787-2.697-1.368C-.07 7.559 0 6.827 0 6.827s1.558-.005 3.088.179c.03.126.065.251.104.377.557 1.791 1.851 3.086 3.562 3.803l.047.019a4.254 4.254 0 0 1-.267-.026h-.001c-.401-.053-.595-.135-.595-.135l-.157-.069-.092.144-.017.029Zm6.807-1.59c.086.017.136.058.136.145 0 .197-.242.5-.597.597l-.01-.161a.887.887 0 0 0 .283-.243c.078-.099.142-.217.188-.338Zm-1.591.006c.033.1.076.197.129.282.061.097.134.18.217.24l-.021.083c-.276-.093-.424-.293-.424-.466 0-.078.035-.119.099-.139Zm-.025-.664c-.275-.816-.795-2.022-1.505-2.179-.296.072-.938.096-.691-.145.246-.24 1.085-.048 1.283.217.145.194.744.806 1.011 1.737l.032.227a.324.324 0 0 0-.13.143Zm1.454-.266c.251-.99.889-1.639 1.039-1.841.197-.265 1.036-.457 1.283-.217.247.241-.395.217-.691.145-.69.152-1.2 1.296-1.481 2.109a.364.364 0 0 0-.067-.059.37.37 0 0 0-.092-.043l.009-.094Zm4.802-2.708a9.875 9.875 0 0 1-.596.705c-.304.315-1.203 1.176-1.963 1.916.647-.955 1.303-1.806 2.184-2.376.123-.08.249-.161.375-.245Z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.tooltips", "search.highlight", "navigation.tabs", "navigation.indexes", "navigation.prune"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
</body>
</html>