use std

trait frobable @a =
	frob	: (val : @a -> void)
;;

impl frobable int# =
	frob = {val
		std.put("intptr,")
	}
;;

impl frobable char# =
	frob = {val
		std.put("charptr\n")
	}
;;

generic foo = {x : @a :: frobable @a
	frob(x)
}

const main = {
	var a = (123 : int)
	var b = 'c'
	foo(&a)
	foo(&b)
}

