[<<][meta][>>][..]
Sat Dec 24 13:25:35 EST 2011

APair

This is incorrect.

  data TypeName   = AFloat | AInt | ABool | AVoid   -- atomic
                  | APair TypeName TypeName         -- composite
                  deriving (Eq)

This cannot represent a pair of pointers, only pairs of primitives.

It looks like the Typename / Type system needs to be adjusted a bit.
Let's first factor it out.

It seems that TMLword should just give Type, not TypeName.

  data TypeName   = AFloat | AInt | ABool | AVoid   -- atomic
                  | AStruct [Type]                  -- composite
                  deriving (Eq)

  data Type       = Type TypeName TypeOrder
                  deriving (Eq,Show)


  class TMLword t where 
    primType  :: t -> Type
  

Have to stop for a bit.  Looks like I broke many things, among them I
introduced a "-> r" fundep that avoids mixing Code / Value
interpretations in the same module.



[Reply][About]
[<<][meta][>>][..]