Haskell Join-calculus DSL