Can We Cross-Pollinate with Unison?

I’ve been building a Purescript Deku/Hyrule front end and Haskell back end app for a while. Obviously, even with the best codegen, it is an ever-present problem keeping my types aligned between the back and front end and making sure there’s no corner cases in the API I am constructing.

Anyway, I’ve always had my eye on Unison for the back end…and as it hit 1.0 recently, I looked into the project. Picture that meme of the man walking with his girlfriend and looking back at another woman. That woman is Unison perhaps. :slight_smile:

Anyway, I started to look into porting my back end into Unison and it doesn’t actually seem that bad. However, they (unlike us) don’t seem to have much in way of strong front end libraries available. Is that an opportunity for cross-pollination? Or are we too different for that to be possible? I’m pretty sure that’s the case but both of our syntax are MLesque…

What do the Purescript community and devs think of this project? And what do you think are the ramifications of it? Do you think there’s any opportunity for wiring our front end tools to the Unison ecosystem?

I’ll keep building with the tools I have (and I sincerely love Purescript) but I’ll always have an eye toward new ideas…and Unison is surely one. Or perhaps an old idea that we haven’t seen done quite like that…

Edit: I stumbled across a fairly pertinent video today. It seems that I wasn’t completely out of left field with this idea since it is mentioned in the video that one would still need JavaScript to use Unison for browser UI’s.

I think Unison is a very cool project. It’s quite some time since I looked at it though!

As with many cross-language integrations I think the main problem will be adapting the type systems to each other, depending on what you had in mind.

1 Like

I had the entire gamut of cross-pollination in mind all the way from subtle to complete Purescript codegen using Unison.

Mainly, I wanted to see how (more knowledgeable and experienced) people would go about it since there’s so many ways that could happen.

Honestly, the only reason I’m not going full-throttle toward learning Unison (or trying to use it like I’m implying) is their discord-centered community where questions get buried never to be seen again after like an hour.

I do think it is fertile ground, though. Our Chez Scheme back end is another example of great cross pollination. There’s so many elegant ideas in Unison that I’d like to start using either it or Chez-Scheme for back ends.