<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >ForSyDe.AbsentExt</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_ForSyDe-AbsentExt.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >ForSyDe-3.1.1: ForSyDe's Haskell-embedded Domain Specific Language.</TD ><TD CLASS="topbut" ><A HREF="src/ForSyDe-AbsentExt.html" >Source code</A ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >ForSyDe.AbsentExt</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >experimental</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >forsyde-dev@ict.kth.se</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A ></TT > is used to extend existing data types with the value 'absent', which models the absence of a value. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AAbstExt" >AbstExt</A > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AAbst" >Abst</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APrst" >Prst</A > a</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfromAbstExt" >fromAbstExt</A > :: a -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AunsafeFromAbstExt" >unsafeFromAbstExt</A > :: <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AabstExt" >abstExt</A > :: a -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Apsi" >psi</A > :: (a -> b) -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisAbsent" >isAbsent</A > :: <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisPresent" >isPresent</A > :: <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AabstExtFunc" >abstExtFunc</A > :: (a -> b) -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > b</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:AbstExt" ><A NAME="t%3AAbstExt" ></A ></A ><B >AbstExt</B > a </TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-AbsentExt.html#AbstExt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >The data type <TT ><A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A ></TT > has two constructors. The constructor <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AAbst" >Abst</A ></TT > is used to model the absence of a value, while the constructor <TT ><A HREF="ForSyDe-AbsentExt.html#v%3APrst" >Prst</A ></TT > is used to model present values. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:Abst" ><A NAME="v%3AAbst" ></A ></A ><B >Abst</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Prst" ><A NAME="v%3APrst" ></A ></A ><B >Prst</B > a</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:AbstExt')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:AbstExt" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1" >Typeable1</A > <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData" >Data</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData" >Data</A > (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead" >Read</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead" >Read</A > (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/template-haskell-2.4.0.1/Language-Haskell-TH-Syntax.html#t%3ALift" >Lift</A > a[a8cqh] => <A HREF="/usr/share/doc/ghc/html/libraries/template-haskell-2.4.0.1/Language-Haskell-TH-Syntax.html#t%3ALift" >Lift</A > (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a[a8cqh])</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="ForSyDe-Process.html#t%3AProcType" >ProcType</A > a => <A HREF="ForSyDe-Process.html#t%3AProcType" >ProcType</A > (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:fromAbstExt" ><A NAME="v%3AfromAbstExt" ></A ></A ><B >fromAbstExt</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-AbsentExt.html#fromAbstExt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: a</TD ><TD CLASS="rdoc" >Default value returned if the input is <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AAbst" >Abst</A ></TT > </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >The function <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AfromAbstExt" >fromAbstExt</A ></TT > extracts the inner value contained in <TT ><A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A ></TT > </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:unsafeFromAbstExt" ><A NAME="v%3AunsafeFromAbstExt" ></A ></A ><B >unsafeFromAbstExt</B > :: <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> a</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-AbsentExt.html#unsafeFromAbstExt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Similar to <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AfromAbstExt" >fromAbstExt</A ></TT >, but without default value </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:abstExt" ><A NAME="v%3AabstExt" ></A ></A ><B >abstExt</B > :: a -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-AbsentExt.html#abstExt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The function <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AabstExt" >abstExt</A ></TT > converts a usual value to a present value. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:psi" ><A NAME="v%3Apsi" ></A ></A ><B >psi</B > :: (a -> b) -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > b</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-AbsentExt.html#psi" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The function <TT ><A HREF="ForSyDe-AbsentExt.html#v%3Apsi" >psi</A ></TT > is identical to <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AabstExtFunc" >abstExtFunc</A ></TT > and should be used in future. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:isAbsent" ><A NAME="v%3AisAbsent" ></A ></A ><B >isAbsent</B > :: <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-AbsentExt.html#isAbsent" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The functions <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AisAbsent" >isAbsent</A ></TT > checks for the absence of a value. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:isPresent" ><A NAME="v%3AisPresent" ></A ></A ><B >isPresent</B > :: <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-AbsentExt.html#isPresent" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The functions <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AisPresent" >isPresent</A ></TT > checks for the presence of a value. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:abstExtFunc" ><A NAME="v%3AabstExtFunc" ></A ></A ><B >abstExtFunc</B > :: (a -> b) -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a -> <A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt" >AbstExt</A > b</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-AbsentExt.html#abstExtFunc" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The function <TT ><A HREF="ForSyDe-AbsentExt.html#v%3AabstExtFunc" >abstExtFunc</A ></TT > extends a function in order to process absent extended values. If the input is ("bottom"), the output will also be ("bottom"). </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >