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)
+
- type unions
Add support for doing it with Classes which do not have