module test import Data.Maybe import Data.Either import GenC import Text :: List a = Nil | Cons a (List a) :: NInt =: NInt Int :: T = A | B | C :: R = {i :: Int, q :: T} :: Muta a = Muta (Mutb a) :: Mutb a = Mutb (Muta a) derive gToStruct NInt, T, List, R, Muta, Mutb, (,), (), [], (,,), Maybe, Either derive gPotInf NInt, T, List, R, Muta, Mutb, (,), (), [], (,,), Maybe, Either Start = let (l, r) = (toCParser (unBox t2)) in concat r where t :: Box String (List (Muta Int)) // t :: Box GTSState NInt t = Box "listmutaint" t2 :: Box GTSState [Either Int Bool] // t2 :: Box GTSState (Either Int Bool) // t2 :: Box GTSState [Int] t2 = toStruct