let b =
  ((let module Array = Belt.Array in
      ([|1;2|] -> (Array.map (fun [arity:1]x -> x + 1))) -> Js.log)
  [@res.braces ])
let b =
  ((let open Belt.Array in
      ([|1;2|] -> (map (fun [arity:1]x -> x + 1))) -> Js.log)
  [@res.braces ])
let b = ((let exception QuitEarly  in throw QuitEarly)[@res.braces ])
let b = ((let a = 1 in let b = 2 in a + b)[@res.braces ])
let b = ((let _ = sideEffect () in ())[@res.braces ])
let b = ((let _ = sideEffect () in ())[@res.braces ])
let b = ((a (); b (); c ())[@res.braces ])
let b = ((a (); b (); (let a = 1 in f a))[@res.braces ])
let b = ((let a = 1 in let b = 2 in ())[@res.braces ])
let b =
  ((let module Array = Belt.Array in
      let open Array in
        let exception Terminate of int  in
          let a = 1 in
          let b = 2 in
          sideEffect ();
          (let x = (1 + 2) -> (fun [arity:1]x -> x + 1) in
           throw (Terminate x)))
  [@res.braces ])
let b = ((f (); g (); h (); (let arr = [|1;2;3|] in ()))[@res.braces ])
let res =
  ((let a = {js|a starts out as|js} in
    (((print_string a; (let a = 20 in print_int a)))
    [@res.braces ]);
    print_string a)
  [@res.braces ])
let res =
  ((let a = {js|first its a string|js} in
    let a = 20 in print_int a; print_int a; print_int a)
  [@res.braces ])
let res =
  ((let a = {js|a is always a string|js} in
    print_string a; (let b = 30 in print_int b))
  [@res.braces ])
let nestedLet = ((let _ = 1 in ())[@res.braces ])
let nestedLet = ((let _ = 1 in 2)[@res.braces ])
let init [arity:1]() = ((foo (1 === 1); [%assert 1 === 2])[@res.braces ])
let init [arity:1]() = (([%assert 1 === 2]; foo (1 === 1); [%assert 1 === 2])
  [@res.braces ])
let f [arity:1]() = ((let x = 1 in fun [arity:1]_ -> ())[@res.braces ])
let reifyStyle (type a) [arity:1](x : 'a) =
  (((let module Internal =
       struct
         type constructor
         external canvasGradient : constructor = "CanvasGradient"[@@val ]
         external canvasPattern : constructor = "CanvasPattern"[@@val ]
         let instanceOf =
           ([%raw
              (({js|function(x,y) {return +(x instanceof y)}|js})
                [@res.template ])] : 'a -> constructor -> bool (a:2))
       end in
       ((if (Js.typeof x) == {js|string|js}
         then Obj.magic String
         else
           if Internal.instanceOf x Internal.canvasGradient
           then Obj.magic Gradient
           else
             if Internal.instanceOf x Internal.canvasPattern
             then Obj.magic Pattern
             else
               throw
                 (Invalid_argument
                    {js|Unknown canvas style kind. Known values are: String, CanvasGradient, CanvasPattern|js})),
         (Obj.magic x)))
  [@res.braces ]) : (a style * a))
let calc_fps [arity:2]t0 t1 =
  ((let delta = (t1 -. t0) /. 1000. in 1. /. delta)[@res.braces ])