purescript-0.15.15: tests/purs/passing/DuplicateProperties.purs
module Main where
import Prelude
import Effect.Console (log)
import Type.Proxy (Proxy(..))
subtractX :: forall r a. Proxy (x :: a | r) -> Proxy r
subtractX Proxy = Proxy
extractX :: forall r a. Proxy (x :: a | r) -> Proxy a
extractX Proxy = Proxy
hasX :: forall r a b. Proxy (x :: a, y :: b | r)
hasX = Proxy
test1 = subtractX (subtractX hasX)
test2
:: forall r a b
. Proxy (x :: a, x :: b, x :: Int | r)
-> Proxy Int
test2 x = extractX (subtractX (subtractX x))
main = log "Done"