The violet programming language
Failed experiment: Refining inductive types with constructors subscripting