ADT port 不能使用 ADT,所以任何有巢狀結構的的資料在 port 都會遇到問題。目前的解法是在 outcome 的地方先用 JSON.stringify 轉成 String,income 再用 JSON.parse 轉成 Maybe a(噴 error 的時候就是 Nothing,這個解法有點問題,暫時先這樣 :p)