module Flite.RedSyntax where type Id = Int type Arity = Int type Index = Int type Shared = Bool data Atom = INT Int | ARG Shared Int | VAR Shared Int | REG Shared Int | CON Arity Index | FUN Bool Arity Id | PRI Arity String deriving (Show, Read) type Normal = Bool type RegId = Int data App = APP Normal [Atom] | CASE Id [Atom] | PRIM RegId [Atom] deriving (Show, Read) type LUT = Int type Template = (String, Int, [LUT], [Atom], [App]) type Prog = [Template]