Skip to content

Instantly share code, notes, and snippets.

@eatonphil
Last active June 28, 2016 13:01
Show Gist options
  • Select an option

  • Save eatonphil/f0e0efa89bf671dfe1d248e80dabf4a3 to your computer and use it in GitHub Desktop.

Select an option

Save eatonphil/f0e0efa89bf671dfe1d248e80dabf4a3 to your computer and use it in GitHub Desktop.
infix >>=
fun (a: 'a option) >>= (b: ('a * 'b) -> 'a option) =
case a of
SOME v => b (v)
| _ => raise Fail "Object<->structure mismatch"
type t = { name: string, id: int }
fun marshall (object) : t =
JsonMarshal.marshallString (object, "name") >>= (fn (object, name) =>
JsonMarshal.marshallInt (object, "id") >>= (fn (object, id) =>
{ name=name, id=id }))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment