a mini functional compiler