+use LaTeX::TikZ::Meta::TypeConstraint::Autocoerce;
+
+register_type_constraint(
+ LaTeX::TikZ::Meta::TypeConstraint::Autocoerce->new(
+ name => 'LaTeX::TikZ::Point::Autocoerce',
+ target => find_type_constraint(__PACKAGE__),
+ ),
+);
+
+coerce 'LaTeX::TikZ::Point::Autocoerce'
+ => from 'LaTeX::TikZ::Point'
+ => via { $_ };
+
+coerce 'LaTeX::TikZ::Point::Autocoerce'
+ => from 'Num'
+ => via { LaTeX::TikZ::Point->new(x => $_, y => 0) };
+
+coerce 'LaTeX::TikZ::Point::Autocoerce'
+ => from 'ArrayRef'
+ => via { LaTeX::TikZ::Point->new(x => $_->[0], y => $_->[1]) };
+
+__PACKAGE__->meta->make_immutable;
+
+=head1 SEE ALSO
+
+L<LaTeX::TikZ>.
+