[[!comment format=mdwn
 username="joey"
 subject="""comment 1"""
 date="2019-11-11T17:26:24Z"
 content="""
I think LetsEncrypt's use of Domain is intentional; a certificate is for a
domain and you can't get one for eg a bare IP address or an unqualified
hostname.

AFAICS, Domain is a FQDN.

(Propellor.Property.Hostname has to deal with details of /etc/hosts,
but it does not actually use the Domain type anywhere.)

More generally, it's common for a propellor module to have some
`type Foo = String` that's only used to make parameters more self-documenting
and doesn't have any particular meaning beyond whatever string a Property might
use. One shouldn't worry if two modules have data types that seem to
overlap in content when that's all they're used for. Of course it's nicer to
have less stringy data types, via ADTs or smart constructors, when possible.
"""]]
