packages feed

purescript-0.6.5: examples/passing/ObjectWildcards.purs

module Main where

import Control.Monad.Eff
import Debug.Trace

mkRecord = { foo: _, bar: _, baz: "baz" }

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

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 ===

main = do
  obj <- { value: _ } <$> getValue
  print obj.value
  let x = 1
  point <- { x: _, y: x } <$> return 2
  print $ point.x === 2
  print $ point.y === 1
  trace (mkRecord 1 "Done!").bar