packages feed

purescript-0.15.15: tests/purs/passing/SolvingCompareSymbol.purs

module Main where

import Prelude
import Effect.Console (log)
import Prim.Symbol (class Compare)
import Prim.Ordering (Ordering, LT, EQ, GT)
import Type.Proxy (Proxy(..))
import Type.Data.Symbol (compare) as Symbol
import Type.Data.Ordering (reflectOrdering)

symA :: Proxy "A"
symA = Proxy

symB :: Proxy "B"
symB = Proxy

egLT :: Proxy LT
egLT = Symbol.compare symA symB

egEQ :: Proxy EQ
egEQ = Symbol.compare symA symA

egGT :: Proxy GT
egGT = Symbol.compare symB symA

main = do
  let gotLT = reflectOrdering egLT == LT
      gotEQ = reflectOrdering egEQ == EQ
      gotGT = reflectOrdering egGT == GT
  when (not gotLT) $ log "Did not get LT"
  when (not gotEQ) $ log "Did not get EQ"
  when (not gotGT) $ log "Did not get GT"
  when (gotLT && gotEQ && gotGT) $ log "Done"