-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAbstract-Valid.html
5 lines (5 loc) · 18 KB
/
Abstract-Valid.html
1
2
3
4
5
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Abstract.Valid</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Abstract-Valid.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Abstract.Valid.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">verigraph-1.1.1: Software specification and verification tool based on graph rewriting.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Abstract.Valid</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="#t:Valid">Valid</a> a <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:ValidationResult">ValidationResult</a></li><li class="src short"><a href="#v:ensure">ensure</a> :: <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="../base-4.9.1.0/Data-String.html#t:String">String</a> -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a></li><li class="src short"><a href="#v:withContext">withContext</a> :: <a href="../base-4.9.1.0/Data-String.html#t:String">String</a> -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a></li><li class="src short"><a href="#v:errorMessages">errorMessages</a> :: <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.9.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:validateNamed">validateNamed</a> :: <a href="Abstract-Valid.html#t:Valid">Valid</a> a => (name -> <a href="../base-4.9.1.0/Data-String.html#t:String">String</a>) -> [(name, a)] -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a></li><li class="src short"><a href="#v:ensureValid">ensureValid</a> :: <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> -> <a href="../base-4.9.1.0/System-IO.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Valid" class="def">Valid</a> a <span class="keyword">where</span> <a href="src/Abstract.Valid.html#Valid" class="link">Source</a> <a href="#t:Valid" class="selflink">#</a></p><div class="doc"><p>Type class for types that admit "malformed" values, and must thus be checked.</p><p>Although implementing the <code><a href="Abstract-Valid.html#v:isValid">isValid</a></code> method is sufficient, it will result in poor
error messages. Therefore, implementing the <code><a href="Abstract-Valid.html#v:validate">validate</a></code> method is recommended.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Abstract-Valid.html#v:isValid">isValid</a> | <a href="Abstract-Valid.html#v:validate">validate</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:isValid" class="def">isValid</a> :: a -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.Valid.html#isValid" class="link">Source</a> <a href="#v:isValid" class="selflink">#</a></p><div class="doc"><p>Checks if the given value is well-formed</p></div><p class="src"><a id="v:validate" class="def">validate</a> :: a -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validate" class="link">Source</a> <a href="#v:validate" class="selflink">#</a></p><div class="doc"><p>Checks if the given value is well-formed, providing an explanation of any errors encountered.</p></div></div><div class="subs instances"><p id="control.i:Valid" class="caption collapser" onclick="toggleSection('i:Valid')">Instances</p><div id="section.i:Valid" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valid:Valid:1" class="instance expander" onclick="toggleSection('i:ic:Valid:Valid:1')"></span> <a href="Abstract-Valid.html#t:Valid">Valid</a> m => <a href="Abstract-Valid.html#t:Valid">Valid</a> (<a href="Abstract-Constraint.html#t:Constraint">Constraint</a> m)</span> <a href="src/Abstract.Valid.html#line-56" class="link">Source</a> <a href="#t:Valid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Valid:Valid:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:isValid">isValid</a> :: <a href="Abstract-Constraint.html#t:Constraint">Constraint</a> m -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.Valid.html#isValid" class="link">Source</a> <a href="#v:isValid" class="selflink">#</a></p><p class="src"><a href="#v:validate">validate</a> :: <a href="Abstract-Constraint.html#t:Constraint">Constraint</a> m -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validate" class="link">Source</a> <a href="#v:validate" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valid:Valid:2" class="instance expander" onclick="toggleSection('i:ic:Valid:Valid:2')"></span> <a href="Abstract-Valid.html#t:Valid">Valid</a> m => <a href="Abstract-Valid.html#t:Valid">Valid</a> (<a href="Abstract-Constraint.html#t:AtomicConstraint">AtomicConstraint</a> m)</span> <a href="src/Abstract.Valid.html#line-20" class="link">Source</a> <a href="#t:Valid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Valid:Valid:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:isValid">isValid</a> :: <a href="Abstract-Constraint.html#t:AtomicConstraint">AtomicConstraint</a> m -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.Valid.html#isValid" class="link">Source</a> <a href="#v:isValid" class="selflink">#</a></p><p class="src"><a href="#v:validate">validate</a> :: <a href="Abstract-Constraint.html#t:AtomicConstraint">AtomicConstraint</a> m -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validate" class="link">Source</a> <a href="#v:validate" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valid:Valid:3" class="instance expander" onclick="toggleSection('i:ic:Valid:Valid:3')"></span> (<a href="Abstract-Morphism.html#t:Morphism">Morphism</a> m, <a href="Abstract-Valid.html#t:Valid">Valid</a> m, <a href="../base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Abstract-Morphism.html#t:Obj">Obj</a> m)) => <a href="Abstract-Valid.html#t:Valid">Valid</a> (<a href="Abstract-DPO.html#t:Production">Production</a> m)</span> <a href="src/Abstract.Valid.html#line-41" class="link">Source</a> <a href="#t:Valid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Valid:Valid:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:isValid">isValid</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.Valid.html#isValid" class="link">Source</a> <a href="#v:isValid" class="selflink">#</a></p><p class="src"><a href="#v:validate">validate</a> :: <a href="Abstract-DPO.html#t:Production">Production</a> m -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validate" class="link">Source</a> <a href="#v:validate" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valid:Valid:4" class="instance expander" onclick="toggleSection('i:ic:Valid:Valid:4')"></span> <a href="Abstract-Valid.html#t:Valid">Valid</a> (<a href="Graph-Graph.html#t:Graph">Graph</a> n e)</span> <a href="src/Abstract.Valid.html#line-572" class="link">Source</a> <a href="#t:Valid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Valid:Valid:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:isValid">isValid</a> :: <a href="Graph-Graph.html#t:Graph">Graph</a> n e -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.Valid.html#isValid" class="link">Source</a> <a href="#v:isValid" class="selflink">#</a></p><p class="src"><a href="#v:validate">validate</a> :: <a href="Graph-Graph.html#t:Graph">Graph</a> n e -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validate" class="link">Source</a> <a href="#v:validate" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valid:Valid:5" class="instance expander" onclick="toggleSection('i:ic:Valid:Valid:5')"></span> <a href="Abstract-Valid.html#t:Valid">Valid</a> (<a href="Graph-GraphMorphism.html#t:GraphMorphism">GraphMorphism</a> a b)</span> <a href="src/Abstract.Valid.html#line-282" class="link">Source</a> <a href="#t:Valid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Valid:Valid:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:isValid">isValid</a> :: <a href="Graph-GraphMorphism.html#t:GraphMorphism">GraphMorphism</a> a b -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.Valid.html#isValid" class="link">Source</a> <a href="#v:isValid" class="selflink">#</a></p><p class="src"><a href="#v:validate">validate</a> :: <a href="Graph-GraphMorphism.html#t:GraphMorphism">GraphMorphism</a> a b -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validate" class="link">Source</a> <a href="#v:validate" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valid:Valid:6" class="instance expander" onclick="toggleSection('i:ic:Valid:Valid:6')"></span> <a href="Abstract-Valid.html#t:Valid">Valid</a> (<a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b)</span> <a href="src/Abstract.Valid.html#line-34" class="link">Source</a> <a href="#t:Valid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Valid:Valid:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:isValid">isValid</a> :: <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.Valid.html#isValid" class="link">Source</a> <a href="#v:isValid" class="selflink">#</a></p><p class="src"><a href="#v:validate">validate</a> :: <a href="TypedGraph-Morphism.html#t:TypedGraphMorphism">TypedGraphMorphism</a> a b -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validate" class="link">Source</a> <a href="#v:validate" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valid:Valid:7" class="instance expander" onclick="toggleSection('i:ic:Valid:Valid:7')"></span> <a href="Abstract-Valid.html#t:Valid">Valid</a> (<a href="SndOrder-Morphism.html#t:RuleMorphism">RuleMorphism</a> a b)</span> <a href="src/Abstract.Valid.html#line-88" class="link">Source</a> <a href="#t:Valid" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:ic:Valid:Valid:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:isValid">isValid</a> :: <a href="SndOrder-Morphism.html#t:RuleMorphism">RuleMorphism</a> a b -> <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/Abstract.Valid.html#isValid" class="link">Source</a> <a href="#v:isValid" class="selflink">#</a></p><p class="src"><a href="#v:validate">validate</a> :: <a href="SndOrder-Morphism.html#t:RuleMorphism">RuleMorphism</a> a b -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validate" class="link">Source</a> <a href="#v:validate" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ValidationResult" class="def">ValidationResult</a> <a href="src/Abstract.Valid.html#ValidationResult" class="link">Source</a> <a href="#t:ValidationResult" class="selflink">#</a></p><div class="doc"><p>Result of validating some value</p></div><div class="subs instances"><p id="control.i:ValidationResult" class="caption collapser" onclick="toggleSection('i:ValidationResult')">Instances</p><div id="section.i:ValidationResult" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ValidationResult:Monoid:1" class="instance expander" onclick="toggleSection('i:id:ValidationResult:Monoid:1')"></span> <a href="../base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a></span> <a href="src/Abstract.Valid.html#line-46" class="link">Source</a> <a href="#t:ValidationResult" class="selflink">#</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div id="section.i:id:ValidationResult:Monoid:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a>] -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:ensure" class="def">ensure</a> :: <a href="../base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> -> <a href="../base-4.9.1.0/Data-String.html#t:String">String</a> -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#ensure" class="link">Source</a> <a href="#v:ensure" class="selflink">#</a></p><div class="doc"><p>Return <code>IsValid</code> if the given boolean is true, otherwise return <code>IsInvalid</code> with the given error message.</p></div></div><div class="top"><p class="src"><a id="v:withContext" class="def">withContext</a> :: <a href="../base-4.9.1.0/Data-String.html#t:String">String</a> -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#withContext" class="link">Source</a> <a href="#v:withContext" class="selflink">#</a></p><div class="doc"><p>Prepends the indication of context to any error messages produced by the validation result.</p></div></div><div class="top"><p class="src"><a id="v:errorMessages" class="def">errorMessages</a> :: <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> -> <a href="../base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.9.1.0/Data-String.html#t:String">String</a> <a href="src/Abstract.Valid.html#errorMessages" class="link">Source</a> <a href="#v:errorMessages" class="selflink">#</a></p><div class="doc"><p>Obtains the error messages produced by validation, or <code><a href="../base-4.9.1.0/Data-Maybe.html#v:Nothing">Nothing</a></code> if no error was found</p></div></div><div class="top"><p class="src"><a id="v:validateNamed" class="def">validateNamed</a> :: <a href="Abstract-Valid.html#t:Valid">Valid</a> a => (name -> <a href="../base-4.9.1.0/Data-String.html#t:String">String</a>) -> [(name, a)] -> <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> <a href="src/Abstract.Valid.html#validateNamed" class="link">Source</a> <a href="#v:validateNamed" class="selflink">#</a></p><div class="doc"><p>Validates a list of named values, modifying their names with the given function.</p></div></div><div class="top"><p class="src"><a id="v:ensureValid" class="def">ensureValid</a> :: <a href="Abstract-Valid.html#t:ValidationResult">ValidationResult</a> -> <a href="../base-4.9.1.0/System-IO.html#t:IO">IO</a> () <a href="src/Abstract.Valid.html#ensureValid" class="link">Source</a> <a href="#v:ensureValid" class="selflink">#</a></p><div class="doc"><p>If the given validation detected some error, prints the error out and exits with failure.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>