docs/Lix/language/values/index.html

2179 lines
55 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/Lix/language/values/">
<link rel="prev" href="../string-interpolation/">
<link rel="next" href="../../protocols/">
<link rel="icon" href="../../../assets/aux-logo.svg">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.29">
<title>Data Types - 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="Data Types - Aux Docs" >
<meta property="og:description" content="Aux Documentation" >
<meta property="og:image" content="https://docs.auxolotl.org/assets/images/social/Lix/language/values.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/Lix/language/values/" >
<meta name="twitter:card" content="summary_large_image" >
<meta name="twitter:title" content="Data Types - Aux Docs" >
<meta name="twitter:description" content="Aux Documentation" >
<meta name="twitter:image" content="https://docs.auxolotl.org/assets/images/social/Lix/language/values.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="#data-types" 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">
Data Types
</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 md-tabs__item--active">
<a href="../../" 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">
<a href="../../../Nixpkgs/" 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--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
<div class="md-nav__link md-nav__container">
<a href="../../" class="md-nav__link ">
<span class="md-ellipsis">
Lix
</span>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Lix
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../glossary/" class="md-nav__link">
<span class="md-ellipsis">
Glossary
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../quick-start/" class="md-nav__link">
<span class="md-ellipsis">
Quick Start
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../Advanced-Topics/" class="md-nav__link">
<span class="md-ellipsis">
Advanced Topics
</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="../../Command-Reference/" class="md-nav__link">
<span class="md-ellipsis">
Command Reference
</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="../../Package-Management/" class="md-nav__link">
<span class="md-ellipsis">
Package Management
</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="../../architecture/" class="md-nav__link">
<span class="md-ellipsis">
Architecture
</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="../../contributing/" class="md-nav__link">
<span class="md-ellipsis">
Contributing
</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="../../installation/" class="md-nav__link">
<span class="md-ellipsis">
Installation
</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_4_10" checked>
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
Language
</span>
</a>
<label class="md-nav__link " for="__nav_4_10" id="__nav_4_10_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_10_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4_10">
<span class="md-nav__icon md-icon"></span>
Language
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../advanced-attributes/" class="md-nav__link">
<span class="md-ellipsis">
Advanced Attributes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../builtin-constants/" class="md-nav__link">
<span class="md-ellipsis">
Built-in Constants
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../builtins/" class="md-nav__link">
<span class="md-ellipsis">
Built-in Functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../constructs/" class="md-nav__link">
<span class="md-ellipsis">
Language Constructs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../derivations/" class="md-nav__link">
<span class="md-ellipsis">
Derivations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../operators/" class="md-nav__link">
<span class="md-ellipsis">
Operators
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../string-interpolation/" class="md-nav__link">
<span class="md-ellipsis">
String interpolation
</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">
Data Types
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Data Types
</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="#primitives" class="md-nav__link">
<span class="md-ellipsis">
Primitives
</span>
</a>
<nav class="md-nav" aria-label="Primitives">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#type-string" class="md-nav__link">
<span class="md-ellipsis">
String
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type-number" class="md-nav__link">
<span class="md-ellipsis">
Number
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type-path" class="md-nav__link">
<span class="md-ellipsis">
Path
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type-boolean" class="md-nav__link">
<span class="md-ellipsis">
Boolean
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type-null" class="md-nav__link">
<span class="md-ellipsis">
Null
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#list" class="md-nav__link">
<span class="md-ellipsis">
List
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#attribute-set" class="md-nav__link">
<span class="md-ellipsis">
Attribute Set
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
<a href="../../protocols/" class="md-nav__link">
<span class="md-ellipsis">
Protocols
</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="../../release-notes/" class="md-nav__link">
<span class="md-ellipsis">
Release notes
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</li>
</ul>
</nav>
</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--pruned md-nav__item--nested">
<a href="../../../Nixpkgs/" class="md-nav__link">
<span class="md-ellipsis">
Nixpkgs
</span>
<span class="md-nav__icon md-icon"></span>
</a>
</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="#primitives" class="md-nav__link">
<span class="md-ellipsis">
Primitives
</span>
</a>
<nav class="md-nav" aria-label="Primitives">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#type-string" class="md-nav__link">
<span class="md-ellipsis">
String
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type-number" class="md-nav__link">
<span class="md-ellipsis">
Number
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type-path" class="md-nav__link">
<span class="md-ellipsis">
Path
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type-boolean" class="md-nav__link">
<span class="md-ellipsis">
Boolean
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#type-null" class="md-nav__link">
<span class="md-ellipsis">
Null
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#list" class="md-nav__link">
<span class="md-ellipsis">
List
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#attribute-set" class="md-nav__link">
<span class="md-ellipsis">
Attribute Set
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="data-types">Data Types</h1>
<h2 id="primitives">Primitives</h2>
<h3 id="type-string">String</h3>
<p><em>Strings</em> can be written in three ways.</p>
<p>The most common way is to enclose the string between double quotes,
e.g., <code>"foo bar"</code>. Strings can span multiple lines. The special
characters <code>"</code> and <code>and the character sequence `${` must be
escaped by prefixing them with a backslash (</code>). Newlines, carriage
returns and tabs can be written as <code>n</code>, <code>r</code> and <code>t</code>,
respectively.</p>
<p>You can include the results of other expressions into a string by enclosing them in <code>${ }</code>, a feature known as <a href="../string-interpolation/">string interpolation</a>.</p>
<p>The second way to write string literals is as an <em>indented string</em>,
which is enclosed between pairs of <em>double single-quotes</em>, like so:</p>
<div class="highlight"><pre><span></span><code><span class="s s-Multiline">&#39;&#39;</span>
<span class="s s-Multiline"> This is the first line.</span>
<span class="s s-Multiline"> This is the second line.</span>
<span class="s s-Multiline"> This is the third line.</span>
<span class="s s-Multiline">&#39;&#39;</span>
</code></pre></div>
<p>This kind of string literal intelligently strips indentation from
the start of each line. To be precise, it strips from each line a
number of spaces equal to the minimal indentation of the string as a
whole (disregarding the indentation of empty lines). For instance,
the first and second line are indented two spaces, while the third
line is indented four spaces. Thus, two spaces are stripped from
each line, so the resulting string is</p>
<div class="highlight"><pre><span></span><code><span class="s2">&quot;This is the first line.nThis is the second line.n This is the third line.n&quot;</span>
</code></pre></div>
<p>Note that the whitespace and newline following the opening <code>''</code> is
ignored if there is no non-whitespace text on the initial line.</p>
<p>Indented strings support <a href="../string-interpolation/">string interpolation</a>.</p>
<p>Since <code>${</code> and <code>''</code> have special meaning in indented strings, you
need a way to quote them. <code>$</code> can be escaped by prefixing it with
<code>''</code> (that is, two single quotes), i.e., <code>''$</code>. <code>''</code> can be escaped
by prefixing it with <code>'</code>, i.e., <code>'''</code>. <code>$</code> removes any special
meaning from the following <code>$</code>. Linefeed, carriage-return and tab
characters can be written as <code>''n</code>, <code>''r</code>, <code>''t</code>, and <code>''</code>
escapes any other character.</p>
<p>Indented strings are primarily useful in that they allow multi-line
string literals to follow the indentation of the enclosing Nix
expression, and that less escaping is typically necessary for
strings representing languages such as shell scripts and
configuration files because <code>''</code> is much less common than <code>"</code>.
Example:</p>
<div class="highlight"><pre><span></span><code>stdenv<span class="o">.</span>mkDerivation <span class="p">{</span>
<span class="o">...</span>
<span class="ss">postInstall</span> <span class="o">=</span>
<span class="s s-Multiline">&#39;&#39;</span>
<span class="s s-Multiline"> mkdir $out/bin $out/etc</span>
<span class="s s-Multiline"> cp foo $out/bin</span>
<span class="s s-Multiline"> echo &quot;Hello World&quot; &gt; $out/etc/foo.conf</span>
<span class="s s-Multiline"> </span><span class="si">${</span><span class="k">if</span> enableBar <span class="k">then</span> <span class="s2">&quot;cp bar $out/bin&quot;</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span><span class="si">}</span>
<span class="s s-Multiline"> &#39;&#39;</span><span class="p">;</span>
<span class="o">...</span>
<span class="p">}</span>
</code></pre></div>
<p>Finally, as a convenience, <em>URIs</em> as defined in appendix B of
<a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a> can be written <em>as
is</em>, without quotes. For instance, the string
<code>"http://example.org/foo.tar.bz2"</code> can also be written as
<code>http://example.org/foo.tar.bz2</code>.</p>
<h3 id="type-number">Number</h3>
<p>Numbers, which can be <em>integers</em> (like <code>123</code>) or <em>floating point</em>
(like <code>123.43</code> or <code>.27e13</code>).</p>
<p>See <a href="../operators/#arithmetic">arithmetic</a> and <a href="../operators/#comparison">comparison</a> operators for semantics.</p>
<h3 id="type-path">Path</h3>
<p><em>Paths</em>, e.g., <code>/bin/sh</code> or <code>./builder.sh</code>. A path must contain at
least one slash to be recognised as such. For instance, <code>builder.sh</code>
is not a path: it's parsed as an expression that selects the
attribute <code>sh</code> from the variable <code>builder</code>. If the file name is
relative, i.e., if it does not begin with a slash, it is made
absolute at parse time relative to the directory of the Nix
expression that contained it. For instance, if a Nix expression in
<code>/foo/bar/bla.nix</code> refers to <code>../xyzzy/fnord.nix</code>, the absolute path
is <code>/foo/xyzzy/fnord.nix</code>.</p>
<p>If the first component of a path is a <code>~</code>, it is interpreted as if
the rest of the path were relative to the user's home directory.
e.g. <code>~/foo</code> would be equivalent to <code>/home/edolstra/foo</code> for a user
whose home directory is <code>/home/edolstra</code>.</p>
<p>Paths can also be specified between angle brackets, e.g.
<code>&lt;nixpkgs&gt;</code>. This means that the directories listed in the
environment variable <code>NIX_PATH</code> will be searched for the given file
or directory name.</p>
<p>When an <a href="../string-interpolation/">interpolated string</a> evaluates to a path, the path is first copied into the Nix store and the resulting string is the <a href="../../glossary/#gloss-store-path">store path</a> of the newly created <a href="../../glossary/#gloss-store-object">store object</a>.</p>
<p>For instance, evaluating <code>"${./foo.txt}"</code> will cause <code>foo.txt</code> in the current directory to be copied into the Nix store and result in the string <code>"/nix/store/&lt;hash&gt;-foo.txt"</code>.</p>
<p>Note that the Nix language assumes that all input files will remain <em>unchanged</em> while evaluating a Nix expression.
For example, assume you used a file path in an interpolated string during a <code>nix repl</code> session.
Later in the same session, after having changed the file contents, evaluating the interpolated string with the file path again might not return a new store path, since Nix might not re-read the file contents.</p>
<p>Paths themselves, except those in angle brackets (<code>&lt; &gt;</code>), support <a href="../string-interpolation/">string interpolation</a>.</p>
<p>At least one slash (<code>/</code>) must appear <em>before</em> any interpolated expression for the result to be recognized as a path.</p>
<p><code>a.${foo}/b.${bar}</code> is a syntactically valid division operation.
<code>./a.${foo}/b.${bar}</code> is a path.</p>
<h3 id="type-boolean">Boolean</h3>
<p><em>Booleans</em> with values <code>true</code> and <code>false</code>.</p>
<h3 id="type-null">Null</h3>
<p>The null value, denoted as <code>null</code>.</p>
<h2 id="list">List</h2>
<p>Lists are formed by enclosing a whitespace-separated list of values
between square brackets. For example,</p>
<div class="highlight"><pre><span></span><code><span class="p">[</span> <span class="mi">123</span> <span class="l">./foo.nix</span> <span class="s2">&quot;abc&quot;</span> <span class="p">(</span>f <span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> y<span class="p">;</span> <span class="p">})</span> <span class="p">]</span>
</code></pre></div>
<p>defines a list of four elements, the last being the result of a call to
the function <code>f</code>. Note that function calls have to be enclosed in
parentheses. If they had been omitted, e.g.,</p>
<div class="highlight"><pre><span></span><code><span class="p">[</span> <span class="mi">123</span> <span class="l">./foo.nix</span> <span class="s2">&quot;abc&quot;</span> f <span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> y<span class="p">;</span> <span class="p">}</span> <span class="p">]</span>
</code></pre></div>
<p>the result would be a list of five elements, the fourth one being a
function and the fifth being a set.</p>
<p>Note that lists are only lazy in values, and they are strict in length.</p>
<h2 id="attribute-set">Attribute Set</h2>
<p>An attribute set is a collection of name-value-pairs (called <em>attributes</em>) enclosed in curly brackets (<code>{ }</code>).</p>
<p>An attribute name can be an identifier or a <a href="#string">string</a>.
An identifier must start with a letter (<code>a-z</code>, <code>A-Z</code>) or underscore (<code>_</code>), and can otherwise contain letters (<code>a-z</code>, <code>A-Z</code>), numbers (<code>0-9</code>), underscores (<code>_</code>), apostrophes (<code>'</code>), or dashes (<code>-</code>).</p>
<blockquote>
<p><em>name</em> = <em>identifier</em> | <em>string</em>
<em>identifier</em> ~ <code>[a-zA-Z_][a-zA-Z0-9_'-]*</code></p>
</blockquote>
<p>Names and values are separated by an equal sign (<code>=</code>).
Each value is an arbitrary expression terminated by a semicolon (<code>;</code>).</p>
<blockquote>
<p><em>attrset</em> = <code>{</code> [ <em>name</em> <code>=</code> <em>expr</em> <code>;</code> <code>]</code>... <code>}</code></p>
</blockquote>
<p>Attributes can appear in any order.
An attribute name may only occur once.</p>
<p>Example:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span>
<span class="ss">x</span> <span class="o">=</span> <span class="mi">123</span><span class="p">;</span>
<span class="ss">text</span> <span class="o">=</span> <span class="s2">&quot;Hello&quot;</span><span class="p">;</span>
<span class="ss">y</span> <span class="o">=</span> f <span class="p">{</span> <span class="ss">bla</span> <span class="o">=</span> <span class="mi">456</span><span class="p">;</span> <span class="p">};</span>
<span class="p">}</span>
</code></pre></div>
<p>This defines a set with attributes named <code>x</code>, <code>text</code>, <code>y</code>.</p>
<p>Attributes can be accessed with the <a href="../operators/#attribute-selection"><code>.</code> operator</a>.</p>
<p>Example:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="s2">&quot;Foo&quot;</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="s2">&quot;Bar&quot;</span><span class="p">;</span> <span class="p">}</span><span class="o">.</span>a
</code></pre></div>
<p>This evaluates to <code>"Foo"</code>.</p>
<p>It is possible to provide a default value in an attribute selection using the <code>or</code> keyword.</p>
<p>Example:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="s2">&quot;Foo&quot;</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="s2">&quot;Bar&quot;</span><span class="p">;</span> <span class="p">}</span><span class="o">.</span>c <span class="ow">or</span> <span class="s2">&quot;Xyzzy&quot;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="s2">&quot;Foo&quot;</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="s2">&quot;Bar&quot;</span><span class="p">;</span> <span class="p">}</span><span class="o">.</span>c<span class="o">.</span>d<span class="o">.</span>e<span class="o">.</span>f<span class="o">.</span>g <span class="ow">or</span> <span class="s2">&quot;Xyzzy&quot;</span>
</code></pre></div>
<p>will both evaluate to <code>"Xyzzy"</code> because there is no <code>c</code> attribute in the set.</p>
<p>You can use arbitrary double-quoted strings as attribute names:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="s2">&quot;$!@#?&quot;</span> <span class="o">=</span> <span class="mi">123</span><span class="p">;</span> <span class="p">}</span><span class="o">.</span><span class="s2">&quot;$!@#?&quot;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="k">let</span> <span class="ss">bar</span> <span class="o">=</span> <span class="s2">&quot;bar&quot;</span><span class="p">;</span> <span class="k">in</span>
<span class="p">{</span> <span class="s2">&quot;foo </span><span class="si">${</span>bar<span class="si">}</span><span class="s2">&quot;</span> <span class="o">=</span> <span class="mi">123</span><span class="p">;</span> <span class="p">}</span><span class="o">.</span><span class="s2">&quot;foo </span><span class="si">${</span>bar<span class="si">}</span><span class="s2">&quot;</span>
</code></pre></div>
<p>Both will evaluate to <code>123</code>.</p>
<p>Attribute names support <a href="../string-interpolation/">string interpolation</a>:</p>
<div class="highlight"><pre><span></span><code><span class="k">let</span> <span class="ss">bar</span> <span class="o">=</span> <span class="s2">&quot;foo&quot;</span><span class="p">;</span> <span class="k">in</span>
<span class="p">{</span> <span class="ss">foo</span> <span class="o">=</span> <span class="mi">123</span><span class="p">;</span> <span class="p">}</span><span class="o">.</span><span class="si">${</span>bar<span class="si">}</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="k">let</span> <span class="ss">bar</span> <span class="o">=</span> <span class="s2">&quot;foo&quot;</span><span class="p">;</span> <span class="k">in</span>
<span class="p">{</span> <span class="si">${</span>bar<span class="si">}</span> <span class="o">=</span> <span class="mi">123</span><span class="p">;</span> <span class="p">}</span><span class="o">.</span>foo
</code></pre></div>
<p>Both will evaluate to <code>123</code>.</p>
<p>In the special case where an attribute name inside of a set declaration
evaluates to <code>null</code> (which is normally an error, as <code>null</code> cannot be coerced to
a string), that attribute is simply not added to the set:</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="si">${</span><span class="k">if</span> foo <span class="k">then</span> <span class="s2">&quot;bar&quot;</span> <span class="k">else</span> <span class="no">null</span><span class="si">}</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span> <span class="p">}</span>
</code></pre></div>
<p>This will evaluate to <code>{}</code> if <code>foo</code> evaluates to <code>false</code>.</p>
<p>A set that has a <code>__functor</code> attribute whose value is callable (i.e. is
itself a function or a set with a <code>__functor</code> attribute whose value is
callable) can be applied as if it were a function, with the set itself
passed in first , e.g.,</p>
<div class="highlight"><pre><span></span><code><span class="k">let</span> <span class="ss">add</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">__functor</span> <span class="o">=</span> self<span class="p">:</span> x<span class="p">:</span> x <span class="o">+</span> self<span class="o">.</span>x<span class="p">;</span> <span class="p">};</span>
<span class="ss">inc</span> <span class="o">=</span> add <span class="o">//</span> <span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">};</span>
<span class="k">in</span> inc <span class="mi">1</span>
</code></pre></div>
<p>evaluates to <code>2</code>. This can be used to attach metadata to a function
without the caller needing to treat it specially, or to implement a form
of object-oriented programming, for example.</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>