git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Lift ref functions to avoid ADT internals in FFI code
commitdaaf9733e0d7ce2d2fe70653847b24c154edae6d authorGary Burgess <gary.burgess@gmail.com> dateFri 21 Feb 2014, 18:03 (13 years ago) parent11e49b2
1 file changed+8−11
prelude/prelude.purs+8−11
prelude/prelude.purs+8−11
@@ -162,17 +162,14 @@ module Prelude where
162162 -- Referential equality
163163 data Ref a = Ref a
164164
165− foreign import refEq "function refEq(r1) {\
166− \ return function(r2) {\
167− \ return r1.values[0] === r2.values[0];\
168− \ };\
169− \}" :: forall a. Ref a -> Ref a -> Boolean
170−
171− foreign import refIneq "function refIneq(r1) {\
172− \ return function(r2) {\
173− \ return r1.values[0] !== r2.values[0];\
174− \ };\
175− \}" :: forall a. Ref a -> Ref a -> Boolean
165+ liftRef :: forall a b. (a -> a -> b) -> Ref a -> Ref a -> b
166+ liftRef f (Ref x) (Ref y) = f x y
167+
168+ refEq :: forall a. Ref a -> Ref a -> Boolean
169+ refEq = liftRef unsafeRefEq
170+
171+ refIneq :: forall a. Ref a -> Ref a -> Boolean
172+ refIneq = liftRef unsafeRefIneq
176173
177174 foreign import unsafeRefEq "function unsafeRefEq(r1) {\
178175 \ return function(r2) {\