Declare

Simple not failing

  1. number1 = an integer
  2. text1 = a text
  3. array1 = an array
  4. text2 = a text
  5. add(1,2) = a number
  6. dateValue = a date
  7. user/name = must be Bob
  8. tree/name = must be Oak
  9. aString = must be string

Simple failing

  1. number1 = must not be evaluated
  2. text1 = must not be evaluated
  3. array1 = must not be evaluated
  4. text2 = must not be evaluated
  5. array1(1,2) = must not be evaluated
  6. add2(1,2) = must not be evaluated
  7. dateValue2 = must not be evaluated
  8. user/name = must not be evaluated
  9. tree/name = must not be evaluated
  10. aString2 = must not be evaluated

Default value not failing

  1. aNumber = an integer
  2. number1 = an integer
  1. aNumber = an integer
  2. number1 = an integer

Default value failing

  1. aNumber = must not be evaluated
  2. number1 = must not be evaluated

Strict mode using declare

  1. aNumber = an integer
  2. nonDefinedNumber = must not be evaluated
  3. nonDefinedNumber = must not be evaluated

Strict mode using context

  1. nonDefinedNumber = must not be evaluated
  2. nonDefinedNumber = must not be evaluated

Undefined type

  1. value1 = must be it can be of any type
  2. value2 = must be it can be of any type also

Using tal:define in strict mode (not failing)

  1. number1 = an integer
  2. number2 = an integer

Using tal:define in strict mode (failing)

  1. number1 = must not be evaluated
  2. number2 = must not be evaluated