Index: uspace/app/sbi/src/builtin/bi_boxed.c
===================================================================
--- uspace/app/sbi/src/builtin/bi_boxed.c	(revision 38aaacc20a85af2361a0240ac2e7d643e086ecfa)
+++ uspace/app/sbi/src/builtin/bi_boxed.c	(revision 38aaacc20a85af2361a0240ac2e7d643e086ecfa)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2010 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @file Boxed primitive types binding. */
+
+#include "../builtin.h"
+#include "../mytypes.h"
+
+#include "bi_boxed.h"
+
+/** No declaration function. Boxed types are declared in the library. */
+
+/** Bind boxed types.
+ *
+ * @param bi	Builtin object
+ */
+void bi_boxed_bind(builtin_t *bi)
+{
+	bi->boxed_bool = builtin_find_lvl0(bi, "Bool");
+	bi->boxed_char = builtin_find_lvl0(bi, "Char");
+	bi->boxed_int = builtin_find_lvl0(bi, "Int");
+	bi->boxed_string = builtin_find_lvl0(bi, "String");
+}
Index: uspace/app/sbi/src/builtin/bi_boxed.h
===================================================================
--- uspace/app/sbi/src/builtin/bi_boxed.h	(revision 38aaacc20a85af2361a0240ac2e7d643e086ecfa)
+++ uspace/app/sbi/src/builtin/bi_boxed.h	(revision 38aaacc20a85af2361a0240ac2e7d643e086ecfa)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2010 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef BI_BOXED_H_
+#define BI_BOXED_H_
+
+#include "../mytypes.h"
+
+void bi_boxed_bind(builtin_t *bi);
+
+#endif
Index: uspace/app/sbi/src/builtin/bi_error.c
===================================================================
--- uspace/app/sbi/src/builtin/bi_error.c	(revision 074444f189ee9356421b26e70454fae61c81def3)
+++ uspace/app/sbi/src/builtin/bi_error.c	(revision 38aaacc20a85af2361a0240ac2e7d643e086ecfa)
@@ -36,5 +36,8 @@
 #include "bi_error.h"
 
-/** Declare error class hierarchy. */
+/** Declare error class hierarchy.
+ *
+ * @param bi	Builtin object
+ */
 void bi_error_declare(builtin_t *bi)
 {
@@ -57,5 +60,8 @@
 		"end\n");}
 
-/** Bind error class hierarchy. */
+/** Bind error class hierarchy.
+ *
+ * @param bi	Builtin object
+ */
 void bi_error_bind(builtin_t *bi)
 {
Index: uspace/app/sbi/src/builtin/bi_fun.c
===================================================================
--- uspace/app/sbi/src/builtin/bi_fun.c	(revision 074444f189ee9356421b26e70454fae61c81def3)
+++ uspace/app/sbi/src/builtin/bi_fun.c	(revision 38aaacc20a85af2361a0240ac2e7d643e086ecfa)
@@ -44,8 +44,12 @@
 #include "bi_fun.h"
 
+static void bi_fun_builtin_write(run_t *run);
 static void bi_fun_builtin_writeline(run_t *run);
 static void bi_fun_task_exec(run_t *run);
 
-/** Declare builtin functions. */
+/** Declare builtin functions.
+ *
+ * @param bi	Builtin object
+ */
 void bi_fun_declare(builtin_t *bi)
 {
@@ -63,4 +67,5 @@
 	csi = stree_csi_new(csi_class);
 	csi->name = ident;
+	list_init(&csi->targ);
 	list_init(&csi->members);
 
@@ -75,4 +80,9 @@
 	list_append(&bi->program->module->members, modm);
 
+	/* Declare Builtin.Write(). */
+
+	fun_sym = builtin_declare_fun(csi, "Write");
+	builtin_fun_add_arg(fun_sym, "arg");
+
 	/* Declare Builtin.WriteLine(). */
 
@@ -88,13 +98,20 @@
 }
 
-/** Bind builtin functions. */
+/** Bind builtin functions.
+ *
+ * @param bi	Builtin object
+ */
 void bi_fun_bind(builtin_t *bi)
 {
+	builtin_fun_bind(bi, "Builtin", "Write", bi_fun_builtin_write);
 	builtin_fun_bind(bi, "Builtin", "WriteLine", bi_fun_builtin_writeline);
 	builtin_fun_bind(bi, "Task", "Exec", bi_fun_task_exec);
 }
 
-/** Write a line of output. */
-static void bi_fun_builtin_writeline(run_t *run)
+/** Write to the console.
+ *
+ * @param run	Runner object
+ */
+static void bi_fun_builtin_write(run_t *run)
 {
 	rdata_var_t *var;
@@ -103,5 +120,5 @@
 
 #ifdef DEBUG_RUN_TRACE
-	printf("Called Builtin.WriteLine()\n");
+	printf("Called Builtin.Write()\n");
 #endif
 	var = run_local_vars_lookup(run, strtab_get_sid("arg"));
@@ -109,25 +126,43 @@
 
 	switch (var->vc) {
+	case vc_bool:
+		printf("%s", var->u.bool_v->value ? "true" : "false");
+		break;
 	case vc_char:
 		rc = bigint_get_value_int(&var->u.char_v->value, &char_val);
 		if (rc == EOK)
-			printf("%lc\n", char_val);
+			printf("%lc", char_val);
 		else
-			printf("???\n");
+			printf("???");
 		break;
 	case vc_int:
 		bigint_print(&var->u.int_v->value);
-		putchar('\n');
 		break;
 	case vc_string:
-		printf("%s\n", var->u.string_v->value);
+		printf("%s", var->u.string_v->value);
 		break;
 	default:
-		printf("Unimplemented: writeLine() with unsupported type.\n");
-		exit(1);
-	}
-}
-
-/** Start an executable and wait for it to finish. */
+		printf("Unimplemented: Write() with unsupported type.\n");
+		exit(1);
+	}
+}
+
+/** Write a line of output.
+ *
+ * @param run	Runner object
+ */
+static void bi_fun_builtin_writeline(run_t *run)
+{
+#ifdef DEBUG_RUN_TRACE
+	printf("Called Builtin.WriteLine()\n");
+#endif
+	bi_fun_builtin_write(run);
+	putchar('\n');
+}
+
+/** Start an executable and wait for it to finish.
+ *
+ * @param run	Runner object
+ */
 static void bi_fun_task_exec(run_t *run)
 {
@@ -137,5 +172,5 @@
 	rdata_var_t *arg;
 	int idx, dim;
-	char **cmd;
+	const char **cmd;
 
 #ifdef DEBUG_RUN_TRACE
@@ -178,5 +213,5 @@
 	cmd[dim] = '\0';
 
-	if (os_exec(cmd) != EOK) {
+	if (os_exec((char * const *)cmd) != EOK) {
 		printf("Error: Exec failed.\n");
 		exit(1);
Index: uspace/app/sbi/src/builtin/bi_textfile.c
===================================================================
--- uspace/app/sbi/src/builtin/bi_textfile.c	(revision 074444f189ee9356421b26e70454fae61c81def3)
+++ uspace/app/sbi/src/builtin/bi_textfile.c	(revision 38aaacc20a85af2361a0240ac2e7d643e086ecfa)
@@ -53,5 +53,8 @@
 static void bi_textfile_is_eof(run_t *run);
 
-/** Declare TextFile builtin. */
+/** Declare TextFile builtin.
+ *
+ * @param bi	Builtin object
+ */
 void bi_textfile_declare(builtin_t *bi)
 {
@@ -79,5 +82,8 @@
 }
 
-/** Bind TextFile builtin. */
+/** Bind TextFile builtin.
+ *
+ * @param bi	Builtin object
+ */
 void bi_textfile_bind(builtin_t *bi)
 {
@@ -90,9 +96,12 @@
 }
 
-/** Open a text file for reading. */
+/** Open a text file for reading.
+ *
+ * @param run	Runner object
+ */
 static void bi_textfile_openread(run_t *run)
 {
 	rdata_var_t *fname_var;
-	char *fname;
+	const char *fname;
 	FILE *file;
 
@@ -130,9 +139,12 @@
 }
 
-/** Open a text file for writing. */
+/** Open a text file for writing.
+ *
+ * @param run	Runner object
+ */
 static void bi_textfile_openwrite(run_t *run)
 {
 	rdata_var_t *fname_var;
-	char *fname;
+	const char *fname;
 	FILE *file;
 
@@ -170,5 +182,8 @@
 }
 
-/** Close a text file. */
+/** Close a text file.
+ *
+ * @param run	Runner object
+ */
 static void bi_textfile_close(run_t *run)
 {
@@ -205,5 +220,8 @@
 
 
-/** Read one line from a text file. */
+/** Read one line from a text file.
+ *
+ * @param run	Runner object
+ */
 static void bi_textfile_readline(run_t *run)
 {
@@ -272,5 +290,8 @@
 }
 
-/** Write one line to a text file. */
+/** Write one line to a text file.
+ *
+ * @param run	Runner object
+ */
 static void bi_textfile_writeline(run_t *run)
 {
@@ -278,5 +299,5 @@
         rdata_var_t *self_f_var;
 	rdata_var_t *line_var;
-	char *line;
+	const char *line;
 
 	run_proc_ar_t *proc_ar;
@@ -312,5 +333,8 @@
 }
 
-/** Return value of EOF flag. */
+/** Return value of EOF flag.
+ *
+ * @param run	Runner object
+ */
 static void bi_textfile_is_eof(run_t *run)
 {
