purescript-0.15.3: tests/purs/passing/CyclicInstances.purs
module Main where
import Prelude
import Data.Generic.Rep (class Generic)
import Data.Show.Generic (genericShow)
import Effect.Console (log)
newtype A = A B
derive newtype instance Show A
data B = B C
| Z
derive instance Generic B _
instance Show B where show x = genericShow x
newtype C = C A
derive instance Generic C _
instance Show C where show = genericShow
newtype A2 = A2 { x :: B2 }
derive newtype instance Show A2
data B2 = B2 C2
| Z2
derive instance Generic B2 _
instance Show B2 where show x = genericShow x
newtype C2 = C2 A2
derive instance Generic C2 _
instance Show C2 where show = genericShow
main = log "Done"