Mithril.jsのm.prop()で何らかの処理したgetter-setterを返したいです

/`John`という値でgetter-setterを初期化
var name = m.prop("John");

//値を取得する
var a = name(); //a == "John"

//双方向データバインディングのサンプル
var User = {
    model: function(name) {
        this.name = m.prop(name);
    },
    controller: function() {
        this.user = new User.model("John Doe");
    },
    view: function(controller) {
        m.render("body", [
            m("input", {onchange: m.withAttr("value", controller.user.name), value: controller.user.name()})
        ]);
    }
};

上記でJohnという値を入力したら、おはよう Johnこんばんは John と表示させるにはどうすれば良いでしょうか?
・例えばですがmodel部分を下記のようにしてみたいのですが

this.nameOhyou = m.prop(name);
this.nameKonbanha = m.prop(name);

また、そもそも論として、何らかの処理したgetter-setterを返すという考え自体がおかしいのでしょうか?
・何らかの処理をしてしまったら、それはもうgetter-setterではない?
・m.prop()では出来ないのでしょうか?

リンク