Home

Awesome

purescript-untagged-to-tagged

Little helper library to make it easy to convert between untagged and tagged unions.

Installation

spago install untagged-to-tagged

Usage

Convert an untagged union to a tagged union. E.g.

type ISU
  = Int |+| String

data IST
  = IT Int
  | ST String

-- generic instance is needed for the conversion
derive instance Generic IST _

instance Show IST where
  show = genericShow

isul :: ISU
isul = asOneOf 10

isur :: ISU
isur = asOneOf "Wurst"

istl :: IST
istl = toTagged isul 
-- IT 10

istr :: IST 
istr = toTagged isur 
-- ST "Wurst"

Convert a tagged union to an untagged union. E.g.

data IST = IT Int | ST String 
derive instance Generic IST _ 

type ISU = Int |+| String 

ist :: IST
ist = ST "Wurst"

isu :: ISU 
isu = fromTagged ist
-- asOneOf "Wurst"