--- /dev/null
+import "Prelude"\r
+import "Vector" as Vec\r
+\r
+@private\r
+importJava "java.lang.String" where\r
+ @JavaName format\r
+ format' :: String -> Vector Dynamic -> String\r
+\r
+"""\r
+> format formatString arguments\r
+Returns the format string where specific tags are replaced by argument values.\r
+See the documentation of java.lang.String.format for details.\r
+Examples:\r
+> > format "%.3f" 1.2345678\r
+> "1.235"\r
+> > format "%d %s %f" (3, "Hello world!", 5.6)\r
+> "3 Hello world! 5.600000"\r
+"""\r
+format :: FormatArgument a => String -> a -> String\r
+format formatString arguments = format' formatString (convertFormatArgumentToVector arguments)\r
+\r
+class FormatArgument a where\r
+ convertFormatArgumentToVector :: a -> Vector Dynamic\r
+\r
+instance FormatArgument Double where\r
+ convertFormatArgumentToVector = Vec.singletonVector . toDynamic\r
+instance FormatArgument Float where\r
+ convertFormatArgumentToVector = Vec.singletonVector . toDynamic\r
+instance FormatArgument Integer where\r
+ convertFormatArgumentToVector = Vec.singletonVector . toDynamic\r
+instance FormatArgument Long where\r
+ convertFormatArgumentToVector = Vec.singletonVector . toDynamic\r
+instance FormatArgument String where\r
+ convertFormatArgumentToVector = Vec.singletonVector . toDynamic\r
+instance FormatArgument (a,b) where\r
+ convertFormatArgumentToVector (a,b) = Vec.vector [toDynamic a, toDynamic b]\r
+instance FormatArgument (a,b,c) where\r
+ convertFormatArgumentToVector (a,b,c) = Vec.vector [toDynamic a, toDynamic b, toDynamic c]\r
+instance FormatArgument (a,b,c,d) where\r
+ convertFormatArgumentToVector (a,b,c,d) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d]\r
+instance FormatArgument (a,b,c,d,e) where\r
+ convertFormatArgumentToVector (a,b,c,d,e) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d, toDynamic e]\r
+instance FormatArgument (a,b,c,d,e,f) where\r
+ convertFormatArgumentToVector (a,b,c,d,e,f) = Vec.vector [toDynamic a, toDynamic b, toDynamic c, toDynamic d, toDynamic e, toDynamic f]
\ No newline at end of file