Hi, I'm writing a module that contains a data type for a MacAddress.
Given that, I can do things like validate and format.
But there are several ways you can display a MacAddress:
'aabbccddeeff' or '00:11:22:33:AA:BB' or 'aa:bb:cc:00:11:22'.
Different external systems want the mac addresses in different formats, and I'd like to centralize that logic.
** So the design question:
I can't just use a `show` function directly to do this, since there are options I need to pass.
I could use separate functions that return a string.
I could use newtype to wrap each display style of mac address in a type that has a specific `show` instance that spits out the right format. So a `Pretty` and `Lower` and similar types.
---
Is there a best-practice here? Am I totally missing a better way to model this idea?