packages feed

purescript-0.6.5: examples/passing/ObjectUpdater.purs

module Main where

import Control.Monad.Eff
import Debug.Trace

foreign import eqeqeq
  """
  function eqeqeq(x) {
    return function (y) {
      if (x == y) return x;
      throw new Error("Unexpected result: " + x + " /== " + y);
    };
  };
  """ :: forall a. a -> a -> a

(===) = eqeqeq
infixl 4 ===

getValue :: forall e. Eff (| e) Boolean
getValue = return true

main = do
  let record = { value: false }
  record' <- record { value = _ } <$> getValue
  print $ record'.value === true

  let point = { x: 1, y: 1 }
      x = 10
      point' = (point { x = _, y = x }) 100

  print $ point'.x === 100
  print $ point'.y === 10