packages feed

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"