packages feed

asil-1.2: src/InstrBaseLib.hs

-- Add more information to this module depending on external library usage

{-# LANGUAGE EmptyDataDecls, MultiParamTypeClasses, FunctionalDependencies, TypeSynonymInstances #-}
module InstrBaseLib where

import Instr
import Data.Word


--
-- Built-in types
--

type T'any = Any
t'any :: Type Any
t'any = TypeAny

type T'int = Int
t'int :: Type Int
t'int = TypeInt

t'int'obj :: Type Int
t'int'obj = TypeObject "int"

type T'uint = Word32
t'uint :: Type Word32
t'uint = TypeUInt

t'uint'obj :: Type Word32
t'uint'obj = TypeObject "uint"

type T'double = Double
t'double :: Type Double
t'double = TypeDouble

t'double'obj :: Type Double
t'double'obj = TypeObject "double"

type T'float = Double
t'float :: Type Double
t'float = TypeDouble

t'float'obj :: Type Double
t'float'obj = TypeObject "float"

type T'Boolean = Bool
t'Boolean :: Type Bool
t'Boolean = TypeBool

t'Boolean'obj :: Type Bool
t'Boolean'obj = TypeObject "Boolean"

type T'String = String
t'String :: Type String
t'String = TypeString

t'String'obj :: Type String
t'String'obj = TypeObject "String"


--
-- Built-in classes
--

data T'flash'display'Sprite
t'flash'display'Sprite = TypeObject "flash.display.Sprite"

k'flash'display'Sprite'buttonMode :: Key T'flash'display'Sprite T'Boolean
k'flash'display'Sprite'buttonMode = Key "flash.display.Sprite˳buttonMode"

class K'buttonMode a b | a -> b where
  k'buttonMode :: Key a b

instance K'buttonMode T'flash'display'Sprite T'Boolean where
  k'buttonMode = k'flash'display'Sprite'buttonMode