Help for this page
A basic technique is to use newtype declarations to declare separate
types for separate intents.
append (AnnotatedString x) (AnnotatedString y)
= AnnotatedString (x ++ y)
If x and y have the same safety level,
then (x ++ y) has again that same safety level.
type family Join a b
type instance Join Safe Safe = Safe
type instance Join Safe Unsafe = Unsafe
type instance Join Unsafe Safe = Unsafe
type instance Join Unsafe Unsafe = Unsafe
:: AnnotatedString a
-> AnnotatedString b
-> AnnotatedString (Join a b)
(x ++ y) is at least as safe as the least safe of x and y.
shiny regexes and rules offered by Perl 6
other CPAN module
by looking at it on my monitor
I print it and I read it in spare time
first I convert it into $FORMAT, then I parse it
I hire someone to do it
using my custom module
I write a brand new language to do the task
on the server where I play as human, XML is forbidden
what is XML?
I speak XML natively
I write a new grammar for Perl 6
some other way
Results (295 votes),