Sophie

Sophie

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

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 -- gen_event</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="loadscrollpos" title="gen_event " expanded="true">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="no" title="ms_transform " expanded="false">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>gen_event</h1></center>
  
  <h3>MODULE</h3>
<div class="REFBODY">gen_event</div>
  <h3>MODULE SUMMARY</h3>
<div class="REFBODY">Generic Event Handling Behaviour</div>
  <h3>DESCRIPTION</h3>
<div class="REFBODY"><p>
    <p>A behaviour module for implementing event handling functionality.
      The OTP event handling model consists of a generic event manager
      process with an arbitrary number of event handlers which are added and
      deleted dynamically.</p>
    <p>An event manager implemented using this module will have a standard
      set of interface functions and include functionality for tracing and
      error reporting. It will also fit into an OTP supervision tree.
      Refer to <strong>OTP Design Principles</strong> for more information.</p>
    <p>Each event handler is implemented as a callback module exporting
      a pre-defined set of functions. The relationship between the behaviour
      functions and the callback functions can be illustrated as follows:</p>
    <div class="example"><pre>
gen_event module                   Callback module
----------------                   ---------------
gen_event:start_link       -----&gt;  -

gen_event:add_handler
gen_event:add_sup_handler  -----&gt;  Module:init/1

gen_event:notify
gen_event:sync_notify      -----&gt;  Module:handle_event/2

gen_event:call             -----&gt;  Module:handle_call/2

-                          -----&gt;  Module:handle_info/2

gen_event:delete_handler   -----&gt;  Module:terminate/2

gen_event:swap_handler
gen_event:swap_sup_handler -----&gt;  Module1:terminate/2
                                   Module2:init/1

gen_event:which_handlers   -----&gt;  -

gen_event:stop             -----&gt;  Module:terminate/2

-                          -----&gt;  Module:code_change/3</pre></div>
    <p>Since each event handler is one callback module, an event manager
      will have several callback modules which are added and deleted
      dynamically. Therefore <span class="code">gen_event</span> is more tolerant of callback
      module errors than the other behaviours. If a callback function for
      an installed event handler fails with <span class="code">Reason</span>, or returns a
      bad value <span class="code">Term</span>, the event manager will not fail. It will delete
      the event handler by calling the callback function
      <span class="code">Module:terminate/2</span> (see below), giving as argument
      <span class="code">{error,{'EXIT',Reason}}</span> or <span class="code">{error,Term}</span>, respectively.
      No other event handler will be affected.</p>
    <p>A gen_event process handles system messages as documented in
       <span class="bold_code"><a href="sys.html">sys(3)</a></span>. The <span class="code">sys</span> module
       can be used for debugging an event manager.</p>
    <p>Note that an event manager <strong>does</strong> trap exit signals
      automatically.</p>
    <p>The gen_event process can go into hibernation 
    (see <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','erts','erlang.html#erlang:hibernate-3');">erlang(3)</a></span>) if a callback
    function in a handler module specifies <span class="code">'hibernate'</span> in its return value. 
    This might be useful if the server is expected to be idle for a long
    time. However this feature should be used with care as hibernation
    implies at least two garbage collections (when hibernating and
    shortly after waking up) and is not something you'd want to do
    between each event handled by a busy event manager.</p>

    <p>It's also worth noting that when multiple event handlers are
    invoked, it's sufficient that one single event handler returns a
    <span class="code">'hibernate'</span> request for the whole event manager to go into
    hibernation.</p>

    <p>Unless otherwise stated, all functions in this module fail if
      the specified event manager does not exist or if bad arguments are
      given.</p>
  </p></div>
  <h3>DATA TYPES</h3>
    <p>
      <span class="bold_code"><a name="type-handler">handler()</a> = atom() | {atom(), term()}</span><br></p>
    <p>
      <span class="bold_code"><a name="type-handler_args">handler_args()</a> = term()</span><br></p>
    <p>
      <span class="bold_code"><a name="type-add_handler_ret">add_handler_ret()</a> = ok | term() | {'EXIT', term()}</span><br></p>
    <p>
      <span class="bold_code"><a name="type-del_handler_ret">del_handler_ret()</a> = ok | term() | {'EXIT', term()}</span><br></p>
  
  <h3>EXPORTS</h3>
    <p><a name="start_link-0"><span class="bold_code">start_link() -&gt; Result</span></a><br><a name="start_link-1"><span class="bold_code">start_link(EventMgrName) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrName = {local,Name} | {global,GlobalName}
	| {via,Module,ViaName}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = {ok,Pid} | {error,{already_started,Pid}}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Pid = pid()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Creates an event manager process as part of a supervision
          tree. The function should be called, directly or indirectly,
          by the supervisor. It will, among other things, ensure that
          the event manager is linked to the supervisor.</p>
        <p>If <span class="code">EventMgrName={local,Name}</span>, the event manager is
          registered locally as <span class="code">Name</span> using <span class="code">register/2</span>.
          If <span class="code">EventMgrName={global,GlobalName}</span>, the event manager is
          registered globally as <span class="code">GlobalName</span> using
          <span class="code">global:register_name/2</span>. If no name is provided,
          the event manager is not registered.
	If <span class="code">EventMgrName={via,Module,ViaName}</span>, the event manager will
	register with the registry represented by <span class="code">Module</span>.
	The <span class="code">Module</span> callback should export the functions
	<span class="code">register_name/2</span>, <span class="code">unregister_name/1</span>,
	<span class="code">whereis_name/1</span> and <span class="code">send/2</span>, which should behave like the
	corresponding functions in <span class="code">global</span>. Thus,
	<span class="code">{via,global,GlobalName}</span> is a valid reference.</p>
        <p>If the event manager is successfully created the function
          returns <span class="code">{ok,Pid}</span>, where <span class="code">Pid</span> is the pid of
          the event manager. If there already exists a process with
          the specified <span class="code">EventMgrName</span> the function returns
          <span class="code">{error,{already_started,Pid}}</span>, where <span class="code">Pid</span> is
          the pid of that process.</p>
      </p></div>
    <p><a name="start-0"><span class="bold_code">start() -&gt; Result</span></a><br><a name="start-1"><span class="bold_code">start(EventMgrName) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrName = {local,Name} | {global,GlobalName}
	| {via,Module,ViaName}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = {ok,Pid} | {error,{already_started,Pid}}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Pid = pid()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Creates a stand-alone event manager process, i.e. an event
          manager which is not part of a supervision tree and thus has
          no supervisor.</p>
        <p>See <span class="code">start_link/0,1</span> for a description of arguments and
          return values.</p>
      </p></div>
    <p><a name="add_handler-3"><span class="bold_code">add_handler(EventMgrRef, Handler, Args) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgr = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handler = Module | {Module,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Id = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Args = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = ok | {'EXIT',Reason} | term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Adds a new event handler to the event manager <span class="code">EventMgrRef</span>.
          The event manager will call <span class="code">Module:init/1</span> to initiate
          the event handler and its internal state.</p>
        <p><span class="code">EventMgrRef</span> can be:</p>
        <ul>
          <li>the pid,</li>
          <li>
<span class="code">Name</span>, if the event manager is locally registered,</li>
          <li>
<span class="code">{Name,Node}</span>, if the event manager is locally
           registered at another node, or</li>
          <li>
<span class="code">{global,GlobalName}</span>, if the event manager is globally
           registered.</li>
	   <li>
<span class="code">{via,Module,ViaName}</span>, if the event manager is registered
	   through an alternative process registry.</li>
        </ul>
        <p><span class="code">Handler</span> is the name of the callback module <span class="code">Module</span> or
          a tuple <span class="code">{Module,Id}</span>, where <span class="code">Id</span> is any term.
          The <span class="code">{Module,Id}</span> representation makes it possible to
          identify a specific event handler when there are several event
          handlers using the same callback module.</p>
        <p><span class="code">Args</span> is an arbitrary term which is passed as the argument
          to <span class="code">Module:init/1</span>.</p>
        <p>If <span class="code">Module:init/1</span> returns a correct value indicating
          successful completion, the event manager adds the event
          handler and this function returns
          <span class="code">ok</span>. If <span class="code">Module:init/1</span> fails with <span class="code">Reason</span> or
          returns <span class="code">{error,Reason}</span>, the event handler is
          ignored and this function returns <span class="code">{'EXIT',Reason}</span> or
          <span class="code">{error,Reason}</span>, respectively.</p>
      </p></div>
    <p><a name="add_sup_handler-3"><span class="bold_code">add_sup_handler(EventMgrRef, Handler, Args) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgr = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handler = Module | {Module,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Id = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Args = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = ok | {'EXIT',Reason} | term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Adds a new event handler in the same way as <span class="code">add_handler/3</span>
          but will also supervise the connection between the event handler
          and the calling process.</p>
        <ul>
          <li>If the calling process later terminates with <span class="code">Reason</span>,
           the event manager will delete the event handler by calling
          <span class="code">Module:terminate/2</span> with <span class="code">{stop,Reason}</span> as argument.</li>
          <li>
            <p>If the event handler later is deleted, the event manager
              sends a message<span class="code">{gen_event_EXIT,Handler,Reason}</span> to
              the calling process. <span class="code">Reason</span> is one of the following:</p>
            <ul>
              <li>
<span class="code">normal</span>, if the event handler has been removed due to a
               call to <span class="code">delete_handler/3</span>, or <span class="code">remove_handler</span>
               has been returned by a callback function (see below).</li>
              <li>
<span class="code">shutdown</span>, if the event handler has been removed
               because the event manager is terminating.</li>
              <li>
<span class="code">{swapped,NewHandler,Pid}</span>, if the process <span class="code">Pid</span>
               has replaced the event handler with another event handler
              <span class="code">NewHandler</span> using a call to <span class="code">swap_handler/3</span> or
              <span class="code">swap_sup_handler/3</span>.</li>
              <li>a term, if the event handler is removed due to an error.
               Which term depends on the error.</li>
            </ul>
          </li>
        </ul>
        <p>See <span class="code">add_handler/3</span> for a description of the arguments
          and return values.</p>
      </p></div>
    <p><a name="notify-2"><span class="bold_code">notify(EventMgrRef, Event) -&gt; ok</span></a><br><a name="sync_notify-2"><span class="bold_code">sync_notify(EventMgrRef, Event) -&gt; ok</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrRef = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Event = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Sends an event notification to the event manager
          <span class="code">EventMgrRef</span>. The event manager will call
          <span class="code">Module:handle_event/2</span> for each installed event handler to
          handle the event.</p>
        <p><span class="code">notify</span> is asynchronous and will return immediately after
          the event notification has been sent. <span class="code">sync_notify</span> is
          synchronous in the sense that it will return <span class="code">ok</span> after
          the event has been handled by all event handlers.</p>
        <p>See <span class="code">add_handler/3</span> for a description of <span class="code">EventMgrRef</span>.</p>
        <p><span class="code">Event</span> is an arbitrary term which is passed as one of
          the arguments to <span class="code">Module:handle_event/2</span>.</p>
        <p><span class="code">notify</span> will not fail even if the specified event manager
          does not exist, unless it is specified as <span class="code">Name</span>.</p>
      </p></div>
    <p><a name="call-3"><span class="bold_code">call(EventMgrRef, Handler, Request) -&gt; Result</span></a><br><a name="call-4"><span class="bold_code">call(EventMgrRef, Handler, Request, Timeout) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrRef = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handler = Module | {Module,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Id = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Request = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Timeout = int()&gt;0 | infinity</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = Reply | {error,Error}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Reply = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Error = bad_module | {'EXIT',Reason} | term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Makes a synchronous call to the event handler <span class="code">Handler</span>
          installed in the event manager <span class="code">EventMgrRef</span> by sending a
          request and waiting until a reply arrives or a timeout occurs.
          The event manager will call <span class="code">Module:handle_call/2</span> to handle
          the request.</p>
        <p>See <span class="code">add_handler/3</span> for a description of <span class="code">EventMgrRef</span>
          and <span class="code">Handler</span>.</p>
        <p><span class="code">Request</span> is an arbitrary term which is passed as one of
          the arguments to <span class="code">Module:handle_call/2</span>.</p>
        <p><span class="code">Timeout</span> is an integer greater than zero which specifies
          how many milliseconds to wait for a reply, or the atom
          <span class="code">infinity</span> to wait indefinitely. Default value is 5000.
          If no reply is received within the specified time, the function
          call fails.</p>
        <p>The return value <span class="code">Reply</span> is defined in the return value of
          <span class="code">Module:handle_call/2</span>. If the specified event handler is not
          installed, the function returns <span class="code">{error,bad_module}</span>. If
          the callback function fails with <span class="code">Reason</span> or returns an
          unexpected value <span class="code">Term</span>, this function returns
          <span class="code">{error,{'EXIT',Reason}}</span> or <span class="code">{error,Term}</span>,
          respectively.</p>
      </p></div>
    <p><a name="delete_handler-3"><span class="bold_code">delete_handler(EventMgrRef, Handler, Args) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrRef = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handler = Module | {Module,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Id = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Args = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = term() | {error,module_not_found} | {'EXIT',Reason}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Deletes an event handler from the event manager
          <span class="code">EventMgrRef</span>. The event manager will call
          <span class="code">Module:terminate/2</span> to terminate the event handler.</p>
        <p>See <span class="code">add_handler/3</span> for a description of <span class="code">EventMgrRef</span>
          and <span class="code">Handler</span>.</p>
        <p><span class="code">Args</span> is an arbitrary term which is passed as one of
          the arguments to <span class="code">Module:terminate/2</span>.</p>
        <p>The return value is the return value of <span class="code">Module:terminate/2</span>.
          If the specified event handler is not installed, the function
          returns <span class="code">{error,module_not_found}</span>. If the callback function
          fails with <span class="code">Reason</span>, the function returns
          <span class="code">{'EXIT',Reason}</span>.</p>
      </p></div>
    <p><a name="swap_handler-3"><span class="bold_code">swap_handler(EventMgrRef, {Handler1,Args1}, {Handler2,Args2}) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrRef = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handler1 = Handler2 = Module | {Module,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Id = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Args1 = Args2 = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = ok | {error,Error}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Error = {'EXIT',Reason} | term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Replaces an old event handler with a new event handler in
          the event manager <span class="code">EventMgrRef</span>.</p>
        <p>See <span class="code">add_handler/3</span> for a description of the arguments.</p>
        <p>First the old event handler <span class="code">Handler1</span> is deleted.
          The event manager calls <span class="code">Module1:terminate(Args1, ...)</span>,
          where <span class="code">Module1</span> is the callback module of <span class="code">Handler1</span>,
          and collects the return value.</p>
        <p>Then the new event handler <span class="code">Handler2</span> is added and initiated
          by calling <span class="code">Module2:init({Args2,Term})</span>, where <span class="code">Module2</span>
          is the callback module of <span class="code">Handler2</span> and <span class="code">Term</span>
          the return value of <span class="code">Module1:terminate/2</span>. This makes it
          possible to transfer information from <span class="code">Handler1</span> to
          <span class="code">Handler2</span>.</p>
        <p>The new handler will be added even if the the specified old event
          handler is not installed in which case <span class="code">Term=error</span>, or if
          <span class="code">Module1:terminate/2</span> fails with <span class="code">Reason</span> in which case
          <span class="code">Term={'EXIT',Reason}</span>.
          The old handler will be deleted even if <span class="code">Module2:init/1</span>
          fails.</p>
        <p>If there was a supervised connection between <span class="code">Handler1</span> and
          a process <span class="code">Pid</span>, there will be a supervised connection
          between <span class="code">Handler2</span> and <span class="code">Pid</span> instead.</p>
        <p>If <span class="code">Module2:init/1</span> returns a correct value, this function
          returns <span class="code">ok</span>. If <span class="code">Module2:init/1</span> fails with
          <span class="code">Reason</span> or returns an unexpected value <span class="code">Term</span>, this
          this function returns <span class="code">{error,{'EXIT',Reason}}</span> or
          <span class="code">{error,Term}</span>, respectively.</p>
      </p></div>
    <p><a name="swap_sup_handler-3"><span class="bold_code">swap_sup_handler(EventMgrRef, {Handler1,Args1}, {Handler2,Args2}) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrRef = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handler1 = Handler 2 = Module | {Module,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Id = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Args1 = Args2 = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = ok | {error,Error}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Error = {'EXIT',Reason} | term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Replaces an event handler in the event manager <span class="code">EventMgrRef</span>
          in the same way as <span class="code">swap_handler/3</span> but will also supervise
          the connection between <span class="code">Handler2</span> and the calling process.</p>
        <p>See <span class="code">swap_handler/3</span> for a description of the arguments
          and return values.</p>
      </p></div>
    <p><a name="which_handlers-1"><span class="bold_code">which_handlers(EventMgrRef) -&gt; [Handler]</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrRef = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> GlobalName = ViaName = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Handler = Module | {Module,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Id = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Returns a list of all event handlers installed in the event
          manager <span class="code">EventMgrRef</span>.</p>
        <p>See <span class="code">add_handler/3</span> for a description of <span class="code">EventMgrRef</span>
          and <span class="code">Handler</span>.</p>
      </p></div>
    <p><a name="stop-1"><span class="bold_code">stop(EventMgrRef) -&gt; ok</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">EventMgrRef = Name | {Name,Node} | {global,GlobalName}
	| {via,Module,ViaName} | pid()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Name = Node = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">GlobalName = ViaName = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Terminates the event manager <span class="code">EventMgrRef</span>. Before
          terminating, the event manager will call
          <span class="code">Module:terminate(stop,...)</span> for each installed event
          handler.</p>
        <p>See <span class="code">add_handler/3</span> for a description of the argument.</p>
      </p></div>
  

  <h3><a name="id180261">CALLBACK FUNCTIONS</a></h3>
<div class="REFBODY">
    
    <p>The following functions should be exported from a <span class="code">gen_event</span>
      callback module.</p>
  </div>
  <h3>EXPORTS</h3>
    <p><a name="Module:init-1"><span class="bold_code">Module:init(InitArgs) -&gt; {ok,State} | {ok,State,hibernate} | {error,Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">InitArgs = Args | {Args,Term}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Args = Term = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">State = term()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Reason = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Whenever a new event handler is added to an event manager,
          this function is called to initialize the event handler.</p>
        <p>If the event handler is added due to a call to
          <span class="code">gen_event:add_handler/3</span> or
          <span class="code">gen_event:add_sup_handler/3</span>, <span class="code">InitArgs</span> is
          the <span class="code">Args</span> argument of these functions.</p>
        <p>If the event handler is replacing another event handler due to
          a call to <span class="code">gen_event:swap_handler/3</span> or
          <span class="code">gen_event:swap_sup_handler/3</span>, or due to a <span class="code">swap</span>
          return tuple from one of the other callback functions,
          <span class="code">InitArgs</span> is a tuple <span class="code">{Args,Term}</span> where <span class="code">Args</span> is
          the argument provided in the function call/return tuple and
          <span class="code">Term</span> is the result of terminating the old event handler,
          see <span class="code">gen_event:swap_handler/3</span>.</p>
        <p>If successful, the function should return <span class="code">{ok,State}</span>
	  or <span class="code">{ok,State,hibernate}</span> where <span class="code">State</span> is the
	  initial internal state of the event handler.</p>
	<p>If <span class="code">{ok,State,hibernate}</span> is returned, the event
	  manager will go into hibernation (by calling <span class="bold_code"><a href="proc_lib.html#hibernate-3">proc_lib:hibernate/3</a></span>),
	  waiting for the next event to occur.</p>
      </p></div>
    <p><a name="Module:handle_event-2"><span class="bold_code">Module:handle_event(Event, State) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Event = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">State = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = {ok,NewState} | {ok,NewState,hibernate} </span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  | {swap_handler,Args1,NewState,Handler2,Args2} | remove_handler</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> NewState = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Args1 = Args2 = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Handler2 = Module2 | {Module2,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Module2 = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Id = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Whenever an event manager receives an event sent using
          <span class="code">gen_event:notify/2</span> or <span class="code">gen_event:sync_notify/2</span>, this
          function is called for each installed event handler to handle
          the event.</p>
        <p><span class="code">Event</span> is the <span class="code">Event</span> argument of
          <span class="code">notify</span>/<span class="code">sync_notify</span>.</p>
        <p><span class="code">State</span> is the internal state of the event handler.</p>
        <p>If the function returns <span class="code">{ok,NewState}</span> or <span class="code">{ok,NewState,hibernate}</span> 
	  the event handler
          will remain in the event manager with the possible updated
          internal state <span class="code">NewState</span>.</p>
	<p>If <span class="code">{ok,NewState,hibernate}</span> is returned, the event
	  manager will also go into hibernation (by calling <span class="bold_code"><a href="proc_lib.html#hibernate-3">proc_lib:hibernate/3</a></span>),
	  waiting for the next event to occur. It is sufficient that one of the event 
	  handlers return <span class="code">{ok,NewState,hibernate}</span> for the whole event manager 
	  process to hibernate.</p>
        <p>If the function returns
          <span class="code">{swap_handler,Args1,NewState,Handler2,Args2}</span> the event
          handler will be replaced by <span class="code">Handler2</span> by first calling
          <span class="code">Module:terminate(Args1,NewState)</span> and then
          <span class="code">Module2:init({Args2,Term})</span> where <span class="code">Term</span> is the return
          value of <span class="code">Module:terminate/2</span>.
          See <span class="code">gen_event:swap_handler/3</span> for more information.</p>
        <p>If the function returns <span class="code">remove_handler</span> the event handler
          will be deleted by calling
          <span class="code">Module:terminate(remove_handler,State)</span>.</p>
      </p></div>
    <p><a name="Module:handle_call-2"><span class="bold_code">Module:handle_call(Request, State) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Request = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">State = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = {ok,Reply,NewState} | {ok,Reply,NewState,hibernate}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> | {swap_handler,Reply,Args1,NewState,Handler2,Args2}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> | {remove_handler, Reply}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Reply = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> NewState = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Args1 = Args2 = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Handler2 = Module2 | {Module2,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Module2 = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Id = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Whenever an event manager receives a request sent using
          <span class="code">gen_event:call/3,4</span>, this function is called for
          the specified event handler to handle the request.</p>
        <p><span class="code">Request</span> is the <span class="code">Request</span> argument of <span class="code">call</span>.</p>
        <p><span class="code">State</span> is the internal state of the event handler.</p>
        <p>The return values are the same as for <span class="code">handle_event/2</span>
          except they also contain a term <span class="code">Reply</span> which is the reply
          given back to the client as the return value of <span class="code">call</span>.</p>
      </p></div>
    <p><a name="Module:handle_info-2"><span class="bold_code">Module:handle_info(Info, State) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Info = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">State = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = {ok,NewState} | {ok,NewState,hibernate}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> | {swap_handler,Args1,NewState,Handler2,Args2} | remove_handler</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> NewState = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Args1 = Args2 = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Handler2 = Module2 | {Module2,Id}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Module2 = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Id = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>This function is called for each installed event handler when
          an event manager receives any other message than an event or
          a synchronous request (or a system message).</p>
        <p><span class="code">Info</span> is the received message.</p>
        <p>See <span class="code">Module:handle_event/2</span> for a description of State
          and possible return values.</p>
      </p></div>
    <p><a name="Module:terminate-2"><span class="bold_code">Module:terminate(Arg, State) -&gt; term()</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Arg = Args | {stop,Reason} | stop | remove_handler</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> | {error,{'EXIT',Reason}} | {error,Term}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Args = Reason = Term = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Whenever an event handler is deleted from an event manager,
          this function is called. It should be the opposite of
          <span class="code">Module:init/1</span> and do any necessary cleaning up.</p>
        <p>If the event handler is deleted due to a call to
          <span class="code">gen_event:delete_handler</span>, <span class="code">gen_event:swap_handler/3</span>
          or <span class="code">gen_event:swap_sup_handler/3</span>, <span class="code">Arg</span> is
          the <span class="code">Args</span> argument of this function call.</p>
        <p><span class="code">Arg={stop,Reason}</span> if the event handler has a supervised
          connection to a process which has terminated with reason
          <span class="code">Reason</span>.</p>
        <p><span class="code">Arg=stop</span> if the event handler is deleted because
          the event manager is terminating.</p>
	<p>The event manager will terminate if it is part of a supervision
	   tree and it is ordered by its supervisor to terminate.
	   Even if it is <strong>not</strong> part of a supervision tree, it will
	   terminate if it receives an <span class="code">'EXIT'</span> message from
	   its parent.</p>
        <p><span class="code">Arg=remove_handler</span> if the event handler is deleted because
          another callback function has returned <span class="code">remove_handler</span> or
          <span class="code">{remove_handler,Reply}</span>.</p>
        <p><span class="code">Arg={error,Term}</span> if the event handler is deleted because
          a callback function returned an unexpected value <span class="code">Term</span>,
          or <span class="code">Arg={error,{'EXIT',Reason}}</span> if a callback function
          failed.</p>
        <p><span class="code">State</span> is the internal state of the event handler.</p>
        <p>The function may return any term. If the event handler is
          deleted due to a call to <span class="code">gen_event:delete_handler</span>,
          the return value of that function will be the return value of this
          function. If the event handler is to be replaced with another event
          handler due to a swap, the return value will be passed to
          the <span class="code">init</span> function of the new event handler. Otherwise
          the return value is ignored.</p>
      </p></div>
    <p><a name="Module:code_change-3"><span class="bold_code">Module:code_change(OldVsn, State, Extra) -&gt; {ok, NewState}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">OldVsn = Vsn | {down, Vsn}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  Vsn = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">State = NewState = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Extra = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>This function is called for an installed event handler which
          should update its internal state during a release
          upgrade/downgrade, i.e. when the instruction
          <span class="code">{update,Module,Change,...}</span> where
          <span class="code">Change={advanced,Extra}</span> is given in the <span class="code">.appup</span>
          file. See <strong>OTP Design Principles</strong> for more
          information.</p>
        <p>In the case of an upgrade, <span class="code">OldVsn</span> is <span class="code">Vsn</span>, and
          in the case of a downgrade, <span class="code">OldVsn</span> is
          <span class="code">{down,Vsn}</span>. <span class="code">Vsn</span> is defined by the <span class="code">vsn</span>
          attribute(s) of the old version of the callback module
          <span class="code">Module</span>. If no such attribute is defined, the version
          is the checksum of the BEAM file.</p>
        <p><span class="code">State</span> is the internal state of the event handler.</p>
        <p><span class="code">Extra</span> is passed as-is from the <span class="code">{advanced,Extra}</span>
          part of the update instruction.</p>
        <p>The function should return the updated internal state.</p>
      </p></div>
    <p><a name="Module:format_status-2"><span class="bold_code">Module:format_status(Opt, [PDict, State]) -&gt; Status</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Opt = normal | terminate</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">PDict = [{Key, Value}]</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">State = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Status = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <div class="note">
<div class="label">Note</div>
<div class="content"><p>
          <p>This callback is optional, so event handler modules need
            not export it. If a handler does not export this function,
            the gen_event module uses the handler state directly for
            the purposes described below.</p>
        </p></div>
</div>
        <p>This function is called by a gen_event process when:</p>
        <ul>
          <li>One
            of <span class="bold_code"><a href="sys.html#get_status-1">sys:get_status/1,2</a></span>
            is invoked to get the gen_event status. <span class="code">Opt</span> is set
            to the atom <span class="code">normal</span> for this case.</li>
          <li>The event handler terminates abnormally and gen_event
            logs an error. <span class="code">Opt</span> is set to the
            atom <span class="code">terminate</span> for this case.</li>
        </ul>
        <p>This function is useful for customising the form and
          appearance of the event handler state for these cases. An
          event handler callback module wishing to customise
          the <span class="code">sys:get_status/1,2</span> return value as well as how
          its state appears in termination error logs exports an
          instance of <span class="code">format_status/2</span> that returns a term
          describing the current state of the event handler.</p>
        <p><span class="code">PDict</span> is the current value of the gen_event's
          process dictionary.</p>
        <p><span class="code">State</span> is the internal state of the event
          handler.</p>
        <p>The function should return <span class="code">Status</span>, a term that
          customises the details of the current state of the event
          handler. Any term is allowed for <span class="code">Status</span>. The
          gen_event module uses <span class="code">Status</span> as follows:</p>
        <ul>
          <li>When <span class="code">sys:get_status/1,2</span> is called, gen_event
            ensures that its return value contains <span class="code">Status</span> in
            place of the event handler's actual state term.</li>
          <li>When an event handler terminates abnormally, gen_event
            logs <span class="code">Status</span> in place of the event handler's actual
            state term.</li>
        </ul>
        <p>One use for this function is to return compact alternative
          state representations to avoid having large state terms
          printed in logfiles.</p>
      </p></div>
  

  <h3><a name="id181162">SEE ALSO</a></h3>
<div class="REFBODY">
    
    <p><span class="bold_code"><a href="supervisor.html">supervisor(3)</a></span>,
      <span class="bold_code"><a href="sys.html">sys(3)</a></span></p>
  </div>
</div>
<div class="footer">
<hr>
<p>Copyright © 1997-2012 Ericsson AB. All Rights Reserved.</p>
</div>
</div>
</div></body>
</html>