Tekstiviesti: A Reflective Functional Language for Hardware Design and Theorem Proving