begin
  routine do fn(integerfn fred(integer i))
    integer x
    x = fred(1)
  end
  routine do proc(routine fred(integer i))
    fred(1)
  end
  routine do map(integermap fred(integer i))
    fred(1) = 1
  end
  routine do pred(predicate fred(integer i))
    return if fred(1)
  end

  integerfn fn fred(integer i)
    result = i
  end

  routine proc fred(integer i)
  end

  integermap map fred(integer i)
    owninteger j
    result == j
  end

  predicate pred fred(integer i)
    true if i&1 = 0
    false
  end

endofprogram