Describir: Sparcl: A language for partially invertible computation