An autoprojector (self-applicable partial evaluator) for a higher order subset of the strict functional language Scheme. Similix handles programs with user defined primitive abstract data type operators which may process global variables (such as input/output operators).