library(types)
This library module provides more and better type tests. For the purposes of this library, we first define an abstract type typeterm, as follows:
typeterm | ::= atom
|
| atomic
| |
| callable
| |
| character
| |
| character_code
| |
| compound
| |
| float
| |
| float( rangeterm)
| |
| ground
| |
| integer
| |
| integer( rangeterm)
| |
| list
| |
| list( Type)
| |
| nonvar
| |
| number
| |
| number( rangeterm)
| |
| oneof( L)
| |
| pair
| |
| proper_list
| |
| proper_list( Type)
| |
| simple
| |
| term
| |
| var
| |
rangeterm | ::= between(L,U)
|
| >=(L)
| |
| >(L)
| |
| =\=(L)
|
Exported predicates:
must_be(
+Term,
+Type,
+Goal,
+ArgNo)
illarg(
+ErrorTerm,
+Goal,
+ArgNo)
illarg(
+ErrorTerm,
+Goal,
+ArgNo,
+Culprit)
var
type(
ErrorType)
must_be(
Culprit,
ErrorType,
Goal,
ArgNo)
.
domain(
ErrorType,
ErrorDomain)
must_be(
Culprit,
ErrorType,
Goal,
ArgNo)
.
If the type is valid, a
Domain Error is raised with the expected domain being
ErrorDomain.
force_type(
ExpType)
context(
ContextType,
CommandType)
existence(
ObjType,
Culprit,
Message)
permission(
Operation,
ObjType,
Message)
representation(
ErrorType)
evaluation(
ErrorType)
consistency(
Culprit1,
Culprit2,
Message)
syntax(
Pos,
Msg,
Tokens,
AfterError)
resource(
Resource)
system(
Message)