In Java, the Checker Framework (http://types.cs.washington.edu/checker-framework/) provides a way to type check string literals. For example, Java signatures type system differentiates strings literals in different forms:
1. Unqualified strings :
"Hello, world!" -> @Unqualified String
2. Fully qualified names:
"package.Outer.Inner" -> @FullyQualifiedString String
3. Binary names:
"package.Outer$Inner" -> @BinaryName String
4. Field descriptors:
"Lpackage/Outer$Inner;" -> @FieldDescriptor String
It can do the similar checks with regular expressions or SQL statements.
Is it possible to type check string literals in Haskell? I think it would be nice if we can check if a given string literal is a valid URL or an email address at compile time.
Regards,
Kwang Yul Seo