purescript-0.12.0: tests/purs/passing/SolvingAppendSymbol.purs
module Main where
import Prelude
import Effect.Console (log)
import Prim.Symbol (class Append)
import Type.Data.Symbol (SProxy(..), reflectSymbol)
import Type.Data.Symbol (append) as Symbol
sym :: SProxy ""
sym = SProxy
symA :: SProxy "A"
symA = SProxy
symB :: SProxy "B"
symB = SProxy
egAB :: SProxy "AB"
egAB = Symbol.append symA symB
egBA :: SProxy "BA"
egBA = Symbol.append symB symA
egA' :: SProxy "A"
egA' = Symbol.append sym (Symbol.append symA sym)
main = do
let gotAB = reflectSymbol egAB == "AB"
gotBA = reflectSymbol egBA == "BA"
gotA' = reflectSymbol egA' == "A"
when (not gotAB) $ log "Did not get AB"
when (not gotBA) $ log "Did not get BA"
when (not gotA') $ log "Did not get A"
when (gotAB && gotBA && gotA') $ log "Done"