Been going down the typed and functional rabbit hole for years. Mostly TypeScript in the frontend but more recently Plutus smart contracts in Haskell.