many changes
[clean-tests.git] / structs / test.icl
1 module test
2
3 import Data.Maybe
4 import Data.Either
5 import GenC
6 import Text
7
8 :: List a = Nil | Cons a (List a)
9 :: NInt =: NInt Int
10 :: T = A | B | C
11 :: R = {i :: Int, q :: T}
12 :: Muta a = Muta (Mutb a)
13 :: Mutb a = Mutb (Muta a)
14 derive gToStruct NInt, T, List, R, Muta, Mutb, (,), (), [], (,,), Maybe, Either
15 derive gPotInf NInt, T, List, R, Muta, Mutb, (,), (), [], (,,), Maybe, Either
16
17 Start = let (l, r) = (toCParser (unBox t2)) in concat r
18 where
19 t :: Box String (List (Muta Int))
20 // t :: Box GTSState NInt
21 t = Box "listmutaint"
22
23 t2 :: Box GTSState [Either Int Bool]
24 // t2 :: Box GTSState (Either Int Bool)
25 // t2 :: Box GTSState [Int]
26 t2 = toStruct