TODO
-------------------------------------------------------------------------------
+- DDuncan's Str types
+
+subtype 'Str'
+ => as 'Value'
+ => where { Encode::is_utf8( $_[0] ) or $_[0] !~ m/[^0x00-0x7F]/x }
+ => optimize_as { defined($_[0]) && !ref($_[0]) };
+
+subtype 'Blob'
+ => as 'Value'
+ => where { !Encode::is_utf8( $_[0] ) }
+ => optimize_as { defined($_[0]) && !ref($_[0]) };
+
+
- should handle some moose-specific options in &Moose::Meta::Class::create
things like roles, and method modifiers (although those can probably be
ignored if i want to)
=head2 Type Coercion Constructors
-Type constraints can also contain type coercions as well. In most
-cases Moose will run the type-coercion code first, followed by the
-type constraint check. This feature should be used carefully as it
-is very powerful and could easily take off a limb if you are not
-careful.
+Type constraints can also contain type coercions as well. If you
+ask your accessor too coerce, the Moose will run the type-coercion
+code first, followed by the type constraint check. This feature
+should be used carefully as it is very powerful and could easily
+take off a limb if you are not careful.
See the L<SYNOPOSIS> for an example of how to use these.