Make weird examples compile again.
Re-add exhaustive - with a simpler implementation