chrono::offset::TimeZone - Rust
https://docs.rs/chrono/0.4.5/chrono/offset/trait.TimeZone.html#method.from_local_date
たとえばこれ、 LocalResult<Date<Self>> (なお Self は TimeZone)
を返すんですが
chrono::offset::LocalResult - Rust
https://docs.rs/chrono/0.4.5/chrono/offset/enum.LocalResult.html
夏時間とかの関係で、変換元と変換先のタイムゾーンの組み合わせによっては「2通りの表現がありうる」とか逆に「表現できない」という場合がありえるんですよ。
こういうの、型で明示されてコンパイル時に扱いの正しさが検査されるとすごく有り難くないですか
逆に同じような機能を動的型付き言語で提供しようとしたとき、(たとえドキュメントをちゃんと読んでいたとしても)うっかりしたユーザがそういったケースを無視して再現不可能なバグを埋め込む未来が容易に想像できませんか
あるいは日時関係だと「タイムゾーンなしで保持されている日時データが、 UTC 表現なのかローカル表現なのか」みたいな例もあるし、結局「人間が注意すべき検査を機械に委託する」というのが静的型付き言語の強さなので
規約で縛らず型で縛れ、みたいな