summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Ast/FileInterface.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Language/Fiddle/Ast/FileInterface.hs')
-rw-r--r--src/Language/Fiddle/Ast/FileInterface.hs55
1 files changed, 30 insertions, 25 deletions
diff --git a/src/Language/Fiddle/Ast/FileInterface.hs b/src/Language/Fiddle/Ast/FileInterface.hs
index d29fc9d..c1cfac8 100644
--- a/src/Language/Fiddle/Ast/FileInterface.hs
+++ b/src/Language/Fiddle/Ast/FileInterface.hs
@@ -6,28 +6,33 @@ module Language.Fiddle.Ast.FileInterface where
-- the import statements should supply an fdi (fiddle interface) file to speed
-- up subsequent compilations.
--- import Data.Text
---
--- data ObjectType = ObjectType
--- { objectTypeSize :: Word32
--- }
---
--- data Metatype
--- = Object
--- { objectLocation :: Word64,
--- objectType :: Text
--- }
--- | Type
--- { typeSizeBytes :: Word32
--- }
---
--- data Element a = Element
--- { elementFullyQualifiedSymbol :: Text,
--- elementDocumentation :: Maybe Text,
--- elementMetatype :: Metatype,
--- elementAnnotation :: a
--- }
---
--- data FileInterface a = FiddleInterface
--- { exportedElements :: [Element a]
--- }
+import Data.Text
+import Data.Word
+
+data ObjectType = ObjectType
+ { objectTypeSize :: Word32
+ }
+
+data Metatype
+ = Object
+ { objectLocation :: Word64,
+ objectType :: Text
+ }
+ | Type
+ { typeSizeBytes :: Word32
+ }
+
+data Element a = Element
+ { elementFullyQualifiedSymbol :: Text,
+ elementDocumentation :: Maybe Text,
+ elementMetatype :: Metatype,
+ elementAnnotation :: a
+ }
+
+data ResolvedImport a = ResolvedImport {
+ dependencies :: [String]
+}
+
+data FileInterface a = FiddleInterface
+ { exportedElements :: [Element a]
+ }