Sophie

Sophie

distrib > Fedora > 17 > i386 > media > updates > by-pkgid > 675c8c8167236dfcf8d66da674f931e8 > files > 1418

erlang-doc-R15B-03.3.fc17.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:fn="http://www.w3.org/2005/02/xpath-functions">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css">
<title>Erlang -- ms_transform</title>
</head>
<body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container">
<script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript">
            <!--
              function getWinHeight() {
                var myHeight = 0;
                if( typeof( window.innerHeight ) == 'number' ) {
                  //Non-IE
                  myHeight = window.innerHeight;
                } else if( document.documentElement && ( document.documentElement.clientWidth ||
                                                         document.documentElement.clientHeight ) ) {
                  //IE 6+ in 'standards compliant mode'
                  myHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                  //IE 4 compatible
                  myHeight = document.body.clientHeight;
                }
                return myHeight;
              }

              function setscrollpos() {
                var objf=document.getElementById('loadscrollpos');
                 document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2;
              }

              function addEvent(obj, evType, fn){
                if (obj.addEventListener){
                obj.addEventListener(evType, fn, true);
                return true;
              } else if (obj.attachEvent){
                var r = obj.attachEvent("on"+evType, fn);
                return r;
              } else {
                return false;
              }
             }

             addEvent(window, 'load', setscrollpos);

             //--></script><div id="leftnav"><div class="innertube">
<img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/stdlib-1.18.3.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>STDLIB</strong><br><strong>Reference Manual</strong><br><small>Version 1.18.3</small></p>
<br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p>
<ul class="flipMenu">
<li title="STDLIB (App)"><a href="STDLIB_app.html">STDLIB (App)
                </a></li>
<li id="no" title="array " expanded="false">array<ul>
<li><a href="array.html">
                  Top of manual page
                </a></li>
<li title="default-1"><a href="array.html#default-1">default/1</a></li>
<li title="fix-1"><a href="array.html#fix-1">fix/1</a></li>
<li title="foldl-3"><a href="array.html#foldl-3">foldl/3</a></li>
<li title="foldr-3"><a href="array.html#foldr-3">foldr/3</a></li>
<li title="from_list-1"><a href="array.html#from_list-1">from_list/1</a></li>
<li title="from_list-2"><a href="array.html#from_list-2">from_list/2</a></li>
<li title="from_orddict-1"><a href="array.html#from_orddict-1">from_orddict/1</a></li>
<li title="from_orddict-2"><a href="array.html#from_orddict-2">from_orddict/2</a></li>
<li title="get-2"><a href="array.html#get-2">get/2</a></li>
<li title="is_array-1"><a href="array.html#is_array-1">is_array/1</a></li>
<li title="is_fix-1"><a href="array.html#is_fix-1">is_fix/1</a></li>
<li title="map-2"><a href="array.html#map-2">map/2</a></li>
<li title="new-0"><a href="array.html#new-0">new/0</a></li>
<li title="new-1"><a href="array.html#new-1">new/1</a></li>
<li title="new-2"><a href="array.html#new-2">new/2</a></li>
<li title="relax-1"><a href="array.html#relax-1">relax/1</a></li>
<li title="reset-2"><a href="array.html#reset-2">reset/2</a></li>
<li title="resize-1"><a href="array.html#resize-1">resize/1</a></li>
<li title="resize-2"><a href="array.html#resize-2">resize/2</a></li>
<li title="set-3"><a href="array.html#set-3">set/3</a></li>
<li title="size-1"><a href="array.html#size-1">size/1</a></li>
<li title="sparse_foldl-3"><a href="array.html#sparse_foldl-3">sparse_foldl/3</a></li>
<li title="sparse_foldr-3"><a href="array.html#sparse_foldr-3">sparse_foldr/3</a></li>
<li title="sparse_map-2"><a href="array.html#sparse_map-2">sparse_map/2</a></li>
<li title="sparse_size-1"><a href="array.html#sparse_size-1">sparse_size/1</a></li>
<li title="sparse_to_list-1"><a href="array.html#sparse_to_list-1">sparse_to_list/1</a></li>
<li title="sparse_to_orddict-1"><a href="array.html#sparse_to_orddict-1">sparse_to_orddict/1</a></li>
<li title="to_list-1"><a href="array.html#to_list-1">to_list/1</a></li>
<li title="to_orddict-1"><a href="array.html#to_orddict-1">to_orddict/1</a></li>
</ul>
</li>
<li id="no" title="base64 " expanded="false">base64<ul>
<li><a href="base64.html">
                  Top of manual page
                </a></li>
<li title="encode-1"><a href="base64.html#encode-1">encode/1</a></li>
<li title="encode_to_string-1"><a href="base64.html#encode_to_string-1">encode_to_string/1</a></li>
<li title="decode-1"><a href="base64.html#decode-1">decode/1</a></li>
<li title="decode_to_string-1"><a href="base64.html#decode_to_string-1">decode_to_string/1</a></li>
<li title="mime_decode-1"><a href="base64.html#mime_decode-1">mime_decode/1</a></li>
<li title="mime_decode_to_string-1"><a href="base64.html#mime_decode_to_string-1">mime_decode_to_string/1</a></li>
</ul>
</li>
<li id="no" title="beam_lib " expanded="false">beam_lib<ul>
<li><a href="beam_lib.html">
                  Top of manual page
                </a></li>
<li title="chunks-2"><a href="beam_lib.html#chunks-2">chunks/2</a></li>
<li title="chunks-3"><a href="beam_lib.html#chunks-3">chunks/3</a></li>
<li title="version-1"><a href="beam_lib.html#version-1">version/1</a></li>
<li title="md5-1"><a href="beam_lib.html#md5-1">md5/1</a></li>
<li title="info-1"><a href="beam_lib.html#info-1">info/1</a></li>
<li title="cmp-2"><a href="beam_lib.html#cmp-2">cmp/2</a></li>
<li title="cmp_dirs-2"><a href="beam_lib.html#cmp_dirs-2">cmp_dirs/2</a></li>
<li title="diff_dirs-2"><a href="beam_lib.html#diff_dirs-2">diff_dirs/2</a></li>
<li title="strip-1"><a href="beam_lib.html#strip-1">strip/1</a></li>
<li title="strip_files-1"><a href="beam_lib.html#strip_files-1">strip_files/1</a></li>
<li title="strip_release-1"><a href="beam_lib.html#strip_release-1">strip_release/1</a></li>
<li title="format_error-1"><a href="beam_lib.html#format_error-1">format_error/1</a></li>
<li title="crypto_key_fun-1"><a href="beam_lib.html#crypto_key_fun-1">crypto_key_fun/1</a></li>
<li title="clear_crypto_key_fun-0"><a href="beam_lib.html#clear_crypto_key_fun-0">clear_crypto_key_fun/0</a></li>
</ul>
</li>
<li id="no" title="binary " expanded="false">binary<ul>
<li><a href="binary.html">
                  Top of manual page
                </a></li>
<li title="at-2"><a href="binary.html#at-2">at/2</a></li>
<li title="bin_to_list-1"><a href="binary.html#bin_to_list-1">bin_to_list/1</a></li>
<li title="bin_to_list-2"><a href="binary.html#bin_to_list-2">bin_to_list/2</a></li>
<li title="bin_to_list-3"><a href="binary.html#bin_to_list-3">bin_to_list/3</a></li>
<li title="compile_pattern-1"><a href="binary.html#compile_pattern-1">compile_pattern/1</a></li>
<li title="copy-1"><a href="binary.html#copy-1">copy/1</a></li>
<li title="copy-2"><a href="binary.html#copy-2">copy/2</a></li>
<li title="decode_unsigned-1"><a href="binary.html#decode_unsigned-1">decode_unsigned/1</a></li>
<li title="decode_unsigned-2"><a href="binary.html#decode_unsigned-2">decode_unsigned/2</a></li>
<li title="encode_unsigned-1"><a href="binary.html#encode_unsigned-1">encode_unsigned/1</a></li>
<li title="encode_unsigned-2"><a href="binary.html#encode_unsigned-2">encode_unsigned/2</a></li>
<li title="first-1"><a href="binary.html#first-1">first/1</a></li>
<li title="last-1"><a href="binary.html#last-1">last/1</a></li>
<li title="list_to_bin-1"><a href="binary.html#list_to_bin-1">list_to_bin/1</a></li>
<li title="longest_common_prefix-1"><a href="binary.html#longest_common_prefix-1">longest_common_prefix/1</a></li>
<li title="longest_common_suffix-1"><a href="binary.html#longest_common_suffix-1">longest_common_suffix/1</a></li>
<li title="match-2"><a href="binary.html#match-2">match/2</a></li>
<li title="match-3"><a href="binary.html#match-3">match/3</a></li>
<li title="matches-2"><a href="binary.html#matches-2">matches/2</a></li>
<li title="matches-3"><a href="binary.html#matches-3">matches/3</a></li>
<li title="part-2"><a href="binary.html#part-2">part/2</a></li>
<li title="part-3"><a href="binary.html#part-3">part/3</a></li>
<li title="referenced_byte_size-1"><a href="binary.html#referenced_byte_size-1">referenced_byte_size/1</a></li>
<li title="replace-3"><a href="binary.html#replace-3">replace/3</a></li>
<li title="replace-4"><a href="binary.html#replace-4">replace/4</a></li>
<li title="split-2"><a href="binary.html#split-2">split/2</a></li>
<li title="split-3"><a href="binary.html#split-3">split/3</a></li>
</ul>
</li>
<li id="no" title="c " expanded="false">c<ul>
<li><a href="c.html">
                  Top of manual page
                </a></li>
<li title="bt-1"><a href="c.html#bt-1">bt/1</a></li>
<li title="c-1"><a href="c.html#c-1">c/1</a></li>
<li title="c-2"><a href="c.html#c-2">c/2</a></li>
<li title="cd-1"><a href="c.html#cd-1">cd/1</a></li>
<li title="flush-0"><a href="c.html#flush-0">flush/0</a></li>
<li title="help-0"><a href="c.html#help-0">help/0</a></li>
<li title="i-0"><a href="c.html#i-0">i/0</a></li>
<li title="ni-0"><a href="c.html#ni-0">ni/0</a></li>
<li title="i-3"><a href="c.html#i-3">i/3</a></li>
<li title="l-1"><a href="c.html#l-1">l/1</a></li>
<li title="lc-1"><a href="c.html#lc-1">lc/1</a></li>
<li title="ls-0"><a href="c.html#ls-0">ls/0</a></li>
<li title="ls-1"><a href="c.html#ls-1">ls/1</a></li>
<li title="m-0"><a href="c.html#m-0">m/0</a></li>
<li title="m-1"><a href="c.html#m-1">m/1</a></li>
<li title="memory-0"><a href="c.html#memory-0">memory/0</a></li>
<li title="memory-1"><a href="c.html#memory-1">memory/1</a></li>
<li title="nc-1"><a href="c.html#nc-1">nc/1</a></li>
<li title="nc-2"><a href="c.html#nc-2">nc/2</a></li>
<li title="nl-1"><a href="c.html#nl-1">nl/1</a></li>
<li title="pid-3"><a href="c.html#pid-3">pid/3</a></li>
<li title="pwd-0"><a href="c.html#pwd-0">pwd/0</a></li>
<li title="q-0"><a href="c.html#q-0">q/0</a></li>
<li title="regs-0"><a href="c.html#regs-0">regs/0</a></li>
<li title="nregs-0"><a href="c.html#nregs-0">nregs/0</a></li>
<li title="xm-1"><a href="c.html#xm-1">xm/1</a></li>
<li title="y-1"><a href="c.html#y-1">y/1</a></li>
<li title="y-2"><a href="c.html#y-2">y/2</a></li>
</ul>
</li>
<li id="no" title="calendar " expanded="false">calendar<ul>
<li><a href="calendar.html">
                  Top of manual page
                </a></li>
<li title="date_to_gregorian_days-1"><a href="calendar.html#date_to_gregorian_days-1">date_to_gregorian_days/1</a></li>
<li title="date_to_gregorian_days-3"><a href="calendar.html#date_to_gregorian_days-3">date_to_gregorian_days/3</a></li>
<li title="datetime_to_gregorian_seconds-1"><a href="calendar.html#datetime_to_gregorian_seconds-1">datetime_to_gregorian_seconds/1</a></li>
<li title="day_of_the_week-1"><a href="calendar.html#day_of_the_week-1">day_of_the_week/1</a></li>
<li title="day_of_the_week-3"><a href="calendar.html#day_of_the_week-3">day_of_the_week/3</a></li>
<li title="gregorian_days_to_date-1"><a href="calendar.html#gregorian_days_to_date-1">gregorian_days_to_date/1</a></li>
<li title="gregorian_seconds_to_datetime-1"><a href="calendar.html#gregorian_seconds_to_datetime-1">gregorian_seconds_to_datetime/1</a></li>
<li title="is_leap_year-1"><a href="calendar.html#is_leap_year-1">is_leap_year/1</a></li>
<li title="iso_week_number-0"><a href="calendar.html#iso_week_number-0">iso_week_number/0</a></li>
<li title="iso_week_number-1"><a href="calendar.html#iso_week_number-1">iso_week_number/1</a></li>
<li title="last_day_of_the_month-2"><a href="calendar.html#last_day_of_the_month-2">last_day_of_the_month/2</a></li>
<li title="local_time-0"><a href="calendar.html#local_time-0">local_time/0</a></li>
<li title="local_time_to_universal_time-1"><a href="calendar.html#local_time_to_universal_time-1">local_time_to_universal_time/1</a></li>
<li title="local_time_to_universal_time_dst-1"><a href="calendar.html#local_time_to_universal_time_dst-1">local_time_to_universal_time_dst/1</a></li>
<li title="now_to_local_time-1"><a href="calendar.html#now_to_local_time-1">now_to_local_time/1</a></li>
<li title="now_to_universal_time-1"><a href="calendar.html#now_to_universal_time-1">now_to_universal_time/1</a></li>
<li title="now_to_datetime-1"><a href="calendar.html#now_to_datetime-1">now_to_datetime/1</a></li>
<li title="seconds_to_daystime-1"><a href="calendar.html#seconds_to_daystime-1">seconds_to_daystime/1</a></li>
<li title="seconds_to_time-1"><a href="calendar.html#seconds_to_time-1">seconds_to_time/1</a></li>
<li title="time_difference-2"><a href="calendar.html#time_difference-2">time_difference/2</a></li>
<li title="time_to_seconds-1"><a href="calendar.html#time_to_seconds-1">time_to_seconds/1</a></li>
<li title="universal_time-0"><a href="calendar.html#universal_time-0">universal_time/0</a></li>
<li title="universal_time_to_local_time-1"><a href="calendar.html#universal_time_to_local_time-1">universal_time_to_local_time/1</a></li>
<li title="valid_date-1"><a href="calendar.html#valid_date-1">valid_date/1</a></li>
<li title="valid_date-3"><a href="calendar.html#valid_date-3">valid_date/3</a></li>
</ul>
</li>
<li id="no" title="dets " expanded="false">dets<ul>
<li><a href="dets.html">
                  Top of manual page
                </a></li>
<li title="all-0"><a href="dets.html#all-0">all/0</a></li>
<li title="bchunk-2"><a href="dets.html#bchunk-2">bchunk/2</a></li>
<li title="close-1"><a href="dets.html#close-1">close/1</a></li>
<li title="delete-2"><a href="dets.html#delete-2">delete/2</a></li>
<li title="delete_all_objects-1"><a href="dets.html#delete_all_objects-1">delete_all_objects/1</a></li>
<li title="delete_object-2"><a href="dets.html#delete_object-2">delete_object/2</a></li>
<li title="first-1"><a href="dets.html#first-1">first/1</a></li>
<li title="foldl-3"><a href="dets.html#foldl-3">foldl/3</a></li>
<li title="foldr-3"><a href="dets.html#foldr-3">foldr/3</a></li>
<li title="from_ets-2"><a href="dets.html#from_ets-2">from_ets/2</a></li>
<li title="info-1"><a href="dets.html#info-1">info/1</a></li>
<li title="info-2"><a href="dets.html#info-2">info/2</a></li>
<li title="init_table-2"><a href="dets.html#init_table-2">init_table/2</a></li>
<li title="init_table-3"><a href="dets.html#init_table-3">init_table/3</a></li>
<li title="insert-2"><a href="dets.html#insert-2">insert/2</a></li>
<li title="insert_new-2"><a href="dets.html#insert_new-2">insert_new/2</a></li>
<li title="is_compatible_bchunk_format-2"><a href="dets.html#is_compatible_bchunk_format-2">is_compatible_bchunk_format/2</a></li>
<li title="is_dets_file-1"><a href="dets.html#is_dets_file-1">is_dets_file/1</a></li>
<li title="lookup-2"><a href="dets.html#lookup-2">lookup/2</a></li>
<li title="match-1"><a href="dets.html#match-1">match/1</a></li>
<li title="match-2"><a href="dets.html#match-2">match/2</a></li>
<li title="match-3"><a href="dets.html#match-3">match/3</a></li>
<li title="match_delete-2"><a href="dets.html#match_delete-2">match_delete/2</a></li>
<li title="match_object-1"><a href="dets.html#match_object-1">match_object/1</a></li>
<li title="match_object-2"><a href="dets.html#match_object-2">match_object/2</a></li>
<li title="match_object-3"><a href="dets.html#match_object-3">match_object/3</a></li>
<li title="member-2"><a href="dets.html#member-2">member/2</a></li>
<li title="next-2"><a href="dets.html#next-2">next/2</a></li>
<li title="open_file-1"><a href="dets.html#open_file-1">open_file/1</a></li>
<li title="open_file-2"><a href="dets.html#open_file-2">open_file/2</a></li>
<li title="pid2name-1"><a href="dets.html#pid2name-1">pid2name/1</a></li>
<li title="repair_continuation-2"><a href="dets.html#repair_continuation-2">repair_continuation/2</a></li>
<li title="safe_fixtable-2"><a href="dets.html#safe_fixtable-2">safe_fixtable/2</a></li>
<li title="select-1"><a href="dets.html#select-1">select/1</a></li>
<li title="select-2"><a href="dets.html#select-2">select/2</a></li>
<li title="select-3"><a href="dets.html#select-3">select/3</a></li>
<li title="select_delete-2"><a href="dets.html#select_delete-2">select_delete/2</a></li>
<li title="slot-2"><a href="dets.html#slot-2">slot/2</a></li>
<li title="sync-1"><a href="dets.html#sync-1">sync/1</a></li>
<li title="table-1"><a href="dets.html#table-1">table/1</a></li>
<li title="table-2"><a href="dets.html#table-2">table/2</a></li>
<li title="to_ets-2"><a href="dets.html#to_ets-2">to_ets/2</a></li>
<li title="traverse-2"><a href="dets.html#traverse-2">traverse/2</a></li>
<li title="update_counter-3"><a href="dets.html#update_counter-3">update_counter/3</a></li>
</ul>
</li>
<li id="no" title="dict " expanded="false">dict<ul>
<li><a href="dict.html">
                  Top of manual page
                </a></li>
<li title="append-3"><a href="dict.html#append-3">append/3</a></li>
<li title="append_list-3"><a href="dict.html#append_list-3">append_list/3</a></li>
<li title="erase-2"><a href="dict.html#erase-2">erase/2</a></li>
<li title="fetch-2"><a href="dict.html#fetch-2">fetch/2</a></li>
<li title="fetch_keys-1"><a href="dict.html#fetch_keys-1">fetch_keys/1</a></li>
<li title="filter-2"><a href="dict.html#filter-2">filter/2</a></li>
<li title="find-2"><a href="dict.html#find-2">find/2</a></li>
<li title="fold-3"><a href="dict.html#fold-3">fold/3</a></li>
<li title="from_list-1"><a href="dict.html#from_list-1">from_list/1</a></li>
<li title="is_key-2"><a href="dict.html#is_key-2">is_key/2</a></li>
<li title="map-2"><a href="dict.html#map-2">map/2</a></li>
<li title="merge-3"><a href="dict.html#merge-3">merge/3</a></li>
<li title="new-0"><a href="dict.html#new-0">new/0</a></li>
<li title="size-1"><a href="dict.html#size-1">size/1</a></li>
<li title="store-3"><a href="dict.html#store-3">store/3</a></li>
<li title="to_list-1"><a href="dict.html#to_list-1">to_list/1</a></li>
<li title="update-3"><a href="dict.html#update-3">update/3</a></li>
<li title="update-4"><a href="dict.html#update-4">update/4</a></li>
<li title="update_counter-3"><a href="dict.html#update_counter-3">update_counter/3</a></li>
</ul>
</li>
<li id="no" title="digraph " expanded="false">digraph<ul>
<li><a href="digraph.html">
                  Top of manual page
                </a></li>
<li title="add_edge-3"><a href="digraph.html#add_edge-3">add_edge/3</a></li>
<li title="add_edge-4"><a href="digraph.html#add_edge-4">add_edge/4</a></li>
<li title="add_edge-5"><a href="digraph.html#add_edge-5">add_edge/5</a></li>
<li title="add_vertex-1"><a href="digraph.html#add_vertex-1">add_vertex/1</a></li>
<li title="add_vertex-2"><a href="digraph.html#add_vertex-2">add_vertex/2</a></li>
<li title="add_vertex-3"><a href="digraph.html#add_vertex-3">add_vertex/3</a></li>
<li title="del_edge-2"><a href="digraph.html#del_edge-2">del_edge/2</a></li>
<li title="del_edges-2"><a href="digraph.html#del_edges-2">del_edges/2</a></li>
<li title="del_path-3"><a href="digraph.html#del_path-3">del_path/3</a></li>
<li title="del_vertex-2"><a href="digraph.html#del_vertex-2">del_vertex/2</a></li>
<li title="del_vertices-2"><a href="digraph.html#del_vertices-2">del_vertices/2</a></li>
<li title="delete-1"><a href="digraph.html#delete-1">delete/1</a></li>
<li title="edge-2"><a href="digraph.html#edge-2">edge/2</a></li>
<li title="edges-1"><a href="digraph.html#edges-1">edges/1</a></li>
<li title="edges-2"><a href="digraph.html#edges-2">edges/2</a></li>
<li title="get_cycle-2"><a href="digraph.html#get_cycle-2">get_cycle/2</a></li>
<li title="get_path-3"><a href="digraph.html#get_path-3">get_path/3</a></li>
<li title="get_short_cycle-2"><a href="digraph.html#get_short_cycle-2">get_short_cycle/2</a></li>
<li title="get_short_path-3"><a href="digraph.html#get_short_path-3">get_short_path/3</a></li>
<li title="in_degree-2"><a href="digraph.html#in_degree-2">in_degree/2</a></li>
<li title="in_edges-2"><a href="digraph.html#in_edges-2">in_edges/2</a></li>
<li title="in_neighbours-2"><a href="digraph.html#in_neighbours-2">in_neighbours/2</a></li>
<li title="info-1"><a href="digraph.html#info-1">info/1</a></li>
<li title="new-0"><a href="digraph.html#new-0">new/0</a></li>
<li title="new-1"><a href="digraph.html#new-1">new/1</a></li>
<li title="no_edges-1"><a href="digraph.html#no_edges-1">no_edges/1</a></li>
<li title="no_vertices-1"><a href="digraph.html#no_vertices-1">no_vertices/1</a></li>
<li title="out_degree-2"><a href="digraph.html#out_degree-2">out_degree/2</a></li>
<li title="out_edges-2"><a href="digraph.html#out_edges-2">out_edges/2</a></li>
<li title="out_neighbours-2"><a href="digraph.html#out_neighbours-2">out_neighbours/2</a></li>
<li title="vertex-2"><a href="digraph.html#vertex-2">vertex/2</a></li>
<li title="vertices-1"><a href="digraph.html#vertices-1">vertices/1</a></li>
</ul>
</li>
<li id="no" title="digraph_utils " expanded="false">digraph_utils<ul>
<li><a href="digraph_utils.html">
                  Top of manual page
                </a></li>
<li title="arborescence_root-1"><a href="digraph_utils.html#arborescence_root-1">arborescence_root/1</a></li>
<li title="components-1"><a href="digraph_utils.html#components-1">components/1</a></li>
<li title="condensation-1"><a href="digraph_utils.html#condensation-1">condensation/1</a></li>
<li title="cyclic_strong_components-1"><a href="digraph_utils.html#cyclic_strong_components-1">cyclic_strong_components/1</a></li>
<li title="is_acyclic-1"><a href="digraph_utils.html#is_acyclic-1">is_acyclic/1</a></li>
<li title="is_arborescence-1"><a href="digraph_utils.html#is_arborescence-1">is_arborescence/1</a></li>
<li title="is_tree-1"><a href="digraph_utils.html#is_tree-1">is_tree/1</a></li>
<li title="loop_vertices-1"><a href="digraph_utils.html#loop_vertices-1">loop_vertices/1</a></li>
<li title="postorder-1"><a href="digraph_utils.html#postorder-1">postorder/1</a></li>
<li title="preorder-1"><a href="digraph_utils.html#preorder-1">preorder/1</a></li>
<li title="reachable-2"><a href="digraph_utils.html#reachable-2">reachable/2</a></li>
<li title="reachable_neighbours-2"><a href="digraph_utils.html#reachable_neighbours-2">reachable_neighbours/2</a></li>
<li title="reaching-2"><a href="digraph_utils.html#reaching-2">reaching/2</a></li>
<li title="reaching_neighbours-2"><a href="digraph_utils.html#reaching_neighbours-2">reaching_neighbours/2</a></li>
<li title="strong_components-1"><a href="digraph_utils.html#strong_components-1">strong_components/1</a></li>
<li title="subgraph-2"><a href="digraph_utils.html#subgraph-2">subgraph/2</a></li>
<li title="subgraph-3"><a href="digraph_utils.html#subgraph-3">subgraph/3</a></li>
<li title="topsort-1"><a href="digraph_utils.html#topsort-1">topsort/1</a></li>
</ul>
</li>
<li id="no" title="epp " expanded="false">epp<ul>
<li><a href="epp.html">
                  Top of manual page
                </a></li>
<li title="open-2"><a href="epp.html#open-2">open/2</a></li>
<li title="open-3"><a href="epp.html#open-3">open/3</a></li>
<li title="close-1"><a href="epp.html#close-1">close/1</a></li>
<li title="parse_erl_form-1"><a href="epp.html#parse_erl_form-1">parse_erl_form/1</a></li>
<li title="parse_file-3"><a href="epp.html#parse_file-3">parse_file/3</a></li>
<li title="format_error-1"><a href="epp.html#format_error-1">format_error/1</a></li>
</ul>
</li>
<li id="no" title="erl_eval " expanded="false">erl_eval<ul>
<li><a href="erl_eval.html">
                  Top of manual page
                </a></li>
<li title="exprs-2"><a href="erl_eval.html#exprs-2">exprs/2</a></li>
<li title="exprs-3"><a href="erl_eval.html#exprs-3">exprs/3</a></li>
<li title="exprs-4"><a href="erl_eval.html#exprs-4">exprs/4</a></li>
<li title="expr-2"><a href="erl_eval.html#expr-2">expr/2</a></li>
<li title="expr-3"><a href="erl_eval.html#expr-3">expr/3</a></li>
<li title="expr-4"><a href="erl_eval.html#expr-4">expr/4</a></li>
<li title="expr-5"><a href="erl_eval.html#expr-5">expr/5</a></li>
<li title="expr_list-2"><a href="erl_eval.html#expr_list-2">expr_list/2</a></li>
<li title="expr_list-3"><a href="erl_eval.html#expr_list-3">expr_list/3</a></li>
<li title="expr_list-4"><a href="erl_eval.html#expr_list-4">expr_list/4</a></li>
<li title="new_bindings-0"><a href="erl_eval.html#new_bindings-0">new_bindings/0</a></li>
<li title="bindings-1"><a href="erl_eval.html#bindings-1">bindings/1</a></li>
<li title="binding-2"><a href="erl_eval.html#binding-2">binding/2</a></li>
<li title="add_binding-3"><a href="erl_eval.html#add_binding-3">add_binding/3</a></li>
<li title="del_binding-2"><a href="erl_eval.html#del_binding-2">del_binding/2</a></li>
</ul>
</li>
<li id="no" title="erl_expand_records " expanded="false">erl_expand_records<ul>
<li><a href="erl_expand_records.html">
                  Top of manual page
                </a></li>
<li title="module-2"><a href="erl_expand_records.html#module-2">module/2</a></li>
</ul>
</li>
<li id="no" title="erl_id_trans " expanded="false">erl_id_trans<ul>
<li><a href="erl_id_trans.html">
                  Top of manual page
                </a></li>
<li title="parse_transform-2"><a href="erl_id_trans.html#parse_transform-2">parse_transform/2</a></li>
</ul>
</li>
<li id="no" title="erl_internal " expanded="false">erl_internal<ul>
<li><a href="erl_internal.html">
                  Top of manual page
                </a></li>
<li title="bif-2"><a href="erl_internal.html#bif-2">bif/2</a></li>
<li title="guard_bif-2"><a href="erl_internal.html#guard_bif-2">guard_bif/2</a></li>
<li title="type_test-2"><a href="erl_internal.html#type_test-2">type_test/2</a></li>
<li title="arith_op-2"><a href="erl_internal.html#arith_op-2">arith_op/2</a></li>
<li title="bool_op-2"><a href="erl_internal.html#bool_op-2">bool_op/2</a></li>
<li title="comp_op-2"><a href="erl_internal.html#comp_op-2">comp_op/2</a></li>
<li title="list_op-2"><a href="erl_internal.html#list_op-2">list_op/2</a></li>
<li title="send_op-2"><a href="erl_internal.html#send_op-2">send_op/2</a></li>
<li title="op_type-2"><a href="erl_internal.html#op_type-2">op_type/2</a></li>
</ul>
</li>
<li id="no" title="erl_lint " expanded="false">erl_lint<ul>
<li><a href="erl_lint.html">
                  Top of manual page
                </a></li>
<li title="module-1"><a href="erl_lint.html#module-1">module/1</a></li>
<li title="module-2"><a href="erl_lint.html#module-2">module/2</a></li>
<li title="module-3"><a href="erl_lint.html#module-3">module/3</a></li>
<li title="is_guard_test-1"><a href="erl_lint.html#is_guard_test-1">is_guard_test/1</a></li>
<li title="format_error-1"><a href="erl_lint.html#format_error-1">format_error/1</a></li>
</ul>
</li>
<li id="no" title="erl_parse " expanded="false">erl_parse<ul>
<li><a href="erl_parse.html">
                  Top of manual page
                </a></li>
<li title="parse_form-1"><a href="erl_parse.html#parse_form-1">parse_form/1</a></li>
<li title="parse_exprs-1"><a href="erl_parse.html#parse_exprs-1">parse_exprs/1</a></li>
<li title="parse_term-1"><a href="erl_parse.html#parse_term-1">parse_term/1</a></li>
<li title="format_error-1"><a href="erl_parse.html#format_error-1">format_error/1</a></li>
<li title="tokens-1"><a href="erl_parse.html#tokens-1">tokens/1</a></li>
<li title="tokens-2"><a href="erl_parse.html#tokens-2">tokens/2</a></li>
<li title="normalise-1"><a href="erl_parse.html#normalise-1">normalise/1</a></li>
<li title="abstract-1"><a href="erl_parse.html#abstract-1">abstract/1</a></li>
</ul>
</li>
<li id="no" title="erl_pp " expanded="false">erl_pp<ul>
<li><a href="erl_pp.html">
                  Top of manual page
                </a></li>
<li title="form-1"><a href="erl_pp.html#form-1">form/1</a></li>
<li title="form-2"><a href="erl_pp.html#form-2">form/2</a></li>
<li title="attribute-1"><a href="erl_pp.html#attribute-1">attribute/1</a></li>
<li title="attribute-2"><a href="erl_pp.html#attribute-2">attribute/2</a></li>
<li title="function-1"><a href="erl_pp.html#function-1">function/1</a></li>
<li title="function-2"><a href="erl_pp.html#function-2">function/2</a></li>
<li title="guard-1"><a href="erl_pp.html#guard-1">guard/1</a></li>
<li title="guard-2"><a href="erl_pp.html#guard-2">guard/2</a></li>
<li title="exprs-1"><a href="erl_pp.html#exprs-1">exprs/1</a></li>
<li title="exprs-2"><a href="erl_pp.html#exprs-2">exprs/2</a></li>
<li title="exprs-3"><a href="erl_pp.html#exprs-3">exprs/3</a></li>
<li title="expr-1"><a href="erl_pp.html#expr-1">expr/1</a></li>
<li title="expr-2"><a href="erl_pp.html#expr-2">expr/2</a></li>
<li title="expr-3"><a href="erl_pp.html#expr-3">expr/3</a></li>
<li title="expr-4"><a href="erl_pp.html#expr-4">expr/4</a></li>
</ul>
</li>
<li id="no" title="erl_scan " expanded="false">erl_scan<ul>
<li><a href="erl_scan.html">
                  Top of manual page
                </a></li>
<li title="string-1"><a href="erl_scan.html#string-1">string/1</a></li>
<li title="string-2"><a href="erl_scan.html#string-2">string/2</a></li>
<li title="string-3"><a href="erl_scan.html#string-3">string/3</a></li>
<li title="tokens-3"><a href="erl_scan.html#tokens-3">tokens/3</a></li>
<li title="tokens-4"><a href="erl_scan.html#tokens-4">tokens/4</a></li>
<li title="reserved_word-1"><a href="erl_scan.html#reserved_word-1">reserved_word/1</a></li>
<li title="token_info-1"><a href="erl_scan.html#token_info-1">token_info/1</a></li>
<li title="token_info-2"><a href="erl_scan.html#token_info-2">token_info/2</a></li>
<li title="attributes_info-1"><a href="erl_scan.html#attributes_info-1">attributes_info/1</a></li>
<li title="attributes_info-2"><a href="erl_scan.html#attributes_info-2">attributes_info/2</a></li>
<li title="set_attribute-3"><a href="erl_scan.html#set_attribute-3">set_attribute/3</a></li>
<li title="format_error-1"><a href="erl_scan.html#format_error-1">format_error/1</a></li>
</ul>
</li>
<li id="no" title="erl_tar " expanded="false">erl_tar<ul>
<li><a href="erl_tar.html">
                  Top of manual page
                </a></li>
<li title="add-3"><a href="erl_tar.html#add-3">add/3</a></li>
<li title="add-4"><a href="erl_tar.html#add-4">add/4</a></li>
<li title="close-1"><a href="erl_tar.html#close-1">close/1</a></li>
<li title="create-2"><a href="erl_tar.html#create-2">create/2</a></li>
<li title="create-3"><a href="erl_tar.html#create-3">create/3</a></li>
<li title="extract-1"><a href="erl_tar.html#extract-1">extract/1</a></li>
<li title="extract-2"><a href="erl_tar.html#extract-2">extract/2</a></li>
<li title="format_error-1"><a href="erl_tar.html#format_error-1">format_error/1</a></li>
<li title="open-2"><a href="erl_tar.html#open-2">open/2</a></li>
<li title="table-1"><a href="erl_tar.html#table-1">table/1</a></li>
<li title="table-2"><a href="erl_tar.html#table-2">table/2</a></li>
<li title="t-1"><a href="erl_tar.html#t-1">t/1</a></li>
<li title="tt-1"><a href="erl_tar.html#tt-1">tt/1</a></li>
</ul>
</li>
<li id="no" title="ets " expanded="false">ets<ul>
<li><a href="ets.html">
                  Top of manual page
                </a></li>
<li title="all-0"><a href="ets.html#all-0">all/0</a></li>
<li title="delete-1"><a href="ets.html#delete-1">delete/1</a></li>
<li title="delete-2"><a href="ets.html#delete-2">delete/2</a></li>
<li title="delete_all_objects-1"><a href="ets.html#delete_all_objects-1">delete_all_objects/1</a></li>
<li title="delete_object-2"><a href="ets.html#delete_object-2">delete_object/2</a></li>
<li title="file2tab-1"><a href="ets.html#file2tab-1">file2tab/1</a></li>
<li title="file2tab-2"><a href="ets.html#file2tab-2">file2tab/2</a></li>
<li title="first-1"><a href="ets.html#first-1">first/1</a></li>
<li title="foldl-3"><a href="ets.html#foldl-3">foldl/3</a></li>
<li title="foldr-3"><a href="ets.html#foldr-3">foldr/3</a></li>
<li title="from_dets-2"><a href="ets.html#from_dets-2">from_dets/2</a></li>
<li title="fun2ms-1"><a href="ets.html#fun2ms-1">fun2ms/1</a></li>
<li title="give_away-3"><a href="ets.html#give_away-3">give_away/3</a></li>
<li title="i-0"><a href="ets.html#i-0">i/0</a></li>
<li title="i-1"><a href="ets.html#i-1">i/1</a></li>
<li title="info-1"><a href="ets.html#info-1">info/1</a></li>
<li title="info-2"><a href="ets.html#info-2">info/2</a></li>
<li title="init_table-2"><a href="ets.html#init_table-2">init_table/2</a></li>
<li title="insert-2"><a href="ets.html#insert-2">insert/2</a></li>
<li title="insert_new-2"><a href="ets.html#insert_new-2">insert_new/2</a></li>
<li title="is_compiled_ms-1"><a href="ets.html#is_compiled_ms-1">is_compiled_ms/1</a></li>
<li title="last-1"><a href="ets.html#last-1">last/1</a></li>
<li title="lookup-2"><a href="ets.html#lookup-2">lookup/2</a></li>
<li title="lookup_element-3"><a href="ets.html#lookup_element-3">lookup_element/3</a></li>
<li title="match-2"><a href="ets.html#match-2">match/2</a></li>
<li title="match-3"><a href="ets.html#match-3">match/3</a></li>
<li title="match-1"><a href="ets.html#match-1">match/1</a></li>
<li title="match_delete-2"><a href="ets.html#match_delete-2">match_delete/2</a></li>
<li title="match_object-2"><a href="ets.html#match_object-2">match_object/2</a></li>
<li title="match_object-3"><a href="ets.html#match_object-3">match_object/3</a></li>
<li title="match_object-1"><a href="ets.html#match_object-1">match_object/1</a></li>
<li title="match_spec_compile-1"><a href="ets.html#match_spec_compile-1">match_spec_compile/1</a></li>
<li title="match_spec_run-2"><a href="ets.html#match_spec_run-2">match_spec_run/2</a></li>
<li title="member-2"><a href="ets.html#member-2">member/2</a></li>
<li title="new-2"><a href="ets.html#new-2">new/2</a></li>
<li title="next-2"><a href="ets.html#next-2">next/2</a></li>
<li title="prev-2"><a href="ets.html#prev-2">prev/2</a></li>
<li title="rename-2"><a href="ets.html#rename-2">rename/2</a></li>
<li title="repair_continuation-2"><a href="ets.html#repair_continuation-2">repair_continuation/2</a></li>
<li title="safe_fixtable-2"><a href="ets.html#safe_fixtable-2">safe_fixtable/2</a></li>
<li title="select-2"><a href="ets.html#select-2">select/2</a></li>
<li title="select-3"><a href="ets.html#select-3">select/3</a></li>
<li title="select-1"><a href="ets.html#select-1">select/1</a></li>
<li title="select_count-2"><a href="ets.html#select_count-2">select_count/2</a></li>
<li title="select_delete-2"><a href="ets.html#select_delete-2">select_delete/2</a></li>
<li title="select_reverse-2"><a href="ets.html#select_reverse-2">select_reverse/2</a></li>
<li title="select_reverse-3"><a href="ets.html#select_reverse-3">select_reverse/3</a></li>
<li title="select_reverse-1"><a href="ets.html#select_reverse-1">select_reverse/1</a></li>
<li title="setopts-2"><a href="ets.html#setopts-2">setopts/2</a></li>
<li title="slot-2"><a href="ets.html#slot-2">slot/2</a></li>
<li title="tab2file-2"><a href="ets.html#tab2file-2">tab2file/2</a></li>
<li title="tab2file-3"><a href="ets.html#tab2file-3">tab2file/3</a></li>
<li title="tab2list-1"><a href="ets.html#tab2list-1">tab2list/1</a></li>
<li title="tabfile_info-1"><a href="ets.html#tabfile_info-1">tabfile_info/1</a></li>
<li title="table-1"><a href="ets.html#table-1">table/1</a></li>
<li title="table-2"><a href="ets.html#table-2">table/2</a></li>
<li title="test_ms-2"><a href="ets.html#test_ms-2">test_ms/2</a></li>
<li title="to_dets-2"><a href="ets.html#to_dets-2">to_dets/2</a></li>
<li title="update_counter-3"><a href="ets.html#update_counter-3">update_counter/3</a></li>
<li title="update_counter-3"><a href="ets.html#update_counter-3">update_counter/3</a></li>
<li title="update_counter-3"><a href="ets.html#update_counter-3">update_counter/3</a></li>
<li title="update_element-3"><a href="ets.html#update_element-3">update_element/3</a></li>
<li title="update_element-3"><a href="ets.html#update_element-3">update_element/3</a></li>
</ul>
</li>
<li id="no" title="file_sorter " expanded="false">file_sorter<ul>
<li><a href="file_sorter.html">
                  Top of manual page
                </a></li>
<li title="sort-1"><a href="file_sorter.html#sort-1">sort/1</a></li>
<li title="sort-2"><a href="file_sorter.html#sort-2">sort/2</a></li>
<li title="sort-3"><a href="file_sorter.html#sort-3">sort/3</a></li>
<li title="keysort-2"><a href="file_sorter.html#keysort-2">keysort/2</a></li>
<li title="keysort-3"><a href="file_sorter.html#keysort-3">keysort/3</a></li>
<li title="keysort-4"><a href="file_sorter.html#keysort-4">keysort/4</a></li>
<li title="merge-2"><a href="file_sorter.html#merge-2">merge/2</a></li>
<li title="merge-3"><a href="file_sorter.html#merge-3">merge/3</a></li>
<li title="keymerge-3"><a href="file_sorter.html#keymerge-3">keymerge/3</a></li>
<li title="keymerge-4"><a href="file_sorter.html#keymerge-4">keymerge/4</a></li>
<li title="check-1"><a href="file_sorter.html#check-1">check/1</a></li>
<li title="check-2"><a href="file_sorter.html#check-2">check/2</a></li>
<li title="keycheck-2"><a href="file_sorter.html#keycheck-2">keycheck/2</a></li>
<li title="keycheck-3"><a href="file_sorter.html#keycheck-3">keycheck/3</a></li>
</ul>
</li>
<li id="no" title="filelib " expanded="false">filelib<ul>
<li><a href="filelib.html">
                  Top of manual page
                </a></li>
<li title="ensure_dir-1"><a href="filelib.html#ensure_dir-1">ensure_dir/1</a></li>
<li title="file_size-1"><a href="filelib.html#file_size-1">file_size/1</a></li>
<li title="fold_files-5"><a href="filelib.html#fold_files-5">fold_files/5</a></li>
<li title="is_dir-1"><a href="filelib.html#is_dir-1">is_dir/1</a></li>
<li title="is_file-1"><a href="filelib.html#is_file-1">is_file/1</a></li>
<li title="is_regular-1"><a href="filelib.html#is_regular-1">is_regular/1</a></li>
<li title="last_modified-1"><a href="filelib.html#last_modified-1">last_modified/1</a></li>
<li title="wildcard-1"><a href="filelib.html#wildcard-1">wildcard/1</a></li>
<li title="wildcard-2"><a href="filelib.html#wildcard-2">wildcard/2</a></li>
</ul>
</li>
<li id="no" title="filename " expanded="false">filename<ul>
<li><a href="filename.html">
                  Top of manual page
                </a></li>
<li title="absname-1"><a href="filename.html#absname-1">absname/1</a></li>
<li title="absname-2"><a href="filename.html#absname-2">absname/2</a></li>
<li title="absname_join-2"><a href="filename.html#absname_join-2">absname_join/2</a></li>
<li title="basename-1"><a href="filename.html#basename-1">basename/1</a></li>
<li title="basename-2"><a href="filename.html#basename-2">basename/2</a></li>
<li title="dirname-1"><a href="filename.html#dirname-1">dirname/1</a></li>
<li title="extension-1"><a href="filename.html#extension-1">extension/1</a></li>
<li title="flatten-1"><a href="filename.html#flatten-1">flatten/1</a></li>
<li title="join-1"><a href="filename.html#join-1">join/1</a></li>
<li title="join-2"><a href="filename.html#join-2">join/2</a></li>
<li title="nativename-1"><a href="filename.html#nativename-1">nativename/1</a></li>
<li title="pathtype-1"><a href="filename.html#pathtype-1">pathtype/1</a></li>
<li title="rootname-1"><a href="filename.html#rootname-1">rootname/1</a></li>
<li title="rootname-2"><a href="filename.html#rootname-2">rootname/2</a></li>
<li title="split-1"><a href="filename.html#split-1">split/1</a></li>
<li title="find_src-1"><a href="filename.html#find_src-1">find_src/1</a></li>
<li title="find_src-2"><a href="filename.html#find_src-2">find_src/2</a></li>
</ul>
</li>
<li id="no" title="gb_sets " expanded="false">gb_sets<ul>
<li><a href="gb_sets.html">
                  Top of manual page
                </a></li>
<li title="add-2"><a href="gb_sets.html#add-2">add/2</a></li>
<li title="add_element-2"><a href="gb_sets.html#add_element-2">add_element/2</a></li>
<li title="balance-1"><a href="gb_sets.html#balance-1">balance/1</a></li>
<li title="delete-2"><a href="gb_sets.html#delete-2">delete/2</a></li>
<li title="delete_any-2"><a href="gb_sets.html#delete_any-2">delete_any/2</a></li>
<li title="del_element-2"><a href="gb_sets.html#del_element-2">del_element/2</a></li>
<li title="difference-2"><a href="gb_sets.html#difference-2">difference/2</a></li>
<li title="subtract-2"><a href="gb_sets.html#subtract-2">subtract/2</a></li>
<li title="empty-0"><a href="gb_sets.html#empty-0">empty/0</a></li>
<li title="new-0"><a href="gb_sets.html#new-0">new/0</a></li>
<li title="filter-2"><a href="gb_sets.html#filter-2">filter/2</a></li>
<li title="fold-3"><a href="gb_sets.html#fold-3">fold/3</a></li>
<li title="from_list-1"><a href="gb_sets.html#from_list-1">from_list/1</a></li>
<li title="from_ordset-1"><a href="gb_sets.html#from_ordset-1">from_ordset/1</a></li>
<li title="insert-2"><a href="gb_sets.html#insert-2">insert/2</a></li>
<li title="intersection-2"><a href="gb_sets.html#intersection-2">intersection/2</a></li>
<li title="intersection-1"><a href="gb_sets.html#intersection-1">intersection/1</a></li>
<li title="is_disjoint-2"><a href="gb_sets.html#is_disjoint-2">is_disjoint/2</a></li>
<li title="is_empty-1"><a href="gb_sets.html#is_empty-1">is_empty/1</a></li>
<li title="is_member-2"><a href="gb_sets.html#is_member-2">is_member/2</a></li>
<li title="is_element-2"><a href="gb_sets.html#is_element-2">is_element/2</a></li>
<li title="is_set-1"><a href="gb_sets.html#is_set-1">is_set/1</a></li>
<li title="is_subset-2"><a href="gb_sets.html#is_subset-2">is_subset/2</a></li>
<li title="iterator-1"><a href="gb_sets.html#iterator-1">iterator/1</a></li>
<li title="largest-1"><a href="gb_sets.html#largest-1">largest/1</a></li>
<li title="next-1"><a href="gb_sets.html#next-1">next/1</a></li>
<li title="singleton-1"><a href="gb_sets.html#singleton-1">singleton/1</a></li>
<li title="size-1"><a href="gb_sets.html#size-1">size/1</a></li>
<li title="smallest-1"><a href="gb_sets.html#smallest-1">smallest/1</a></li>
<li title="take_largest-1"><a href="gb_sets.html#take_largest-1">take_largest/1</a></li>
<li title="take_smallest-1"><a href="gb_sets.html#take_smallest-1">take_smallest/1</a></li>
<li title="to_list-1"><a href="gb_sets.html#to_list-1">to_list/1</a></li>
<li title="union-2"><a href="gb_sets.html#union-2">union/2</a></li>
<li title="union-1"><a href="gb_sets.html#union-1">union/1</a></li>
</ul>
</li>
<li id="no" title="gb_trees " expanded="false">gb_trees<ul>
<li><a href="gb_trees.html">
                  Top of manual page
                </a></li>
<li title="balance-1"><a href="gb_trees.html#balance-1">balance/1</a></li>
<li title="delete-2"><a href="gb_trees.html#delete-2">delete/2</a></li>
<li title="delete_any-2"><a href="gb_trees.html#delete_any-2">delete_any/2</a></li>
<li title="empty-0"><a href="gb_trees.html#empty-0">empty/0</a></li>
<li title="enter-3"><a href="gb_trees.html#enter-3">enter/3</a></li>
<li title="from_orddict-1"><a href="gb_trees.html#from_orddict-1">from_orddict/1</a></li>
<li title="get-2"><a href="gb_trees.html#get-2">get/2</a></li>
<li title="insert-3"><a href="gb_trees.html#insert-3">insert/3</a></li>
<li title="is_defined-2"><a href="gb_trees.html#is_defined-2">is_defined/2</a></li>
<li title="is_empty-1"><a href="gb_trees.html#is_empty-1">is_empty/1</a></li>
<li title="iterator-1"><a href="gb_trees.html#iterator-1">iterator/1</a></li>
<li title="keys-1"><a href="gb_trees.html#keys-1">keys/1</a></li>
<li title="largest-1"><a href="gb_trees.html#largest-1">largest/1</a></li>
<li title="lookup-2"><a href="gb_trees.html#lookup-2">lookup/2</a></li>
<li title="map-2"><a href="gb_trees.html#map-2">map/2</a></li>
<li title="next-1"><a href="gb_trees.html#next-1">next/1</a></li>
<li title="size-1"><a href="gb_trees.html#size-1">size/1</a></li>
<li title="smallest-1"><a href="gb_trees.html#smallest-1">smallest/1</a></li>
<li title="take_largest-1"><a href="gb_trees.html#take_largest-1">take_largest/1</a></li>
<li title="take_smallest-1"><a href="gb_trees.html#take_smallest-1">take_smallest/1</a></li>
<li title="to_list-1"><a href="gb_trees.html#to_list-1">to_list/1</a></li>
<li title="update-3"><a href="gb_trees.html#update-3">update/3</a></li>
<li title="values-1"><a href="gb_trees.html#values-1">values/1</a></li>
</ul>
</li>
<li id="no" title="gen_event " expanded="false">gen_event<ul>
<li><a href="gen_event.html">
                  Top of manual page
                </a></li>
<li title="start_link-0"><a href="gen_event.html#start_link-0">start_link/0</a></li>
<li title="start_link-1"><a href="gen_event.html#start_link-1">start_link/1</a></li>
<li title="start-0"><a href="gen_event.html#start-0">start/0</a></li>
<li title="start-1"><a href="gen_event.html#start-1">start/1</a></li>
<li title="add_handler-3"><a href="gen_event.html#add_handler-3">add_handler/3</a></li>
<li title="add_sup_handler-3"><a href="gen_event.html#add_sup_handler-3">add_sup_handler/3</a></li>
<li title="notify-2"><a href="gen_event.html#notify-2">notify/2</a></li>
<li title="sync_notify-2"><a href="gen_event.html#sync_notify-2">sync_notify/2</a></li>
<li title="call-3"><a href="gen_event.html#call-3">call/3</a></li>
<li title="call-4"><a href="gen_event.html#call-4">call/4</a></li>
<li title="delete_handler-3"><a href="gen_event.html#delete_handler-3">delete_handler/3</a></li>
<li title="swap_handler-3"><a href="gen_event.html#swap_handler-3">swap_handler/3</a></li>
<li title="swap_sup_handler-3"><a href="gen_event.html#swap_sup_handler-3">swap_sup_handler/3</a></li>
<li title="which_handlers-1"><a href="gen_event.html#which_handlers-1">which_handlers/1</a></li>
<li title="stop-1"><a href="gen_event.html#stop-1">stop/1</a></li>
<li title="Module:init-1"><a href="gen_event.html#Module:init-1">Module:init/1</a></li>
<li title="Module:handle_event-2"><a href="gen_event.html#Module:handle_event-2">Module:handle_event/2</a></li>
<li title="Module:handle_call-2"><a href="gen_event.html#Module:handle_call-2">Module:handle_call/2</a></li>
<li title="Module:handle_info-2"><a href="gen_event.html#Module:handle_info-2">Module:handle_info/2</a></li>
<li title="Module:terminate-2"><a href="gen_event.html#Module:terminate-2">Module:terminate/2</a></li>
<li title="Module:code_change-3"><a href="gen_event.html#Module:code_change-3">Module:code_change/3</a></li>
<li title="Module:format_status-2"><a href="gen_event.html#Module:format_status-2">Module:format_status/2</a></li>
</ul>
</li>
<li id="no" title="gen_fsm " expanded="false">gen_fsm<ul>
<li><a href="gen_fsm.html">
                  Top of manual page
                </a></li>
<li title="start_link-3"><a href="gen_fsm.html#start_link-3">start_link/3</a></li>
<li title="start_link-4"><a href="gen_fsm.html#start_link-4">start_link/4</a></li>
<li title="start-3"><a href="gen_fsm.html#start-3">start/3</a></li>
<li title="start-4"><a href="gen_fsm.html#start-4">start/4</a></li>
<li title="send_event-2"><a href="gen_fsm.html#send_event-2">send_event/2</a></li>
<li title="send_all_state_event-2"><a href="gen_fsm.html#send_all_state_event-2">send_all_state_event/2</a></li>
<li title="sync_send_event-2"><a href="gen_fsm.html#sync_send_event-2">sync_send_event/2</a></li>
<li title="sync_send_event-3"><a href="gen_fsm.html#sync_send_event-3">sync_send_event/3</a></li>
<li title="sync_send_all_state_event-2"><a href="gen_fsm.html#sync_send_all_state_event-2">sync_send_all_state_event/2</a></li>
<li title="sync_send_all_state_event-3"><a href="gen_fsm.html#sync_send_all_state_event-3">sync_send_all_state_event/3</a></li>
<li title="reply-2"><a href="gen_fsm.html#reply-2">reply/2</a></li>
<li title="send_event_after-2"><a href="gen_fsm.html#send_event_after-2">send_event_after/2</a></li>
<li title="start_timer-2"><a href="gen_fsm.html#start_timer-2">start_timer/2</a></li>
<li title="cancel_timer-1"><a href="gen_fsm.html#cancel_timer-1">cancel_timer/1</a></li>
<li title="enter_loop-4"><a href="gen_fsm.html#enter_loop-4">enter_loop/4</a></li>
<li title="enter_loop-5"><a href="gen_fsm.html#enter_loop-5">enter_loop/5</a></li>
<li title="enter_loop-5"><a href="gen_fsm.html#enter_loop-5">enter_loop/5</a></li>
<li title="enter_loop-6"><a href="gen_fsm.html#enter_loop-6">enter_loop/6</a></li>
<li title="Module:init-1"><a href="gen_fsm.html#Module:init-1">Module:init/1</a></li>
<li title="Module:StateName-2"><a href="gen_fsm.html#Module:StateName-2">Module:StateName/2</a></li>
<li title="Module:handle_event-3"><a href="gen_fsm.html#Module:handle_event-3">Module:handle_event/3</a></li>
<li title="Module:StateName-3"><a href="gen_fsm.html#Module:StateName-3">Module:StateName/3</a></li>
<li title="Module:handle_sync_event-4"><a href="gen_fsm.html#Module:handle_sync_event-4">Module:handle_sync_event/4</a></li>
<li title="Module:handle_info-3"><a href="gen_fsm.html#Module:handle_info-3">Module:handle_info/3</a></li>
<li title="Module:terminate-3"><a href="gen_fsm.html#Module:terminate-3">Module:terminate/3</a></li>
<li title="Module:code_change-4"><a href="gen_fsm.html#Module:code_change-4">Module:code_change/4</a></li>
<li title="Module:format_status-2"><a href="gen_fsm.html#Module:format_status-2">Module:format_status/2</a></li>
</ul>
</li>
<li id="no" title="gen_server " expanded="false">gen_server<ul>
<li><a href="gen_server.html">
                  Top of manual page
                </a></li>
<li title="start_link-3"><a href="gen_server.html#start_link-3">start_link/3</a></li>
<li title="start_link-4"><a href="gen_server.html#start_link-4">start_link/4</a></li>
<li title="start-3"><a href="gen_server.html#start-3">start/3</a></li>
<li title="start-4"><a href="gen_server.html#start-4">start/4</a></li>
<li title="call-2"><a href="gen_server.html#call-2">call/2</a></li>
<li title="call-3"><a href="gen_server.html#call-3">call/3</a></li>
<li title="multi_call-2"><a href="gen_server.html#multi_call-2">multi_call/2</a></li>
<li title="multi_call-3"><a href="gen_server.html#multi_call-3">multi_call/3</a></li>
<li title="multi_call-4"><a href="gen_server.html#multi_call-4">multi_call/4</a></li>
<li title="cast-2"><a href="gen_server.html#cast-2">cast/2</a></li>
<li title="abcast-2"><a href="gen_server.html#abcast-2">abcast/2</a></li>
<li title="abcast-3"><a href="gen_server.html#abcast-3">abcast/3</a></li>
<li title="reply-2"><a href="gen_server.html#reply-2">reply/2</a></li>
<li title="enter_loop-3"><a href="gen_server.html#enter_loop-3">enter_loop/3</a></li>
<li title="enter_loop-4"><a href="gen_server.html#enter_loop-4">enter_loop/4</a></li>
<li title="enter_loop-4"><a href="gen_server.html#enter_loop-4">enter_loop/4</a></li>
<li title="enter_loop-5"><a href="gen_server.html#enter_loop-5">enter_loop/5</a></li>
<li title="Module:init-1"><a href="gen_server.html#Module:init-1">Module:init/1</a></li>
<li title="Module:handle_call-3"><a href="gen_server.html#Module:handle_call-3">Module:handle_call/3</a></li>
<li title="Module:handle_cast-2"><a href="gen_server.html#Module:handle_cast-2">Module:handle_cast/2</a></li>
<li title="Module:handle_info-2"><a href="gen_server.html#Module:handle_info-2">Module:handle_info/2</a></li>
<li title="Module:terminate-2"><a href="gen_server.html#Module:terminate-2">Module:terminate/2</a></li>
<li title="Module:code_change-3"><a href="gen_server.html#Module:code_change-3">Module:code_change/3</a></li>
<li title="Module:format_status-2"><a href="gen_server.html#Module:format_status-2">Module:format_status/2</a></li>
</ul>
</li>
<li id="no" title="io " expanded="false">io<ul>
<li><a href="io.html">
                  Top of manual page
                </a></li>
<li title="columns-0"><a href="io.html#columns-0">columns/0</a></li>
<li title="columns-1"><a href="io.html#columns-1">columns/1</a></li>
<li title="put_chars-1"><a href="io.html#put_chars-1">put_chars/1</a></li>
<li title="put_chars-2"><a href="io.html#put_chars-2">put_chars/2</a></li>
<li title="nl-0"><a href="io.html#nl-0">nl/0</a></li>
<li title="nl-1"><a href="io.html#nl-1">nl/1</a></li>
<li title="get_chars-2"><a href="io.html#get_chars-2">get_chars/2</a></li>
<li title="get_chars-3"><a href="io.html#get_chars-3">get_chars/3</a></li>
<li title="get_line-1"><a href="io.html#get_line-1">get_line/1</a></li>
<li title="get_line-2"><a href="io.html#get_line-2">get_line/2</a></li>
<li title="getopts-0"><a href="io.html#getopts-0">getopts/0</a></li>
<li title="getopts-1"><a href="io.html#getopts-1">getopts/1</a></li>
<li title="setopts-1"><a href="io.html#setopts-1">setopts/1</a></li>
<li title="setopts-2"><a href="io.html#setopts-2">setopts/2</a></li>
<li title="write-1"><a href="io.html#write-1">write/1</a></li>
<li title="write-2"><a href="io.html#write-2">write/2</a></li>
<li title="read-1"><a href="io.html#read-1">read/1</a></li>
<li title="read-2"><a href="io.html#read-2">read/2</a></li>
<li title="read-3"><a href="io.html#read-3">read/3</a></li>
<li title="fwrite-1"><a href="io.html#fwrite-1">fwrite/1</a></li>
<li title="fwrite-2"><a href="io.html#fwrite-2">fwrite/2</a></li>
<li title="fwrite-3"><a href="io.html#fwrite-3">fwrite/3</a></li>
<li title="format-1"><a href="io.html#format-1">format/1</a></li>
<li title="format-2"><a href="io.html#format-2">format/2</a></li>
<li title="format-3"><a href="io.html#format-3">format/3</a></li>
<li title="fread-2"><a href="io.html#fread-2">fread/2</a></li>
<li title="fread-3"><a href="io.html#fread-3">fread/3</a></li>
<li title="rows-0"><a href="io.html#rows-0">rows/0</a></li>
<li title="rows-1"><a href="io.html#rows-1">rows/1</a></li>
<li title="scan_erl_exprs-1"><a href="io.html#scan_erl_exprs-1">scan_erl_exprs/1</a></li>
<li title="scan_erl_exprs-2"><a href="io.html#scan_erl_exprs-2">scan_erl_exprs/2</a></li>
<li title="scan_erl_exprs-3"><a href="io.html#scan_erl_exprs-3">scan_erl_exprs/3</a></li>
<li title="scan_erl_form-1"><a href="io.html#scan_erl_form-1">scan_erl_form/1</a></li>
<li title="scan_erl_form-2"><a href="io.html#scan_erl_form-2">scan_erl_form/2</a></li>
<li title="scan_erl_form-3"><a href="io.html#scan_erl_form-3">scan_erl_form/3</a></li>
<li title="parse_erl_exprs-1"><a href="io.html#parse_erl_exprs-1">parse_erl_exprs/1</a></li>
<li title="parse_erl_exprs-2"><a href="io.html#parse_erl_exprs-2">parse_erl_exprs/2</a></li>
<li title="parse_erl_exprs-3"><a href="io.html#parse_erl_exprs-3">parse_erl_exprs/3</a></li>
<li title="parse_erl_form-1"><a href="io.html#parse_erl_form-1">parse_erl_form/1</a></li>
<li title="parse_erl_form-2"><a href="io.html#parse_erl_form-2">parse_erl_form/2</a></li>
<li title="parse_erl_form-3"><a href="io.html#parse_erl_form-3">parse_erl_form/3</a></li>
</ul>
</li>
<li id="no" title="io_lib " expanded="false">io_lib<ul>
<li><a href="io_lib.html">
                  Top of manual page
                </a></li>
<li title="nl-0"><a href="io_lib.html#nl-0">nl/0</a></li>
<li title="write-1"><a href="io_lib.html#write-1">write/1</a></li>
<li title="write-2"><a href="io_lib.html#write-2">write/2</a></li>
<li title="print-1"><a href="io_lib.html#print-1">print/1</a></li>
<li title="print-4"><a href="io_lib.html#print-4">print/4</a></li>
<li title="fwrite-2"><a href="io_lib.html#fwrite-2">fwrite/2</a></li>
<li title="format-2"><a href="io_lib.html#format-2">format/2</a></li>
<li title="fread-2"><a href="io_lib.html#fread-2">fread/2</a></li>
<li title="fread-3"><a href="io_lib.html#fread-3">fread/3</a></li>
<li title="write_atom-1"><a href="io_lib.html#write_atom-1">write_atom/1</a></li>
<li title="write_string-1"><a href="io_lib.html#write_string-1">write_string/1</a></li>
<li title="write_char-1"><a href="io_lib.html#write_char-1">write_char/1</a></li>
<li title="indentation-2"><a href="io_lib.html#indentation-2">indentation/2</a></li>
<li title="char_list-1"><a href="io_lib.html#char_list-1">char_list/1</a></li>
<li title="deep_char_list-1"><a href="io_lib.html#deep_char_list-1">deep_char_list/1</a></li>
<li title="printable_list-1"><a href="io_lib.html#printable_list-1">printable_list/1</a></li>
</ul>
</li>
<li id="no" title="lib " expanded="false">lib<ul>
<li><a href="lib.html">
                  Top of manual page
                </a></li>
<li title="flush_receive-0"><a href="lib.html#flush_receive-0">flush_receive/0</a></li>
<li title="error_message-2"><a href="lib.html#error_message-2">error_message/2</a></li>
<li title="progname-0"><a href="lib.html#progname-0">progname/0</a></li>
<li title="nonl-1"><a href="lib.html#nonl-1">nonl/1</a></li>
<li title="send-2"><a href="lib.html#send-2">send/2</a></li>
<li title="sendw-2"><a href="lib.html#sendw-2">sendw/2</a></li>
</ul>
</li>
<li id="no" title="lists " expanded="false">lists<ul>
<li><a href="lists.html">
                  Top of manual page
                </a></li>
<li title="all-2"><a href="lists.html#all-2">all/2</a></li>
<li title="any-2"><a href="lists.html#any-2">any/2</a></li>
<li title="append-1"><a href="lists.html#append-1">append/1</a></li>
<li title="append-2"><a href="lists.html#append-2">append/2</a></li>
<li title="concat-1"><a href="lists.html#concat-1">concat/1</a></li>
<li title="delete-2"><a href="lists.html#delete-2">delete/2</a></li>
<li title="dropwhile-2"><a href="lists.html#dropwhile-2">dropwhile/2</a></li>
<li title="duplicate-2"><a href="lists.html#duplicate-2">duplicate/2</a></li>
<li title="filter-2"><a href="lists.html#filter-2">filter/2</a></li>
<li title="flatlength-1"><a href="lists.html#flatlength-1">flatlength/1</a></li>
<li title="flatmap-2"><a href="lists.html#flatmap-2">flatmap/2</a></li>
<li title="flatten-1"><a href="lists.html#flatten-1">flatten/1</a></li>
<li title="flatten-2"><a href="lists.html#flatten-2">flatten/2</a></li>
<li title="foldl-3"><a href="lists.html#foldl-3">foldl/3</a></li>
<li title="foldr-3"><a href="lists.html#foldr-3">foldr/3</a></li>
<li title="foreach-2"><a href="lists.html#foreach-2">foreach/2</a></li>
<li title="keydelete-3"><a href="lists.html#keydelete-3">keydelete/3</a></li>
<li title="keyfind-3"><a href="lists.html#keyfind-3">keyfind/3</a></li>
<li title="keymap-3"><a href="lists.html#keymap-3">keymap/3</a></li>
<li title="keymember-3"><a href="lists.html#keymember-3">keymember/3</a></li>
<li title="keymerge-3"><a href="lists.html#keymerge-3">keymerge/3</a></li>
<li title="keyreplace-4"><a href="lists.html#keyreplace-4">keyreplace/4</a></li>
<li title="keysearch-3"><a href="lists.html#keysearch-3">keysearch/3</a></li>
<li title="keysort-2"><a href="lists.html#keysort-2">keysort/2</a></li>
<li title="keystore-4"><a href="lists.html#keystore-4">keystore/4</a></li>
<li title="keytake-3"><a href="lists.html#keytake-3">keytake/3</a></li>
<li title="last-1"><a href="lists.html#last-1">last/1</a></li>
<li title="map-2"><a href="lists.html#map-2">map/2</a></li>
<li title="mapfoldl-3"><a href="lists.html#mapfoldl-3">mapfoldl/3</a></li>
<li title="mapfoldr-3"><a href="lists.html#mapfoldr-3">mapfoldr/3</a></li>
<li title="max-1"><a href="lists.html#max-1">max/1</a></li>
<li title="member-2"><a href="lists.html#member-2">member/2</a></li>
<li title="merge-1"><a href="lists.html#merge-1">merge/1</a></li>
<li title="merge-2"><a href="lists.html#merge-2">merge/2</a></li>
<li title="merge-3"><a href="lists.html#merge-3">merge/3</a></li>
<li title="merge3-3"><a href="lists.html#merge3-3">merge3/3</a></li>
<li title="min-1"><a href="lists.html#min-1">min/1</a></li>
<li title="nth-2"><a href="lists.html#nth-2">nth/2</a></li>
<li title="nthtail-2"><a href="lists.html#nthtail-2">nthtail/2</a></li>
<li title="partition-2"><a href="lists.html#partition-2">partition/2</a></li>
<li title="prefix-2"><a href="lists.html#prefix-2">prefix/2</a></li>
<li title="reverse-1"><a href="lists.html#reverse-1">reverse/1</a></li>
<li title="reverse-2"><a href="lists.html#reverse-2">reverse/2</a></li>
<li title="seq-2"><a href="lists.html#seq-2">seq/2</a></li>
<li title="seq-3"><a href="lists.html#seq-3">seq/3</a></li>
<li title="sort-1"><a href="lists.html#sort-1">sort/1</a></li>
<li title="sort-2"><a href="lists.html#sort-2">sort/2</a></li>
<li title="split-2"><a href="lists.html#split-2">split/2</a></li>
<li title="splitwith-2"><a href="lists.html#splitwith-2">splitwith/2</a></li>
<li title="sublist-2"><a href="lists.html#sublist-2">sublist/2</a></li>
<li title="sublist-3"><a href="lists.html#sublist-3">sublist/3</a></li>
<li title="subtract-2"><a href="lists.html#subtract-2">subtract/2</a></li>
<li title="suffix-2"><a href="lists.html#suffix-2">suffix/2</a></li>
<li title="sum-1"><a href="lists.html#sum-1">sum/1</a></li>
<li title="takewhile-2"><a href="lists.html#takewhile-2">takewhile/2</a></li>
<li title="ukeymerge-3"><a href="lists.html#ukeymerge-3">ukeymerge/3</a></li>
<li title="ukeysort-2"><a href="lists.html#ukeysort-2">ukeysort/2</a></li>
<li title="umerge-1"><a href="lists.html#umerge-1">umerge/1</a></li>
<li title="umerge-2"><a href="lists.html#umerge-2">umerge/2</a></li>
<li title="umerge-3"><a href="lists.html#umerge-3">umerge/3</a></li>
<li title="umerge3-3"><a href="lists.html#umerge3-3">umerge3/3</a></li>
<li title="unzip-1"><a href="lists.html#unzip-1">unzip/1</a></li>
<li title="unzip3-1"><a href="lists.html#unzip3-1">unzip3/1</a></li>
<li title="usort-1"><a href="lists.html#usort-1">usort/1</a></li>
<li title="usort-2"><a href="lists.html#usort-2">usort/2</a></li>
<li title="zip-2"><a href="lists.html#zip-2">zip/2</a></li>
<li title="zip3-3"><a href="lists.html#zip3-3">zip3/3</a></li>
<li title="zipwith-3"><a href="lists.html#zipwith-3">zipwith/3</a></li>
<li title="zipwith3-4"><a href="lists.html#zipwith3-4">zipwith3/4</a></li>
</ul>
</li>
<li id="no" title="log_mf_h " expanded="false">log_mf_h<ul>
<li><a href="log_mf_h.html">
                  Top of manual page
                </a></li>
<li title="init-3"><a href="log_mf_h.html#init-3">init/3</a></li>
<li title="init-4"><a href="log_mf_h.html#init-4">init/4</a></li>
</ul>
</li>
<li id="no" title="math " expanded="false">math<ul>
<li><a href="math.html">
                  Top of manual page
                </a></li>
<li title="pi-0"><a href="math.html#pi-0">pi/0</a></li>
<li title="sin-1"><a href="math.html#sin-1">sin/1</a></li>
<li title="cos-1"><a href="math.html#cos-1">cos/1</a></li>
<li title="tan-1"><a href="math.html#tan-1">tan/1</a></li>
<li title="asin-1"><a href="math.html#asin-1">asin/1</a></li>
<li title="acos-1"><a href="math.html#acos-1">acos/1</a></li>
<li title="atan-1"><a href="math.html#atan-1">atan/1</a></li>
<li title="atan2-2"><a href="math.html#atan2-2">atan2/2</a></li>
<li title="sinh-1"><a href="math.html#sinh-1">sinh/1</a></li>
<li title="cosh-1"><a href="math.html#cosh-1">cosh/1</a></li>
<li title="tanh-1"><a href="math.html#tanh-1">tanh/1</a></li>
<li title="asinh-1"><a href="math.html#asinh-1">asinh/1</a></li>
<li title="acosh-1"><a href="math.html#acosh-1">acosh/1</a></li>
<li title="atanh-1"><a href="math.html#atanh-1">atanh/1</a></li>
<li title="exp-1"><a href="math.html#exp-1">exp/1</a></li>
<li title="log-1"><a href="math.html#log-1">log/1</a></li>
<li title="log10-1"><a href="math.html#log10-1">log10/1</a></li>
<li title="pow-2"><a href="math.html#pow-2">pow/2</a></li>
<li title="sqrt-1"><a href="math.html#sqrt-1">sqrt/1</a></li>
<li title="erf-1"><a href="math.html#erf-1">erf/1</a></li>
<li title="erfc-1"><a href="math.html#erfc-1">erfc/1</a></li>
</ul>
</li>
<li id="loadscrollpos" title="ms_transform " expanded="true">ms_transform<ul>
<li><a href="ms_transform.html">
                  Top of manual page
                </a></li>
<li title="parse_transform-2"><a href="ms_transform.html#parse_transform-2">parse_transform/2</a></li>
<li title="transform_from_shell-3"><a href="ms_transform.html#transform_from_shell-3">transform_from_shell/3</a></li>
<li title="format_error-1"><a href="ms_transform.html#format_error-1">format_error/1</a></li>
</ul>
</li>
<li id="no" title="orddict " expanded="false">orddict<ul>
<li><a href="orddict.html">
                  Top of manual page
                </a></li>
<li title="append-3"><a href="orddict.html#append-3">append/3</a></li>
<li title="append_list-3"><a href="orddict.html#append_list-3">append_list/3</a></li>
<li title="erase-2"><a href="orddict.html#erase-2">erase/2</a></li>
<li title="fetch-2"><a href="orddict.html#fetch-2">fetch/2</a></li>
<li title="fetch_keys-1"><a href="orddict.html#fetch_keys-1">fetch_keys/1</a></li>
<li title="filter-2"><a href="orddict.html#filter-2">filter/2</a></li>
<li title="find-2"><a href="orddict.html#find-2">find/2</a></li>
<li title="fold-3"><a href="orddict.html#fold-3">fold/3</a></li>
<li title="from_list-1"><a href="orddict.html#from_list-1">from_list/1</a></li>
<li title="is_key-2"><a href="orddict.html#is_key-2">is_key/2</a></li>
<li title="map-2"><a href="orddict.html#map-2">map/2</a></li>
<li title="merge-3"><a href="orddict.html#merge-3">merge/3</a></li>
<li title="new-0"><a href="orddict.html#new-0">new/0</a></li>
<li title="size-1"><a href="orddict.html#size-1">size/1</a></li>
<li title="store-3"><a href="orddict.html#store-3">store/3</a></li>
<li title="to_list-1"><a href="orddict.html#to_list-1">to_list/1</a></li>
<li title="update-3"><a href="orddict.html#update-3">update/3</a></li>
<li title="update-4"><a href="orddict.html#update-4">update/4</a></li>
<li title="update_counter-3"><a href="orddict.html#update_counter-3">update_counter/3</a></li>
</ul>
</li>
<li id="no" title="ordsets " expanded="false">ordsets<ul>
<li><a href="ordsets.html">
                  Top of manual page
                </a></li>
<li title="new-0"><a href="ordsets.html#new-0">new/0</a></li>
<li title="is_set-1"><a href="ordsets.html#is_set-1">is_set/1</a></li>
<li title="size-1"><a href="ordsets.html#size-1">size/1</a></li>
<li title="to_list-1"><a href="ordsets.html#to_list-1">to_list/1</a></li>
<li title="from_list-1"><a href="ordsets.html#from_list-1">from_list/1</a></li>
<li title="is_element-2"><a href="ordsets.html#is_element-2">is_element/2</a></li>
<li title="add_element-2"><a href="ordsets.html#add_element-2">add_element/2</a></li>
<li title="del_element-2"><a href="ordsets.html#del_element-2">del_element/2</a></li>
<li title="union-2"><a href="ordsets.html#union-2">union/2</a></li>
<li title="union-1"><a href="ordsets.html#union-1">union/1</a></li>
<li title="intersection-2"><a href="ordsets.html#intersection-2">intersection/2</a></li>
<li title="intersection-1"><a href="ordsets.html#intersection-1">intersection/1</a></li>
<li title="is_disjoint-2"><a href="ordsets.html#is_disjoint-2">is_disjoint/2</a></li>
<li title="subtract-2"><a href="ordsets.html#subtract-2">subtract/2</a></li>
<li title="is_subset-2"><a href="ordsets.html#is_subset-2">is_subset/2</a></li>
<li title="fold-3"><a href="ordsets.html#fold-3">fold/3</a></li>
<li title="filter-2"><a href="ordsets.html#filter-2">filter/2</a></li>
</ul>
</li>
<li id="no" title="pg " expanded="false">pg<ul>
<li><a href="pg.html">
                  Top of manual page
                </a></li>
<li title="create-1"><a href="pg.html#create-1">create/1</a></li>
<li title="create-2"><a href="pg.html#create-2">create/2</a></li>
<li title="join-2"><a href="pg.html#join-2">join/2</a></li>
<li title="send-2"><a href="pg.html#send-2">send/2</a></li>
<li title="esend-2"><a href="pg.html#esend-2">esend/2</a></li>
<li title="members-1"><a href="pg.html#members-1">members/1</a></li>
</ul>
</li>
<li id="no" title="pool " expanded="false">pool<ul>
<li><a href="pool.html">
                  Top of manual page
                </a></li>
<li title="start-1"><a href="pool.html#start-1">start/1</a></li>
<li title="start-2"><a href="pool.html#start-2">start/2</a></li>
<li title="attach-1"><a href="pool.html#attach-1">attach/1</a></li>
<li title="stop-0"><a href="pool.html#stop-0">stop/0</a></li>
<li title="get_nodes-0"><a href="pool.html#get_nodes-0">get_nodes/0</a></li>
<li title="pspawn-3"><a href="pool.html#pspawn-3">pspawn/3</a></li>
<li title="pspawn_link-3"><a href="pool.html#pspawn_link-3">pspawn_link/3</a></li>
<li title="get_node-0"><a href="pool.html#get_node-0">get_node/0</a></li>
</ul>
</li>
<li id="no" title="proc_lib " expanded="false">proc_lib<ul>
<li><a href="proc_lib.html">
                  Top of manual page
                </a></li>
<li title="spawn-1"><a href="proc_lib.html#spawn-1">spawn/1</a></li>
<li title="spawn-2"><a href="proc_lib.html#spawn-2">spawn/2</a></li>
<li title="spawn-3"><a href="proc_lib.html#spawn-3">spawn/3</a></li>
<li title="spawn-4"><a href="proc_lib.html#spawn-4">spawn/4</a></li>
<li title="spawn_link-1"><a href="proc_lib.html#spawn_link-1">spawn_link/1</a></li>
<li title="spawn_link-2"><a href="proc_lib.html#spawn_link-2">spawn_link/2</a></li>
<li title="spawn_link-3"><a href="proc_lib.html#spawn_link-3">spawn_link/3</a></li>
<li title="spawn_link-4"><a href="proc_lib.html#spawn_link-4">spawn_link/4</a></li>
<li title="spawn_opt-2"><a href="proc_lib.html#spawn_opt-2">spawn_opt/2</a></li>
<li title="spawn_opt-3"><a href="proc_lib.html#spawn_opt-3">spawn_opt/3</a></li>
<li title="spawn_opt-4"><a href="proc_lib.html#spawn_opt-4">spawn_opt/4</a></li>
<li title="spawn_opt-5"><a href="proc_lib.html#spawn_opt-5">spawn_opt/5</a></li>
<li title="start-3"><a href="proc_lib.html#start-3">start/3</a></li>
<li title="start-4"><a href="proc_lib.html#start-4">start/4</a></li>
<li title="start-5"><a href="proc_lib.html#start-5">start/5</a></li>
<li title="start_link-3"><a href="proc_lib.html#start_link-3">start_link/3</a></li>
<li title="start_link-4"><a href="proc_lib.html#start_link-4">start_link/4</a></li>
<li title="start_link-5"><a href="proc_lib.html#start_link-5">start_link/5</a></li>
<li title="init_ack-1"><a href="proc_lib.html#init_ack-1">init_ack/1</a></li>
<li title="init_ack-2"><a href="proc_lib.html#init_ack-2">init_ack/2</a></li>
<li title="format-1"><a href="proc_lib.html#format-1">format/1</a></li>
<li title="initial_call-1"><a href="proc_lib.html#initial_call-1">initial_call/1</a></li>
<li title="translate_initial_call-1"><a href="proc_lib.html#translate_initial_call-1">translate_initial_call/1</a></li>
<li title="hibernate-3"><a href="proc_lib.html#hibernate-3">hibernate/3</a></li>
</ul>
</li>
<li id="no" title="proplists " expanded="false">proplists<ul>
<li><a href="proplists.html">
                  Top of manual page
                </a></li>
<li title="append_values-2"><a href="proplists.html#append_values-2">append_values/2</a></li>
<li title="compact-1"><a href="proplists.html#compact-1">compact/1</a></li>
<li title="delete-2"><a href="proplists.html#delete-2">delete/2</a></li>
<li title="expand-2"><a href="proplists.html#expand-2">expand/2</a></li>
<li title="get_all_values-2"><a href="proplists.html#get_all_values-2">get_all_values/2</a></li>
<li title="get_bool-2"><a href="proplists.html#get_bool-2">get_bool/2</a></li>
<li title="get_keys-1"><a href="proplists.html#get_keys-1">get_keys/1</a></li>
<li title="get_value-2"><a href="proplists.html#get_value-2">get_value/2</a></li>
<li title="get_value-3"><a href="proplists.html#get_value-3">get_value/3</a></li>
<li title="is_defined-2"><a href="proplists.html#is_defined-2">is_defined/2</a></li>
<li title="lookup-2"><a href="proplists.html#lookup-2">lookup/2</a></li>
<li title="lookup_all-2"><a href="proplists.html#lookup_all-2">lookup_all/2</a></li>
<li title="normalize-2"><a href="proplists.html#normalize-2">normalize/2</a></li>
<li title="property-1"><a href="proplists.html#property-1">property/1</a></li>
<li title="property-2"><a href="proplists.html#property-2">property/2</a></li>
<li title="split-2"><a href="proplists.html#split-2">split/2</a></li>
<li title="substitute_aliases-2"><a href="proplists.html#substitute_aliases-2">substitute_aliases/2</a></li>
<li title="substitute_negations-2"><a href="proplists.html#substitute_negations-2">substitute_negations/2</a></li>
<li title="unfold-1"><a href="proplists.html#unfold-1">unfold/1</a></li>
</ul>
</li>
<li id="no" title="qlc " expanded="false">qlc<ul>
<li><a href="qlc.html">
                  Top of manual page
                </a></li>
<li title="append-1"><a href="qlc.html#append-1">append/1</a></li>
<li title="append-2"><a href="qlc.html#append-2">append/2</a></li>
<li title="cursor-1"><a href="qlc.html#cursor-1">cursor/1</a></li>
<li title="cursor-2"><a href="qlc.html#cursor-2">cursor/2</a></li>
<li title="delete_cursor-1"><a href="qlc.html#delete_cursor-1">delete_cursor/1</a></li>
<li title="eval-1"><a href="qlc.html#eval-1">eval/1</a></li>
<li title="eval-2"><a href="qlc.html#eval-2">eval/2</a></li>
<li title="e-1"><a href="qlc.html#e-1">e/1</a></li>
<li title="e-2"><a href="qlc.html#e-2">e/2</a></li>
<li title="fold-3"><a href="qlc.html#fold-3">fold/3</a></li>
<li title="fold-4"><a href="qlc.html#fold-4">fold/4</a></li>
<li title="format_error-1"><a href="qlc.html#format_error-1">format_error/1</a></li>
<li title="info-1"><a href="qlc.html#info-1">info/1</a></li>
<li title="info-2"><a href="qlc.html#info-2">info/2</a></li>
<li title="keysort-2"><a href="qlc.html#keysort-2">keysort/2</a></li>
<li title="keysort-3"><a href="qlc.html#keysort-3">keysort/3</a></li>
<li title="next_answers-1"><a href="qlc.html#next_answers-1">next_answers/1</a></li>
<li title="next_answers-2"><a href="qlc.html#next_answers-2">next_answers/2</a></li>
<li title="q-1"><a href="qlc.html#q-1">q/1</a></li>
<li title="q-2"><a href="qlc.html#q-2">q/2</a></li>
<li title="sort-1"><a href="qlc.html#sort-1">sort/1</a></li>
<li title="sort-2"><a href="qlc.html#sort-2">sort/2</a></li>
<li title="string_to_handle-1"><a href="qlc.html#string_to_handle-1">string_to_handle/1</a></li>
<li title="string_to_handle-2"><a href="qlc.html#string_to_handle-2">string_to_handle/2</a></li>
<li title="string_to_handle-3"><a href="qlc.html#string_to_handle-3">string_to_handle/3</a></li>
<li title="table-2"><a href="qlc.html#table-2">table/2</a></li>
</ul>
</li>
<li id="no" title="queue " expanded="false">queue<ul>
<li><a href="queue.html">
                  Top of manual page
                </a></li>
<li title="new-0"><a href="queue.html#new-0">new/0</a></li>
<li title="is_queue-1"><a href="queue.html#is_queue-1">is_queue/1</a></li>
<li title="is_empty-1"><a href="queue.html#is_empty-1">is_empty/1</a></li>
<li title="len-1"><a href="queue.html#len-1">len/1</a></li>
<li title="in-2"><a href="queue.html#in-2">in/2</a></li>
<li title="in_r-2"><a href="queue.html#in_r-2">in_r/2</a></li>
<li title="out-1"><a href="queue.html#out-1">out/1</a></li>
<li title="out_r-1"><a href="queue.html#out_r-1">out_r/1</a></li>
<li title="from_list-1"><a href="queue.html#from_list-1">from_list/1</a></li>
<li title="to_list-1"><a href="queue.html#to_list-1">to_list/1</a></li>
<li title="reverse-1"><a href="queue.html#reverse-1">reverse/1</a></li>
<li title="split-2"><a href="queue.html#split-2">split/2</a></li>
<li title="join-2"><a href="queue.html#join-2">join/2</a></li>
<li title="filter-2"><a href="queue.html#filter-2">filter/2</a></li>
<li title="member-2"><a href="queue.html#member-2">member/2</a></li>
<li title="get-1"><a href="queue.html#get-1">get/1</a></li>
<li title="get_r-1"><a href="queue.html#get_r-1">get_r/1</a></li>
<li title="drop-1"><a href="queue.html#drop-1">drop/1</a></li>
<li title="drop_r-1"><a href="queue.html#drop_r-1">drop_r/1</a></li>
<li title="peek-1"><a href="queue.html#peek-1">peek/1</a></li>
<li title="peek_r-1"><a href="queue.html#peek_r-1">peek_r/1</a></li>
<li title="cons-2"><a href="queue.html#cons-2">cons/2</a></li>
<li title="head-1"><a href="queue.html#head-1">head/1</a></li>
<li title="tail-1"><a href="queue.html#tail-1">tail/1</a></li>
<li title="snoc-2"><a href="queue.html#snoc-2">snoc/2</a></li>
<li title="daeh-1"><a href="queue.html#daeh-1">daeh/1</a></li>
<li title="last-1"><a href="queue.html#last-1">last/1</a></li>
<li title="liat-1"><a href="queue.html#liat-1">liat/1</a></li>
<li title="init-1"><a href="queue.html#init-1">init/1</a></li>
<li title="lait-1"><a href="queue.html#lait-1">lait/1</a></li>
</ul>
</li>
<li id="no" title="random " expanded="false">random<ul>
<li><a href="random.html">
                  Top of manual page
                </a></li>
<li title="seed-0"><a href="random.html#seed-0">seed/0</a></li>
<li title="seed-3"><a href="random.html#seed-3">seed/3</a></li>
<li title="seed-1"><a href="random.html#seed-1">seed/1</a></li>
<li title="seed0-0"><a href="random.html#seed0-0">seed0/0</a></li>
<li title="uniform-0"><a href="random.html#uniform-0">uniform/0</a></li>
<li title="uniform-1"><a href="random.html#uniform-1">uniform/1</a></li>
<li title="uniform_s-1"><a href="random.html#uniform_s-1">uniform_s/1</a></li>
<li title="uniform_s-2"><a href="random.html#uniform_s-2">uniform_s/2</a></li>
</ul>
</li>
<li id="no" title="re " expanded="false">re<ul>
<li><a href="re.html">
                  Top of manual page
                </a></li>
<li title="compile-1"><a href="re.html#compile-1">compile/1</a></li>
<li title="compile-2"><a href="re.html#compile-2">compile/2</a></li>
<li title="run-2"><a href="re.html#run-2">run/2</a></li>
<li title="run-3"><a href="re.html#run-3">run/3</a></li>
<li title="replace-3"><a href="re.html#replace-3">replace/3</a></li>
<li title="replace-4"><a href="re.html#replace-4">replace/4</a></li>
<li title="split-2"><a href="re.html#split-2">split/2</a></li>
<li title="split-3"><a href="re.html#split-3">split/3</a></li>
</ul>
</li>
<li id="no" title="sets " expanded="false">sets<ul>
<li><a href="sets.html">
                  Top of manual page
                </a></li>
<li title="new-0"><a href="sets.html#new-0">new/0</a></li>
<li title="is_set-1"><a href="sets.html#is_set-1">is_set/1</a></li>
<li title="size-1"><a href="sets.html#size-1">size/1</a></li>
<li title="to_list-1"><a href="sets.html#to_list-1">to_list/1</a></li>
<li title="from_list-1"><a href="sets.html#from_list-1">from_list/1</a></li>
<li title="is_element-2"><a href="sets.html#is_element-2">is_element/2</a></li>
<li title="add_element-2"><a href="sets.html#add_element-2">add_element/2</a></li>
<li title="del_element-2"><a href="sets.html#del_element-2">del_element/2</a></li>
<li title="union-2"><a href="sets.html#union-2">union/2</a></li>
<li title="union-1"><a href="sets.html#union-1">union/1</a></li>
<li title="intersection-2"><a href="sets.html#intersection-2">intersection/2</a></li>
<li title="intersection-1"><a href="sets.html#intersection-1">intersection/1</a></li>
<li title="is_disjoint-2"><a href="sets.html#is_disjoint-2">is_disjoint/2</a></li>
<li title="subtract-2"><a href="sets.html#subtract-2">subtract/2</a></li>
<li title="is_subset-2"><a href="sets.html#is_subset-2">is_subset/2</a></li>
<li title="fold-3"><a href="sets.html#fold-3">fold/3</a></li>
<li title="filter-2"><a href="sets.html#filter-2">filter/2</a></li>
</ul>
</li>
<li id="no" title="shell " expanded="false">shell<ul>
<li><a href="shell.html">
                  Top of manual page
                </a></li>
<li title="history-1"><a href="shell.html#history-1">history/1</a></li>
<li title="results-1"><a href="shell.html#results-1">results/1</a></li>
<li title="catch_exception-1"><a href="shell.html#catch_exception-1">catch_exception/1</a></li>
<li title="prompt_func-1"><a href="shell.html#prompt_func-1">prompt_func/1</a></li>
<li title="start_restricted-1"><a href="shell.html#start_restricted-1">start_restricted/1</a></li>
<li title="stop_restricted-0"><a href="shell.html#stop_restricted-0">stop_restricted/0</a></li>
</ul>
</li>
<li title="shell_default"><a href="shell_default.html">shell_default</a></li>
<li id="no" title="slave " expanded="false">slave<ul>
<li><a href="slave.html">
                  Top of manual page
                </a></li>
<li title="start-1"><a href="slave.html#start-1">start/1</a></li>
<li title="start-2"><a href="slave.html#start-2">start/2</a></li>
<li title="start-3"><a href="slave.html#start-3">start/3</a></li>
<li title="start_link-1"><a href="slave.html#start_link-1">start_link/1</a></li>
<li title="start_link-2"><a href="slave.html#start_link-2">start_link/2</a></li>
<li title="start_link-3"><a href="slave.html#start_link-3">start_link/3</a></li>
<li title="stop-1"><a href="slave.html#stop-1">stop/1</a></li>
<li title="pseudo-1"><a href="slave.html#pseudo-1">pseudo/1</a></li>
<li title="pseudo-2"><a href="slave.html#pseudo-2">pseudo/2</a></li>
<li title="relay-1"><a href="slave.html#relay-1">relay/1</a></li>
</ul>
</li>
<li id="no" title="sofs " expanded="false">sofs<ul>
<li><a href="sofs.html">
                  Top of manual page
                </a></li>
<li title="a_function-1"><a href="sofs.html#a_function-1">a_function/1</a></li>
<li title="a_function-2"><a href="sofs.html#a_function-2">a_function/2</a></li>
<li title="canonical_relation-1"><a href="sofs.html#canonical_relation-1">canonical_relation/1</a></li>
<li title="composite-2"><a href="sofs.html#composite-2">composite/2</a></li>
<li title="constant_function-2"><a href="sofs.html#constant_function-2">constant_function/2</a></li>
<li title="converse-1"><a href="sofs.html#converse-1">converse/1</a></li>
<li title="difference-2"><a href="sofs.html#difference-2">difference/2</a></li>
<li title="digraph_to_family-1"><a href="sofs.html#digraph_to_family-1">digraph_to_family/1</a></li>
<li title="digraph_to_family-2"><a href="sofs.html#digraph_to_family-2">digraph_to_family/2</a></li>
<li title="domain-1"><a href="sofs.html#domain-1">domain/1</a></li>
<li title="drestriction-2"><a href="sofs.html#drestriction-2">drestriction/2</a></li>
<li title="drestriction-3"><a href="sofs.html#drestriction-3">drestriction/3</a></li>
<li title="empty_set-0"><a href="sofs.html#empty_set-0">empty_set/0</a></li>
<li title="extension-3"><a href="sofs.html#extension-3">extension/3</a></li>
<li title="family-1"><a href="sofs.html#family-1">family/1</a></li>
<li title="family-2"><a href="sofs.html#family-2">family/2</a></li>
<li title="family_difference-2"><a href="sofs.html#family_difference-2">family_difference/2</a></li>
<li title="family_domain-1"><a href="sofs.html#family_domain-1">family_domain/1</a></li>
<li title="family_field-1"><a href="sofs.html#family_field-1">family_field/1</a></li>
<li title="family_intersection-1"><a href="sofs.html#family_intersection-1">family_intersection/1</a></li>
<li title="family_intersection-2"><a href="sofs.html#family_intersection-2">family_intersection/2</a></li>
<li title="family_projection-2"><a href="sofs.html#family_projection-2">family_projection/2</a></li>
<li title="family_range-1"><a href="sofs.html#family_range-1">family_range/1</a></li>
<li title="family_specification-2"><a href="sofs.html#family_specification-2">family_specification/2</a></li>
<li title="family_to_digraph-1"><a href="sofs.html#family_to_digraph-1">family_to_digraph/1</a></li>
<li title="family_to_digraph-2"><a href="sofs.html#family_to_digraph-2">family_to_digraph/2</a></li>
<li title="family_to_relation-1"><a href="sofs.html#family_to_relation-1">family_to_relation/1</a></li>
<li title="family_union-1"><a href="sofs.html#family_union-1">family_union/1</a></li>
<li title="family_union-2"><a href="sofs.html#family_union-2">family_union/2</a></li>
<li title="field-1"><a href="sofs.html#field-1">field/1</a></li>
<li title="from_external-2"><a href="sofs.html#from_external-2">from_external/2</a></li>
<li title="from_sets-1"><a href="sofs.html#from_sets-1">from_sets/1</a></li>
<li title="from_term-1"><a href="sofs.html#from_term-1">from_term/1</a></li>
<li title="from_term-2"><a href="sofs.html#from_term-2">from_term/2</a></li>
<li title="image-2"><a href="sofs.html#image-2">image/2</a></li>
<li title="intersection-1"><a href="sofs.html#intersection-1">intersection/1</a></li>
<li title="intersection-2"><a href="sofs.html#intersection-2">intersection/2</a></li>
<li title="intersection_of_family-1"><a href="sofs.html#intersection_of_family-1">intersection_of_family/1</a></li>
<li title="inverse-1"><a href="sofs.html#inverse-1">inverse/1</a></li>
<li title="inverse_image-2"><a href="sofs.html#inverse_image-2">inverse_image/2</a></li>
<li title="is_a_function-1"><a href="sofs.html#is_a_function-1">is_a_function/1</a></li>
<li title="is_disjoint-2"><a href="sofs.html#is_disjoint-2">is_disjoint/2</a></li>
<li title="is_empty_set-1"><a href="sofs.html#is_empty_set-1">is_empty_set/1</a></li>
<li title="is_equal-2"><a href="sofs.html#is_equal-2">is_equal/2</a></li>
<li title="is_set-1"><a href="sofs.html#is_set-1">is_set/1</a></li>
<li title="is_sofs_set-1"><a href="sofs.html#is_sofs_set-1">is_sofs_set/1</a></li>
<li title="is_subset-2"><a href="sofs.html#is_subset-2">is_subset/2</a></li>
<li title="is_type-1"><a href="sofs.html#is_type-1">is_type/1</a></li>
<li title="join-4"><a href="sofs.html#join-4">join/4</a></li>
<li title="multiple_relative_product-2"><a href="sofs.html#multiple_relative_product-2">multiple_relative_product/2</a></li>
<li title="no_elements-1"><a href="sofs.html#no_elements-1">no_elements/1</a></li>
<li title="partition-1"><a href="sofs.html#partition-1">partition/1</a></li>
<li title="partition-2"><a href="sofs.html#partition-2">partition/2</a></li>
<li title="partition-3"><a href="sofs.html#partition-3">partition/3</a></li>
<li title="partition_family-2"><a href="sofs.html#partition_family-2">partition_family/2</a></li>
<li title="product-1"><a href="sofs.html#product-1">product/1</a></li>
<li title="product-2"><a href="sofs.html#product-2">product/2</a></li>
<li title="projection-2"><a href="sofs.html#projection-2">projection/2</a></li>
<li title="range-1"><a href="sofs.html#range-1">range/1</a></li>
<li title="relation-1"><a href="sofs.html#relation-1">relation/1</a></li>
<li title="relation-2"><a href="sofs.html#relation-2">relation/2</a></li>
<li title="relation_to_family-1"><a href="sofs.html#relation_to_family-1">relation_to_family/1</a></li>
<li title="relative_product-1"><a href="sofs.html#relative_product-1">relative_product/1</a></li>
<li title="relative_product-2"><a href="sofs.html#relative_product-2">relative_product/2</a></li>
<li title="relative_product1-2"><a href="sofs.html#relative_product1-2">relative_product1/2</a></li>
<li title="restriction-2"><a href="sofs.html#restriction-2">restriction/2</a></li>
<li title="restriction-3"><a href="sofs.html#restriction-3">restriction/3</a></li>
<li title="set-1"><a href="sofs.html#set-1">set/1</a></li>
<li title="set-2"><a href="sofs.html#set-2">set/2</a></li>
<li title="specification-2"><a href="sofs.html#specification-2">specification/2</a></li>
<li title="strict_relation-1"><a href="sofs.html#strict_relation-1">strict_relation/1</a></li>
<li title="substitution-2"><a href="sofs.html#substitution-2">substitution/2</a></li>
<li title="symdiff-2"><a href="sofs.html#symdiff-2">symdiff/2</a></li>
<li title="symmetric_partition-2"><a href="sofs.html#symmetric_partition-2">symmetric_partition/2</a></li>
<li title="to_external-1"><a href="sofs.html#to_external-1">to_external/1</a></li>
<li title="to_sets-1"><a href="sofs.html#to_sets-1">to_sets/1</a></li>
<li title="type-1"><a href="sofs.html#type-1">type/1</a></li>
<li title="union-1"><a href="sofs.html#union-1">union/1</a></li>
<li title="union-2"><a href="sofs.html#union-2">union/2</a></li>
<li title="union_of_family-1"><a href="sofs.html#union_of_family-1">union_of_family/1</a></li>
<li title="weak_relation-1"><a href="sofs.html#weak_relation-1">weak_relation/1</a></li>
</ul>
</li>
<li id="no" title="string " expanded="false">string<ul>
<li><a href="string.html">
                  Top of manual page
                </a></li>
<li title="len-1"><a href="string.html#len-1">len/1</a></li>
<li title="equal-2"><a href="string.html#equal-2">equal/2</a></li>
<li title="concat-2"><a href="string.html#concat-2">concat/2</a></li>
<li title="chr-2"><a href="string.html#chr-2">chr/2</a></li>
<li title="rchr-2"><a href="string.html#rchr-2">rchr/2</a></li>
<li title="str-2"><a href="string.html#str-2">str/2</a></li>
<li title="rstr-2"><a href="string.html#rstr-2">rstr/2</a></li>
<li title="span-2"><a href="string.html#span-2">span/2</a></li>
<li title="cspan-2"><a href="string.html#cspan-2">cspan/2</a></li>
<li title="substr-2"><a href="string.html#substr-2">substr/2</a></li>
<li title="substr-3"><a href="string.html#substr-3">substr/3</a></li>
<li title="tokens-2"><a href="string.html#tokens-2">tokens/2</a></li>
<li title="join-2"><a href="string.html#join-2">join/2</a></li>
<li title="chars-2"><a href="string.html#chars-2">chars/2</a></li>
<li title="chars-3"><a href="string.html#chars-3">chars/3</a></li>
<li title="copies-2"><a href="string.html#copies-2">copies/2</a></li>
<li title="words-1"><a href="string.html#words-1">words/1</a></li>
<li title="words-2"><a href="string.html#words-2">words/2</a></li>
<li title="sub_word-2"><a href="string.html#sub_word-2">sub_word/2</a></li>
<li title="sub_word-3"><a href="string.html#sub_word-3">sub_word/3</a></li>
<li title="strip-1"><a href="string.html#strip-1">strip/1</a></li>
<li title="strip-2"><a href="string.html#strip-2">strip/2</a></li>
<li title="strip-3"><a href="string.html#strip-3">strip/3</a></li>
<li title="left-2"><a href="string.html#left-2">left/2</a></li>
<li title="left-3"><a href="string.html#left-3">left/3</a></li>
<li title="right-2"><a href="string.html#right-2">right/2</a></li>
<li title="right-3"><a href="string.html#right-3">right/3</a></li>
<li title="centre-2"><a href="string.html#centre-2">centre/2</a></li>
<li title="centre-3"><a href="string.html#centre-3">centre/3</a></li>
<li title="sub_string-2"><a href="string.html#sub_string-2">sub_string/2</a></li>
<li title="sub_string-3"><a href="string.html#sub_string-3">sub_string/3</a></li>
<li title="to_float-1"><a href="string.html#to_float-1">to_float/1</a></li>
<li title="to_integer-1"><a href="string.html#to_integer-1">to_integer/1</a></li>
<li title="to_lower-1"><a href="string.html#to_lower-1">to_lower/1</a></li>
<li title="to_upper-1"><a href="string.html#to_upper-1">to_upper/1</a></li>
</ul>
</li>
<li id="no" title="supervisor " expanded="false">supervisor<ul>
<li><a href="supervisor.html">
                  Top of manual page
                </a></li>
<li title="start_link-2"><a href="supervisor.html#start_link-2">start_link/2</a></li>
<li title="start_link-3"><a href="supervisor.html#start_link-3">start_link/3</a></li>
<li title="start_child-2"><a href="supervisor.html#start_child-2">start_child/2</a></li>
<li title="terminate_child-2"><a href="supervisor.html#terminate_child-2">terminate_child/2</a></li>
<li title="delete_child-2"><a href="supervisor.html#delete_child-2">delete_child/2</a></li>
<li title="restart_child-2"><a href="supervisor.html#restart_child-2">restart_child/2</a></li>
<li title="which_children-1"><a href="supervisor.html#which_children-1">which_children/1</a></li>
<li title="count_children-1"><a href="supervisor.html#count_children-1">count_children/1</a></li>
<li title="check_childspecs-1"><a href="supervisor.html#check_childspecs-1">check_childspecs/1</a></li>
<li title="Module:init-1"><a href="supervisor.html#Module:init-1">Module:init/1</a></li>
</ul>
</li>
<li id="no" title="supervisor_bridge " expanded="false">supervisor_bridge<ul>
<li><a href="supervisor_bridge.html">
                  Top of manual page
                </a></li>
<li title="start_link-2"><a href="supervisor_bridge.html#start_link-2">start_link/2</a></li>
<li title="start_link-3"><a href="supervisor_bridge.html#start_link-3">start_link/3</a></li>
<li title="Module:init-1"><a href="supervisor_bridge.html#Module:init-1">Module:init/1</a></li>
<li title="Module:terminate-2"><a href="supervisor_bridge.html#Module:terminate-2">Module:terminate/2</a></li>
</ul>
</li>
<li id="no" title="sys " expanded="false">sys<ul>
<li><a href="sys.html">
                  Top of manual page
                </a></li>
<li title="log-2"><a href="sys.html#log-2">log/2</a></li>
<li title="log-3"><a href="sys.html#log-3">log/3</a></li>
<li title="log_to_file-2"><a href="sys.html#log_to_file-2">log_to_file/2</a></li>
<li title="log_to_file-3"><a href="sys.html#log_to_file-3">log_to_file/3</a></li>
<li title="statistics-2"><a href="sys.html#statistics-2">statistics/2</a></li>
<li title="statistics-3"><a href="sys.html#statistics-3">statistics/3</a></li>
<li title="trace-2"><a href="sys.html#trace-2">trace/2</a></li>
<li title="trace-3"><a href="sys.html#trace-3">trace/3</a></li>
<li title="no_debug-1"><a href="sys.html#no_debug-1">no_debug/1</a></li>
<li title="no_debug-2"><a href="sys.html#no_debug-2">no_debug/2</a></li>
<li title="suspend-1"><a href="sys.html#suspend-1">suspend/1</a></li>
<li title="suspend-2"><a href="sys.html#suspend-2">suspend/2</a></li>
<li title="resume-1"><a href="sys.html#resume-1">resume/1</a></li>
<li title="resume-2"><a href="sys.html#resume-2">resume/2</a></li>
<li title="change_code-4"><a href="sys.html#change_code-4">change_code/4</a></li>
<li title="change_code-5"><a href="sys.html#change_code-5">change_code/5</a></li>
<li title="get_status-1"><a href="sys.html#get_status-1">get_status/1</a></li>
<li title="get_status-2"><a href="sys.html#get_status-2">get_status/2</a></li>
<li title="install-2"><a href="sys.html#install-2">install/2</a></li>
<li title="install-3"><a href="sys.html#install-3">install/3</a></li>
<li title="remove-2"><a href="sys.html#remove-2">remove/2</a></li>
<li title="remove-3"><a href="sys.html#remove-3">remove/3</a></li>
<li title="debug_options-1"><a href="sys.html#debug_options-1">debug_options/1</a></li>
<li title="get_debug-3"><a href="sys.html#get_debug-3">get_debug/3</a></li>
<li title="handle_debug-4"><a href="sys.html#handle_debug-4">handle_debug/4</a></li>
<li title="handle_system_msg-6"><a href="sys.html#handle_system_msg-6">handle_system_msg/6</a></li>
<li title="print_log-1"><a href="sys.html#print_log-1">print_log/1</a></li>
<li title="Mod:system_continue-3"><a href="sys.html#Mod:system_continue-3">Mod:system_continue/3</a></li>
<li title="Mod:system_terminate-4"><a href="sys.html#Mod:system_terminate-4">Mod:system_terminate/4</a></li>
<li title="Mod:system_code_change-4"><a href="sys.html#Mod:system_code_change-4">Mod:system_code_change/4</a></li>
</ul>
</li>
<li id="no" title="timer " expanded="false">timer<ul>
<li><a href="timer.html">
                  Top of manual page
                </a></li>
<li title="start-0"><a href="timer.html#start-0">start/0</a></li>
<li title="apply_after-4"><a href="timer.html#apply_after-4">apply_after/4</a></li>
<li title="send_after-2"><a href="timer.html#send_after-2">send_after/2</a></li>
<li title="send_after-3"><a href="timer.html#send_after-3">send_after/3</a></li>
<li title="kill_after-1"><a href="timer.html#kill_after-1">kill_after/1</a></li>
<li title="kill_after-2"><a href="timer.html#kill_after-2">kill_after/2</a></li>
<li title="exit_after-2"><a href="timer.html#exit_after-2">exit_after/2</a></li>
<li title="exit_after-3"><a href="timer.html#exit_after-3">exit_after/3</a></li>
<li title="apply_interval-4"><a href="timer.html#apply_interval-4">apply_interval/4</a></li>
<li title="send_interval-2"><a href="timer.html#send_interval-2">send_interval/2</a></li>
<li title="send_interval-3"><a href="timer.html#send_interval-3">send_interval/3</a></li>
<li title="cancel-1"><a href="timer.html#cancel-1">cancel/1</a></li>
<li title="sleep-1"><a href="timer.html#sleep-1">sleep/1</a></li>
<li title="tc-1"><a href="timer.html#tc-1">tc/1</a></li>
<li title="tc-2"><a href="timer.html#tc-2">tc/2</a></li>
<li title="tc-3"><a href="timer.html#tc-3">tc/3</a></li>
<li title="now_diff-2"><a href="timer.html#now_diff-2">now_diff/2</a></li>
<li title="seconds-1"><a href="timer.html#seconds-1">seconds/1</a></li>
<li title="minutes-1"><a href="timer.html#minutes-1">minutes/1</a></li>
<li title="hours-1"><a href="timer.html#hours-1">hours/1</a></li>
<li title="hms-3"><a href="timer.html#hms-3">hms/3</a></li>
</ul>
</li>
<li id="no" title="unicode " expanded="false">unicode<ul>
<li><a href="unicode.html">
                  Top of manual page
                </a></li>
<li title="bom_to_encoding-1"><a href="unicode.html#bom_to_encoding-1">bom_to_encoding/1</a></li>
<li title="characters_to_list-1"><a href="unicode.html#characters_to_list-1">characters_to_list/1</a></li>
<li title="characters_to_list-2"><a href="unicode.html#characters_to_list-2">characters_to_list/2</a></li>
<li title="characters_to_binary-1"><a href="unicode.html#characters_to_binary-1">characters_to_binary/1</a></li>
<li title="characters_to_binary-2"><a href="unicode.html#characters_to_binary-2">characters_to_binary/2</a></li>
<li title="characters_to_binary-3"><a href="unicode.html#characters_to_binary-3">characters_to_binary/3</a></li>
<li title="encoding_to_bom-1"><a href="unicode.html#encoding_to_bom-1">encoding_to_bom/1</a></li>
</ul>
</li>
<li id="no" title="win32reg " expanded="false">win32reg<ul>
<li><a href="win32reg.html">
                  Top of manual page
                </a></li>
<li title="change_key-2"><a href="win32reg.html#change_key-2">change_key/2</a></li>
<li title="change_key_create-2"><a href="win32reg.html#change_key_create-2">change_key_create/2</a></li>
<li title="close-1"><a href="win32reg.html#close-1">close/1</a></li>
<li title="current_key-1"><a href="win32reg.html#current_key-1">current_key/1</a></li>
<li title="delete_key-1"><a href="win32reg.html#delete_key-1">delete_key/1</a></li>
<li title="delete_value-2"><a href="win32reg.html#delete_value-2">delete_value/2</a></li>
<li title="expand-1"><a href="win32reg.html#expand-1">expand/1</a></li>
<li title="format_error-1"><a href="win32reg.html#format_error-1">format_error/1</a></li>
<li title="open-1"><a href="win32reg.html#open-1">open/1</a></li>
<li title="set_value-3"><a href="win32reg.html#set_value-3">set_value/3</a></li>
<li title="sub_keys-1"><a href="win32reg.html#sub_keys-1">sub_keys/1</a></li>
<li title="value-2"><a href="win32reg.html#value-2">value/2</a></li>
<li title="values-1"><a href="win32reg.html#values-1">values/1</a></li>
</ul>
</li>
<li id="no" title="zip " expanded="false">zip<ul>
<li><a href="zip.html">
                  Top of manual page
                </a></li>
<li title="zip-2"><a href="zip.html#zip-2">zip/2</a></li>
<li title="zip-3"><a href="zip.html#zip-3">zip/3</a></li>
<li title="create-2"><a href="zip.html#create-2">create/2</a></li>
<li title="create-3"><a href="zip.html#create-3">create/3</a></li>
<li title="unzip-1"><a href="zip.html#unzip-1">unzip/1</a></li>
<li title="unzip-2"><a href="zip.html#unzip-2">unzip/2</a></li>
<li title="extract-1"><a href="zip.html#extract-1">extract/1</a></li>
<li title="extract-2"><a href="zip.html#extract-2">extract/2</a></li>
<li title="foldl-3"><a href="zip.html#foldl-3">foldl/3</a></li>
<li title="list_dir-1"><a href="zip.html#list_dir-1">list_dir/1</a></li>
<li title="list_dir-2"><a href="zip.html#list_dir-2">list_dir/2</a></li>
<li title="table-1"><a href="zip.html#table-1">table/1</a></li>
<li title="table-2"><a href="zip.html#table-2">table/2</a></li>
<li title="t-1"><a href="zip.html#t-1">t/1</a></li>
<li title="tt-1"><a href="zip.html#tt-1">tt/1</a></li>
<li title="zip_open-1"><a href="zip.html#zip_open-1">zip_open/1</a></li>
<li title="zip_open-2"><a href="zip.html#zip_open-2">zip_open/2</a></li>
<li title="zip_list_dir-1"><a href="zip.html#zip_list_dir-1">zip_list_dir/1</a></li>
<li title="zip_get-1"><a href="zip.html#zip_get-1">zip_get/1</a></li>
<li title="zip_get-2"><a href="zip.html#zip_get-2">zip_get/2</a></li>
<li title="zip_close-1"><a href="zip.html#zip_close-1">zip_close/1</a></li>
</ul>
</li>
</ul>
</div></div>
<div id="content">
<div class="innertube">
<!-- refpage --><center><h1>ms_transform</h1></center>
  
  <h3>MODULE</h3>
<div class="REFBODY">ms_transform</div>
  <h3>MODULE SUMMARY</h3>
<div class="REFBODY">Parse_transform that translates fun syntax into match specifications. </div>
  <h3>DESCRIPTION</h3>
<div class="REFBODY"><p>
    <a name="top"></a>
    <p>This module implements the parse_transform that makes calls to
      <span class="code">ets</span> and <span class="code">dbg</span>:<span class="code">fun2ms/1</span> translate into literal
      match specifications. It also implements the back end for the same
      functions when called from the Erlang shell.</p>
    <p>The translations from fun's to match_specs 
      is accessed through the two "pseudo
      functions" <span class="code">ets:fun2ms/1</span> and <span class="code">dbg:fun2ms/1</span>.</p>
    <p>Actually this introduction is more or less an introduction to the
      whole concept of match specifications. Since everyone trying to use
      <span class="code">ets:select</span> or <span class="code">dbg</span> seems to end up reading
      this page, it seems in good place to explain a little more than
      just what this module does.</p>
    <p>There are some caveats one should be aware of, please read through
      the whole manual page if it's the first time you're using the
      transformations. </p>
    <p>Match specifications are used more or less as filters. 
      They resemble usual Erlang matching in a list comprehension or in
      a <span class="code">fun</span> used in conjunction with <span class="code">lists:foldl</span> etc. The
      syntax of pure match specifications is somewhat awkward though, as
      they are made up purely by Erlang terms and there is no syntax in the
      language to make the match specifications more readable.</p>
    <p>As the match specifications execution and structure is quite like
      that of a fun, it would for most programmers be more straight forward
      to simply write it using the familiar fun syntax and having that
      translated into a match specification automatically. Of course a real
      fun is more powerful than the match specifications allow, but bearing
      the match specifications in mind, and what they can do, it's still
      more convenient to write it all as a fun. This module contains the
      code that simply translates the fun syntax into match_spec terms.</p>
    <p>Let's start with an ets example. Using <span class="code">ets:select</span> and
      a match specification, one can filter out rows of a table and construct
      a list of tuples containing relevant parts of the data in these
      rows. Of course one could use <span class="code">ets:foldl</span> instead, but the
      select call is far more efficient. Without the translation, one has to
      struggle with writing match specifications terms to accommodate this,
      or one has to resort to the less powerful
      <span class="code">ets:match(_object)</span> calls, or simply give up and use
      the more inefficient method of <span class="code">ets:foldl</span>. Using the
      <span class="code">ets:fun2ms</span> transformation, a <span class="code">ets:select</span> call
      is at least as easy to write as any of the alternatives.</p>
    <p>As an example, consider a simple table of employees:</p>
    <div class="example"><pre>
-record(emp, {empno,     %Employee number as a string, the key
              surname,   %Surname of the employee
              givenname, %Given name of employee
              dept,      %Department one of {dev,sales,prod,adm}
              empyear}). %Year the employee was employed    </pre></div>
    <p>We create the table using:</p>
    <div class="example"><pre>
ets:new(emp_tab,[{keypos,#emp.empno},named_table,ordered_set]).    </pre></div>
    <p>Let's also fill it with some randomly chosen data for the examples:</p>
    <div class="example"><pre>
[{emp,"011103","Black","Alfred",sales,2000},
 {emp,"041231","Doe","John",prod,2001},
 {emp,"052341","Smith","John",dev,1997},
 {emp,"076324","Smith","Ella",sales,1995},
 {emp,"122334","Weston","Anna",prod,2002},
 {emp,"535216","Chalker","Samuel",adm,1998},
 {emp,"789789","Harrysson","Joe",adm,1996},
 {emp,"963721","Scott","Juliana",dev,2003},
 {emp,"989891","Brown","Gabriel",prod,1999}]    </pre></div>
    <p>Now, the amount of data in the table is of course to small to justify
      complicated ets searches, but on real tables, using <span class="code">select</span> to get
      exactly the data you want will increase efficiency remarkably.</p>
    <p>Lets say for example that we'd want the employee numbers of
      everyone in the sales department. One might use <span class="code">ets:match</span>
      in such a situation:</p>
    <div class="example"><pre>
1&gt; <span class="bold_code">ets:match(emp_tab, {'_', '$1', '_', '_', sales, '_'}).</span>
[["011103"],["076324"]]    </pre></div>
    <p>Even though <span class="code">ets:match</span> does not require a full match
      specification, but a simpler type, it's still somewhat unreadable, and
      one has little control over the returned result, it's always a list of
      lists. OK, one might use <span class="code">ets:foldl</span> or
      <span class="code">ets:foldr</span> instead:</p>
    <div class="example"><pre>
ets:foldr(fun(#emp{empno = E, dept = sales},Acc) -&gt; [E | Acc];
             (_,Acc) -&gt; Acc
          end,
          [],
          emp_tab).    </pre></div>
    <p>Running that would result in <span class="code">["011103","076324"]</span>
      , which at least gets rid of the extra lists. The fun is also quite
      straightforward, so the only problem is that all the data from the
      table has to be transferred from the table to the calling process for
      filtering. That's inefficient compared to the <span class="code">ets:match</span>
      call where the filtering can be done "inside" the emulator and only
      the result is transferred to the process. Remember that ets tables are
      all about efficiency, if it wasn't for efficiency all of ets could be
      implemented in Erlang, as a process receiving requests and sending
      answers back. One uses ets because one wants performance, and
      therefore one wouldn't want all of the table transferred to the
      process for filtering. OK, let's look at a pure
      <span class="code">ets:select</span> call that does what the <span class="code">ets:foldr</span>
      does:</p>
    <div class="example"><pre>
ets:select(emp_tab,[{#emp{empno = '$1', dept = sales, _='_'},[],['$1']}]).    </pre></div>
    <p>Even though the record syntax is used, it's still somewhat hard to
      read and even harder to write. The first element of the tuple,
      <span class="code">#emp{empno = '$1', dept = sales, _='_'}</span> tells what to
      match, elements not matching this will not be returned at all, as in
      the <span class="code">ets:match</span> example. The second element, the empty list
      is a list of guard expressions, which we need none, and the third
      element is the list of expressions constructing the return value (in
      ets this almost always is a list containing one single term). In our
      case <span class="code">'$1'</span> is bound to the employee number in the head
      (first element of tuple), and hence it is the employee number that is
      returned. The result is <span class="code">["011103","076324"]</span>, just as in
      the <span class="code">ets:foldr</span> example, but the result is retrieved much
      more efficiently in terms of execution speed and memory consumption.</p>
    <p>We have one efficient but hardly readable way of doing it and one
      inefficient but fairly readable (at least to the skilled Erlang
      programmer) way of doing it. With the use of <span class="code">ets:fun2ms</span>,
      one could have something that is as efficient as possible but still is
      written as a filter using the fun syntax:</p>
    <div class="example"><pre>
-include_lib("stdlib/include/ms_transform.hrl").

% ...

ets:select(emp_tab, ets:fun2ms(
                      fun(#emp{empno = E, dept = sales}) -&gt;
                              E
                      end)).    </pre></div>
    <p>This may not be the shortest of the expressions, but it requires no
      special knowledge of match specifications to read. The fun's head
      should simply match what you want to filter out and the body returns
      what you want returned. As long as the fun can be kept within the
      limits of the match specifications, there is no need to transfer all
      data of the table to the process for filtering as in the
      <span class="code">ets:foldr</span> example. In fact it's even easier to read then
      the <span class="code">ets:foldr</span> example, as the select call in itself
      discards anything that doesn't match, while the fun of the
      <span class="code">foldr</span> call needs to handle both the elements matching and
      the ones not matching.</p>
    <p>It's worth noting in the above <span class="code">ets:fun2ms</span> example that one
      needs to include <span class="code">ms_transform.hrl</span> in the source code, as this is
      what triggers the parse transformation of the <span class="code">ets:fun2ms</span> call
      to a valid match specification. This also implies that the
      transformation is done at compile time (except when called from the
      shell of course) and therefore will take no resources at all in
      runtime. So although you use the more intuitive fun syntax, it gets as
      efficient in runtime as writing match specifications by hand.</p>
    <p>Let's look at some more <span class="code">ets</span> examples. Let's say one
      wants to get all the employee numbers of any employee hired before the
      year 2000. Using <span class="code">ets:match</span> isn't an alternative here as
      relational operators cannot be expressed there. Once again, an
      <span class="code">ets:foldr</span> could do it (slowly, but correct):</p>
    <div class="example"><pre>
ets:foldr(fun(#emp{empno = E, empyear = Y},Acc) when Y &lt; 2000 -&gt; [E | Acc];
                  (_,Acc) -&gt; Acc
          end,
          [],
          emp_tab).    </pre></div>
    <p>The result will be
      <span class="code">["052341","076324","535216","789789","989891"]</span>, as
      expected. Now the equivalent expression using a handwritten match
      specification would look something like this:</p>
    <div class="example"><pre>
ets:select(emp_tab,[{#emp{empno = '$1', empyear = '$2', _='_'},
                     [{'&lt;', '$2', 2000}],
                     ['$1']}]).    </pre></div>
    <p>This gives the same result, the <span class="code">[{'&lt;', '$2', 2000}]</span> is in
      the guard part and therefore discards anything that does not have a
      empyear (bound to '$2' in the head) less than 2000, just as the guard
      in the <span class="code">foldl</span> example. Lets jump on to writing it using 
      <span class="code">ets:fun2ms</span></p>
    <div class="example"><pre>
-include_lib("stdlib/include/ms_transform.hrl").

% ...

ets:select(emp_tab, ets:fun2ms(
                      fun(#emp{empno = E, empyear = Y}) when Y &lt; 2000 -&gt;
                              E
                      end)).    </pre></div>
    <p>Obviously readability is gained by using the parse transformation.</p>
    <p>I'll show some more examples without the tiresome
      comparing-to-alternatives stuff. Let's say we'd want the whole object
      matching instead of only one element. We could of course assign a
      variable to every part of the record and build it up once again in the
      body of the <span class="code">fun</span>, but it's easier to do like this:</p>
    <div class="example"><pre>
ets:select(emp_tab, ets:fun2ms(
                      fun(Obj = #emp{empno = E, empyear = Y}) 
                         when Y &lt; 2000 -&gt;
                              Obj
                      end)).    </pre></div>
    <p>Just as in ordinary Erlang matching, you can bind a variable to the
      whole matched object using a "match in then match", i.e. a
      <span class="code">=</span>. Unfortunately this is not general in <span class="code">fun's</span> translated
      to match specifications, only on the "top level", i.e. matching the
      <strong>whole</strong> object arriving to be matched into a separate variable,
      is it allowed. For the one's used to writing match specifications by
      hand, I'll have to mention that the variable A will simply be
      translated into '$_'. It's not general, but it has very common usage,
      why it is handled as a special, but useful, case. If this bothers you,
      the pseudo function <span class="code">object</span> also returns the whole matched
      object, see the part about caveats and limitations below.</p>
    <p>Let's do something in the <span class="code">fun</span>'s body too: Let's say
      that someone realizes that there are a few people having an employee
      number beginning with a zero (<span class="code">0</span>), which shouldn't be
      allowed. All those should have their numbers changed to begin with a
      one (<span class="code">1</span>) instead  and one wants the
      list <span class="code">[{&lt;Old empno&gt;,&lt;New empno&gt;}]</span> created:</p>
    <div class="example"><pre>
ets:select(emp_tab, ets:fun2ms(
                      fun(#emp{empno = [$0 | Rest] }) -&gt;
                              {[$0|Rest],[$1|Rest]}
                      end)).    </pre></div>
    <p>As a matter of fact, this query hits the feature of partially bound
      keys in the table type <span class="code">ordered_set</span>, so that not the whole
      table need be searched, only the part of the table containing keys
      beginning with <span class="code">0</span> is in fact looked into. </p>
    <p>The fun of course can have several clauses, so that if one could do
      the following: For each employee, if he or she is hired prior to 1997,
      return the tuple <span class="code">{inventory, &lt;employee number&gt;}</span>, for each hired 1997
      or later, but before 2001, return <span class="code">{rookie, &lt;employee number&gt;}</span>, for all others return <span class="code">{newbie, &lt;employee number&gt;}</span>. All except for the ones named <span class="code">Smith</span> as
      they would be affronted by anything other than the tag
      <span class="code">guru</span> and that is also what's returned for their numbers; 
      <span class="code">{guru, &lt;employee number&gt;}</span>:</p>
    <div class="example"><pre>
ets:select(emp_tab, ets:fun2ms(
                      fun(#emp{empno = E, surname = "Smith" }) -&gt;
                              {guru,E};
                         (#emp{empno = E, empyear = Y}) when Y &lt; 1997  -&gt;
                              {inventory, E};
                         (#emp{empno = E, empyear = Y}) when Y &gt; 2001  -&gt;
                              {newbie, E};
                         (#emp{empno = E, empyear = Y}) -&gt; % 1997 -- 2001
                              {rookie, E}
                      end)).    </pre></div>
    <p>The result will be:</p>
    <div class="example"><pre>
[{rookie,"011103"},
 {rookie,"041231"},
 {guru,"052341"},
 {guru,"076324"},
 {newbie,"122334"},
 {rookie,"535216"},
 {inventory,"789789"},
 {newbie,"963721"},
 {rookie,"989891"}]    </pre></div>
    <p>and so the Smith's will be happy...</p>
    <p>So, what more can you do? Well, the simple answer would be; look
      in the documentation of match specifications in ERTS users
      guide. However let's briefly go through the most useful "built in
      functions" that you can use when the <span class="code">fun</span> is to be
      translated into a match specification by <span class="code">ets:fun2ms</span> (it's
      worth mentioning, although it might be obvious to some, that calling
      other functions than the one's allowed in match specifications cannot
      be done. No "usual" Erlang code can be executed by the <span class="code">fun</span> being
      translated by <span class="code">fun2ms</span>, the <span class="code">fun</span> is after all limited
      exactly to the power of the match specifications, which is
      unfortunate, but the price one has to pay for the execution speed of
      an <span class="code">ets:select</span> compared to <span class="code">ets:foldl/foldr</span>).</p>
    <p>The head of the <span class="code">fun</span> is obviously a head matching (or mismatching) 
      <strong>one</strong> parameter, one object of the table we <span class="code">select</span>
      from. The object is always a single variable (can be <span class="code">_</span>) or
      a tuple, as that's what's in <span class="code">ets, dets</span> and
      <span class="code">mnesia</span> tables (the match specification returned by
      <span class="code">ets:fun2ms</span> can of course be used with
      <span class="code">dets:select</span> and <span class="code">mnesia:select</span> as well as
      with <span class="code">ets:select</span>). The use of <span class="code">=</span> in the head
      is allowed (and encouraged) on the top level.</p>
    <p>The guard section can contain any guard expression of Erlang.
      Even the "old" type test are allowed on the toplevel of the guard 
      (<span class="code">integer(X)</span> instead of <span class="code">is_integer(X)</span>). As the new type tests (the
      <span class="code">is_</span> tests) are in practice just guard bif's they can also
      be called from within the body of the fun, but so they can in ordinary
      Erlang code. Also arithmetics is allowed, as well as ordinary guard
      bif's. Here's a list of bif's and expressions:</p>
    <ul>
      <li>The type tests: is_atom, is_float, is_integer,
       is_list, is_number, is_pid, is_port, is_reference, is_tuple,
       is_binary, is_function, is_record</li>
      <li>The boolean operators: not, and, or, andalso, orelse </li>
      <li>The relational operators: &gt;, &gt;=, &lt;, =&lt;, =:=, ==, =/=, /=</li>
      <li>Arithmetics: +, -, *, div, rem</li>
      <li>Bitwise operators: band, bor, bxor, bnot, bsl, bsr</li>
      <li>The guard bif's: abs, element, hd, length, node, round, size, tl, 
       trunc, self</li>
      <li>The obsolete type test (only in guards):
       atom, float, integer,
       list, number, pid, port, reference, tuple,
       binary, function, record</li>
    </ul>
    <p>Contrary to the fact with "handwritten" match specifications, the
      <span class="code">is_record</span> guard works as in ordinary Erlang code.</p>
    <p>Semicolons (<span class="code">;</span>) in guards are allowed, the result will be (as
      expected) one "match_spec-clause" for each semicolon-separated
      part of the guard. The semantics being identical to the Erlang
      semantics.</p>
    <p>The body of the <span class="code">fun</span> is used to construct the
      resulting value. When selecting from tables one usually just construct
      a suiting term here, using ordinary Erlang term construction, like
      tuple parentheses, list brackets and variables matched out in the
      head, possibly in conjunction with the occasional constant. Whatever
      expressions are allowed in guards are also allowed here, but there are
      no special functions except <span class="code">object</span> and
      <span class="code">bindings</span> (see further down), which returns the whole
      matched object and all known variable bindings respectively.</p>
    <p>The <span class="code">dbg</span> variants of match specifications have an
      imperative approach to the match specification body, the ets dialect
      hasn't. The fun body for <span class="code">ets:fun2ms</span> returns the result
      without side effects, and as matching (<span class="code">=</span>) in the body of
      the match specifications is not allowed (for performance reasons) the
      only thing left, more or less, is term construction...</p>
    <p>Let's move on to the <span class="code">dbg</span> dialect, the slightly
      different match specifications translated by <span class="code">dbg:fun2ms</span>. </p>
    <p>The same reasons for using the parse transformation applies to
      <span class="code">dbg</span>, maybe even more so as filtering using Erlang code is
      simply not a good idea when tracing (except afterwards, if you trace
      to file). The concept is similar to that of <span class="code">ets:fun2ms</span>
      except that you usually use it directly from the shell (which can also
      be done with <span class="code">ets:fun2ms</span>). </p>
    <p>Let's manufacture a toy module to trace on  </p>
    <div class="example"><pre>
-module(toy).

-export([start/1, store/2, retrieve/1]).

start(Args) -&gt;
    toy_table = ets:new(toy_table,Args).

store(Key, Value) -&gt;
    ets:insert(toy_table,{Key,Value}).

retrieve(Key) -&gt;
    [{Key, Value}] = ets:lookup(toy_table,Key),
    Value.    </pre></div>
    <p>During model testing, the first test bails out with a
      <span class="code">{badmatch,16}</span> in <span class="code">{toy,start,1}</span>, why?</p>
    <p>We suspect the ets call, as we match hard on the return value, but
      want only the particular <span class="code">new</span> call with
      <span class="code">toy_table</span> as first parameter.
      So we start a default tracer on the node:</p>
    <div class="example"><pre>
1&gt; <span class="bold_code">dbg:tracer().</span>
{ok,&lt;0.88.0&gt;}</pre></div>
    <p>And so we turn on call tracing for all processes, we are going to
      make a pretty restrictive trace pattern, so there's no need to call
      trace only a few processes (it usually isn't):</p>
    <div class="example"><pre>
2&gt; <span class="bold_code">dbg:p(all,call).</span>
{ok,[{matched,nonode@nohost,25}]}    </pre></div>
    <p>It's time to specify the filter. We want to view calls that resemble
      <span class="code">ets:new(toy_table,&lt;something&gt;)</span>:</p>
    <div class="example"><pre>
3&gt; <span class="bold_code">dbg:tp(ets,new,dbg:fun2ms(fun([toy_table,_]) -&gt; true end)).</span>
{ok,[{matched,nonode@nohost,1},{saved,1}]}    </pre></div>
    <p>As can be seen, the <span class="code">fun</span>'s used with
      <span class="code">dbg:fun2ms</span> takes a single list as parameter instead of a
      single tuple. The list matches a list of the parameters to the traced
      function.  A single variable may also be used of course. The body
      of the fun expresses in a more imperative way actions to be taken if
      the fun head (and the guards) matches. I return <span class="code">true</span> here, but it's
      only because the body of a fun cannot be empty, the return value will
      be discarded. </p>
    <p>When we run the test of our module now, we get the following trace
      output:</p>
    <div class="example"><pre>
(&lt;0.86.0&gt;) call ets:new(toy_table,[ordered_set])    </pre></div>
    <p>Let's play we haven't spotted the problem yet, and want to see what 
      <span class="code">ets:new</span> returns. We do a slightly different trace
      pattern:</p>
    <div class="example"><pre>
4&gt; <span class="bold_code">dbg:tp(ets,new,dbg:fun2ms(fun([toy_table,_]) -&gt; return_trace() end)).</span></pre></div>
    <p>Resulting in the following trace output when we run the test:</p>
    <div class="example"><pre>
(&lt;0.86.0&gt;) call ets:new(toy_table,[ordered_set])
(&lt;0.86.0&gt;) returned from ets:new/2 -&gt; 24    </pre></div>
    <p>The call to <span class="code">return_trace</span>, makes a trace message appear
      when the function returns. It applies only to the specific function call
      triggering the match specification (and matching the head/guards of
      the match specification). This is the by far the most common call in the
      body of a <span class="code">dbg</span> match specification.</p>
    <p>As the test now fails with <span class="code">{badmatch,24}</span>, it's obvious 
      that the badmatch is because the atom <span class="code">toy_table</span> does not
      match the number returned for an unnamed table. So we spotted the
      problem, the table should be named and the arguments supplied by our
      test program does not include <span class="code">named_table</span>. We rewrite the
      start function to:</p>
    <div class="example"><pre>
start(Args) -&gt;
    toy_table = ets:new(toy_table,[named_table |Args]).    </pre></div>
    <p>And with the same tracing turned on, we get the following trace
      output:</p>
    <div class="example"><pre>
(&lt;0.86.0&gt;) call ets:new(toy_table,[named_table,ordered_set])
(&lt;0.86.0&gt;) returned from ets:new/2 -&gt; toy_table    </pre></div>
    <p>Very well. Let's say the module now passes all testing and goes into
      the system. After a while someone realizes that the table
      <span class="code">toy_table</span> grows while the system is running and that for some
      reason there are a lot of elements with atom's as keys. You had
      expected only integer keys and so does the rest of the system. Well,
      obviously not all of the system. You turn on call tracing and try to
      see calls to your module with an atom as the key:</p>
    <div class="example"><pre>
1&gt; <span class="bold_code">dbg:tracer().</span>
{ok,&lt;0.88.0&gt;}
2&gt; <span class="bold_code">dbg:p(all,call).</span>
{ok,[{matched,nonode@nohost,25}]}
3&gt; <span class="bold_code">dbg:tpl(toy,store,dbg:fun2ms(fun([A,_]) when is_atom(A) -&gt; true end)).</span>
{ok,[{matched,nonode@nohost,1},{saved,1}]}</pre></div>
    <p>We use <span class="code">dbg:tpl</span> here to make sure to catch local calls
      (let's say the module has grown since the smaller version and we're
      not sure this inserting of atoms is not done locally...). When in
      doubt always use local call tracing.</p>
    <p>Let's say nothing happens when we trace in this way. Our function
      is never called with these parameters. We make the conclusion that
      someone else (some other module) is doing it and we realize that we
      must trace on ets:insert and want to see the calling function. The
      calling function may be retrieved using the match specification
      function <span class="code">caller</span> and to get it into the trace message, one
      has to use the match spec function <span class="code">message</span>. The filter
      call looks like this (looking for calls to <span class="code">ets:insert</span>):</p>
    <div class="example"><pre>
4&gt; <span class="bold_code">dbg:tpl(ets,insert,dbg:fun2ms(fun([toy_table,{A,_}]) when is_atom(A) -&gt; </span>
<span class="bold_code">                                    message(caller()) </span>
<span class="bold_code">                                  end)). </span>
{ok,[{matched,nonode@nohost,1},{saved,2}]}    </pre></div>
    <p>The caller will now appear in the "additional message" part of the
      trace output, and so after a while, the following output comes:</p>
    <div class="example"><pre>
(&lt;0.86.0&gt;) call ets:insert(toy_table,{garbage,can}) ({evil_mod,evil_fun,2})    </pre></div>
    <p>You have found out that the function <span class="code">evil_fun</span> of the
      module <span class="code">evil_mod</span>, with arity <span class="code">2</span>, is the one
      causing all this trouble.</p>
    <p>This was just a toy example, but it illustrated the most used
      calls in match specifications for <span class="code">dbg</span> The other, more
      esotheric calls are listed and explained in the <strong>Users guide of the ERTS application</strong>, they really are beyond the scope of this
      document.</p>
    <p>To end this chatty introduction with something more precise, here
      follows some parts about caveats and restrictions concerning the fun's
      used in conjunction with <span class="code">ets:fun2ms</span> and
      <span class="code">dbg:fun2ms</span>:</p>
    <div class="warning">
<div class="label">Warning</div>
<div class="content"><p>
      <p>To use the pseudo functions triggering the translation, one
        <strong>has to</strong> include the header file <span class="code">ms_transform.hrl</span>
        in the source code. Failure to do so will possibly result in
        runtime errors rather than compile time, as the expression may
        be valid as a plain Erlang program without translation.</p>
    </p></div>
</div>
    <div class="warning">
<div class="label">Warning</div>
<div class="content"><p>
      <p>The <span class="code">fun</span> has to be literally constructed inside the
        parameter list to the pseudo functions. The <span class="code">fun</span> cannot
        be bound to a variable first and then passed to
        <span class="code">ets:fun2ms</span> or <span class="code">dbg:fun2ms</span>, i.e this
        will work: <span class="code">ets:fun2ms(fun(A) -&gt; A end)</span> but not this:
        <span class="code">F = fun(A) -&gt; A end, ets:fun2ms(F)</span>. The later will result
        in a compile time error if the header is included, otherwise a
        runtime error. Even if the later construction would ever
        appear to work, it really doesn't, so don't ever use it.</p>
    </p></div>
</div>
    <p>Several restrictions apply to the fun that is being translated
      into a match_spec. To put it simple you cannot use anything in
      the fun that you cannot use in a match_spec. This means that,
      among others, the following restrictions apply to the fun itself:</p>
    <ul>
      <li>Functions written in Erlang cannot be called, neither
       local functions, global functions or real fun's</li>
      <li>Everything that is written as a function call will be
       translated into a match_spec call to a builtin function, so that
       the call <span class="code">is_list(X)</span> will be translated to <span class="code">{'is_list', '$1'}</span> (<span class="code">'$1'</span> is just an example, the numbering may
       vary). If one tries to call a function that is not a match_spec
       builtin, it will cause an error.</li>
      <li>Variables occurring in the head of the <span class="code">fun</span> will be
       replaced by match_spec variables in the order of occurrence, so
       that the fragment <span class="code">fun({A,B,C})</span> will be replaced by
      <span class="code">{'$1', '$2', '$3'}</span> etc. Every occurrence of such a
       variable later in the match_spec will be replaced by a
       match_spec variable in the same way, so that the fun
      <span class="code">fun({A,B}) when is_atom(A) -&gt; B end</span> will be translated into
      <span class="code">[{{'$1','$2'},[{is_atom,'$1'}],['$2']}]</span>.</li>
      <li>
        <p>Variables that are not appearing in the head are imported 
          from the environment and made into
          match_spec <span class="code">const</span> expressions. Example from the shell:</p>
        <div class="example"><pre>
1&gt; <span class="bold_code">X = 25.</span>
25
2&gt; <span class="bold_code">ets:fun2ms(fun({A,B}) when A &gt; X -&gt; B end).</span>
[{{'$1','$2'},[{'&gt;','$1',{const,25}}],['$2']}]</pre></div>
      </li>
      <li>
        <p>Matching with <span class="code">=</span> cannot be used in the body. It can only
          be used on the top level in the head of the fun. 
          Example from the shell again:</p>
        <div class="example"><pre>
1&gt; <span class="bold_code">ets:fun2ms(fun({A,[B|C]} = D) when A &gt; B -&gt; D end).</span>
[{{'$1',['$2'|'$3']},[{'&gt;','$1','$2'}],['$_']}]
2&gt; <span class="bold_code">ets:fun2ms(fun({A,[B|C]=D}) when A &gt; B -&gt; D end).</span>
Error: fun with head matching ('=' in head) cannot be translated into 
match_spec 
{error,transform_error}
3&gt; <span class="bold_code">ets:fun2ms(fun({A,[B|C]}) when A &gt; B -&gt; D = [B|C], D end).</span>
Error: fun with body matching ('=' in body) is illegal as match_spec
{error,transform_error}        </pre></div>
        <p>All variables are bound in the head of a match_spec, so the 
          translator can not allow multiple bindings. The special case
          when matching is done on the top level makes the variable bind
          to <span class="code">'$_'</span> in the resulting match_spec, it is to allow a more
          natural access to the whole matched object. The pseudo
          function <span class="code">object()</span> could be used instead, see below. 
          The following expressions are translated equally: </p>
        <div class="example"><pre>
ets:fun2ms(fun({a,_} = A) -&gt; A end).
ets:fun2ms(fun({a,_}) -&gt; object() end).</pre></div>
      </li>
      <li>
        <p>The special match_spec variables <span class="code">'$_'</span> and <span class="code">'$*'</span>
          can be accessed through the pseudo functions <span class="code">object()</span>
          (for <span class="code">'$_'</span>) and <span class="code">bindings()</span> (for <span class="code">'$*'</span>).
          as an example, one could translate the following
          <span class="code">ets:match_object/2</span> call to a <span class="code">ets:select</span> call:</p>
        <div class="example"><pre>
ets:match_object(Table, {'$1',test,'$2'}). </pre></div>
        <p>...is the same as...</p>
        <div class="example"><pre>
ets:select(Table, ets:fun2ms(fun({A,test,B}) -&gt; object() end)).</pre></div>
        <p>(This was just an example, in this simple case the former
          expression is probably preferable in terms of readability).
          The <span class="code">ets:select/2</span> call will conceptually look like this
          in the resulting code:</p>
        <div class="example"><pre>
ets:select(Table, [{{'$1',test,'$2'},[],['$_']}]).</pre></div>
        <p>Matching on the top level of the fun head might feel like a
          more natural way to access <span class="code">'$_'</span>, see above.</p>
      </li>
      <li>Term constructions/literals are translated as much as is
       needed to get them into valid match_specs, so that tuples are
       made into match_spec tuple constructions (a one element tuple
       containing the tuple) and constant expressions are used when
       importing variables from the environment. Records are also
       translated into plain tuple constructions, calls to element
       etc. The guard test <span class="code">is_record/2</span> is translated into
       match_spec code using the three parameter version that's built
       into match_specs, so that <span class="code">is_record(A,t)</span> is translated
       into <span class="code">{is_record,'$1',t,5}</span> given that the record size of
       record type <span class="code">t</span> is 5.</li>
      <li>Language constructions like <span class="code">case</span>, <span class="code">if</span>,
      <span class="code">catch</span> etc that are not present in match_specs are not
       allowed.</li>
      <li>If the header file <span class="code">ms_transform.hrl</span> is not included,
       the fun won't be translated, which may result in a
      <strong>runtime error</strong> (depending on if the fun is valid in a
       pure Erlang context). Be absolutely sure that the header is
       included when using <span class="code">ets</span> and <span class="code">dbg:fun2ms/1</span> in
       compiled code.</li>
      <li>If the pseudo function triggering the translation is
      <span class="code">ets:fun2ms/1</span>, the fun's head must contain a single
       variable or a single tuple. If the pseudo function is
      <span class="code">dbg:fun2ms/1</span> the fun's head must contain a single
       variable or a single list.</li>
    </ul>
    <p>The translation from fun's to match_specs is done at compile
      time, so runtime performance is not affected by using these pseudo
      functions. The compile time might be somewhat longer though. </p>
    <p>For more information about match_specs, please read about them
      in <strong>ERTS users guide</strong>.</p>
  </p></div>
  <h3>EXPORTS</h3>
    <p><a name="parse_transform-2"></a><span class="bold_code">parse_transform(Forms, Options) -&gt; Forms</span><br><div class="REFBODY">
<p>Types:</p>
<div class="REFTYPES"><span class="bold_code">Forms = [<span class="bold_code"><a href="erl_parse.html#type-abstract_form">erl_parse:abstract_form()</a></span>]</span></div>
<div class="REFTYPES"><span class="bold_code">Options = term()</span></div>
<div class="REFBODY">Option list, required but not used.</div>
</div></p>
<div class="REFBODY"><p>
        <p>Implements the actual transformation at compile time. This
          function is called by the compiler to do the source code
          transformation if and when the <span class="code">ms_transform.hrl</span> header
          file is included in your source code. See the <span class="code">ets</span> and
          <span class="code">dbg</span>:<span class="code">fun2ms/1</span> function manual pages for
          documentation on how to use this parse_transform, see the
          <span class="code">match_spec</span> chapter in <span class="code">ERTS</span> users guide for a
          description of match specifications. </p>
      </p></div>
    <p><a name="transform_from_shell-3"></a><span class="bold_code">transform_from_shell(Dialect, Clauses, BoundEnvironment) -&gt; term()</span><br><div class="REFBODY">
<p>Types:</p>
<div class="REFTYPES"><span class="bold_code">Dialect = ets | dbg</span></div>
<div class="REFTYPES"><span class="bold_code">Clauses = [<span class="bold_code"><a href="erl_parse.html#type-abstract_clause">erl_parse:abstract_clause()</a></span>]</span></div>
<div class="REFTYPES"><span class="bold_code">BoundEnvironment = <span class="bold_code"><a href="erl_eval.html#type-binding_struct">erl_eval:binding_struct()</a></span></span></div>
<div class="REFBODY">List of variable bindings in the shell environment.</div>
</div></p>
<div class="REFBODY"><p>
        <p>Implements the actual transformation when the <span class="code">fun2ms</span>
          functions are called from the shell. In this case the abstract
          form is for one single fun (parsed by the Erlang shell), and
          all imported variables should be in the key-value list passed
          as <span class="code">BoundEnvironment</span>. The result is a term, normalized,
          i.e. not in abstract format.</p>
      </p></div>
    <p><a name="format_error-1"></a><span class="bold_code">format_error(Error) -&gt; Chars</span><br><div class="REFBODY">
<p>Types:</p>
<div class="REFTYPES"><span class="bold_code">Error = {error, module(), term()}</span></div>
<div class="REFTYPES"><span class="bold_code">Chars = <span class="bold_code"><a href="io_lib.html#type-chars">io_lib:chars()</a></span></span></div>
</div></p>
<div class="REFBODY"><p>
        <p>Takes an error code returned by one of the other functions
          in the module and creates a textual description of the
          error. Fairly uninteresting function actually.</p>
      </p></div>
  
</div>
<div class="footer">
<hr>
<p>Copyright © 1997-2012 Ericsson AB. All Rights Reserved.</p>
</div>
</div>
</div></body>
</html>