Nickle has a C-like syntax and procedural imperative semantics. In addition to borrowing from other imperative languages like Java and Modula-3 [Nel91], Nickle incorporates a number of useful notions from the functional programming community.