nil is an oddball object that always represents itself. It can not be mimicked and (alongside false) is one of the two false values.

Mimics
Inactive cells
Active cells
Specs
Inactive cells (details)
inspect = "nil"
kind = "nil"
notice = "nil"
Active cells (details)
&&(...)

nil

macro(
  argCount = call arguments length 
  if(
    argCount ==(
      1), 
    
    then = call arguments [](
        0) 
    
    nil, 
    error!(Condition Error Invocation NoMatch, message: call message, context: call currentContext)) 
  )
?&(...)

nil

macro(
  argCount = call arguments length 
  if(
    argCount ==(
      1), 
    
    then = call arguments [](
        0) 
    
    nil, 
    error!(Condition Error Invocation NoMatch, message: call message, context: call currentContext)) 
  )
?|(...)

nil

macro(
  call argAt(0))
and(...)

Does not evaluate argument and returns nil

macro(
  argCount = call arguments length 
  if(
    argCount ==(
      1), 
    
    then = call arguments [](
        0) 
    
    nil, 
    error!(Condition Error Invocation NoMatch, message: call message, context: call currentContext)) 
  )
false?()

returns true.

method(
  true)
nand(...)

Does not evaluate its argument and returns true

macro(
  argCount = call arguments length 
  cond(
    argCount ==(
      1), 
    
    other = call arguments [](
        0) 
    
    true, 
    error!(Condition Error Invocation NoMatch, message: call message, context: call currentContext)) 
  )
nil?()

returns true.

method(
  true)
nor(...)

Evaluates its argument and returns the inverse of it

macro(
  argCount = call arguments length 
  cond(
    argCount ==(
      1), 
    
    other = call argAt(
        0) 
    
    if(other, false, true), 
    error!(Condition Error Invocation NoMatch, message: call message, context: call currentContext)) 
  )
not()

Does not evaluate arguments and returns true

method(
  true)
or(...)

Evaluates the argument and returns the result

macro(
  call argAt(0))
true?()

returns false

method(
  false)
xor(...)

Evaluates the argument and returns the inverse of the inverse of the argument

macro(
  argCount = call arguments length 
  cond(
    argCount ==(
      1), 
    
    then = call argAt(
        0) 
    
    if(then, true, false), 
    error!(Condition Error Invocation NoMatch, message: call message, context: call currentContext)) 
  )
||(...)

nil

macro(
  call argAt(0))