Implement strong types for join, fixes #61