Author: CEL Scheme.