A bidirectional programming language for ad-hoc, textual data