Commit 972b9d7d authored by Jurriën Stutterheim's avatar Jurriën Stutterheim

WIP: Fixing GiN imports



git-svn-id: https://svn.cs.ru.nl/repos/iTask-system/trunk@2403 63da3aa8-80fd-4f01-9db8-e6ea747a3da2
parent 6a95ef8d
definition module GinEditor
import iTasks
from iTasks import :: Task, :: WorkflowContainer
import GinConfig
import GinSyntax
......
......@@ -11,7 +11,7 @@ import GinConfig
import GinCompiler
import GinDomain
import GinParser
from GinPrinter import ::Doc, prettyPrint, instance Printer Doc
from GinPrinter import :: Doc, prettyPrint, instance Printer Doc
import GinStorage
import GinSyntax
......
......@@ -2,4 +2,4 @@ definition module GinExamples
import iTasks
ginExamples :: [Workflow]
//ginExamples :: [Workflow]
implementation module GinExamples
import iTasks
from iTasks import :: Task
import GinFlowLibrary
import GinEditor
import GinDomain
from GinSyntax import ::GModule
import GinSyntax
Start :: *World -> *World
Start world = startEngine (manageWorkflows workflows) world
where
workflows = flatten [ ginExamples ]
Start world = world // startEngine (manageWorkflows workflows) world
//where
//workflows = flatten [ ginExamples ]
ginExamples :: [Workflow]
ginExamples = [ workflow "Examples/Graphical Editors/GiN Editor" "Create or edit workflows in GiN notation" ginEditor
, simpleEditorWorkflow "Petri net" petriNetORYXEditor
, simpleEditorWorkflow "XMAS" xmasORYXEditor
, workflow "Examples/Graphical Editors/Shared Petri net editors" "Two shared Petri net editors" petrinetShareExample
]
//ginExamples :: [Workflow]
//ginExamples = [ workflow "Examples/Graphical Editors/GiN Editor" "Create or edit workflows in GiN notation" ginEditor
//, simpleEditorWorkflow "Petri net" petriNetORYXEditor
//, simpleEditorWorkflow "XMAS" xmasORYXEditor
//, workflow "Examples/Graphical Editors/Shared Petri net editors" "Two shared Petri net editors" petrinetShareExample
//]
simpleEditorWorkflow :: !String !ORYXEditor -> Workflow
simpleEditorWorkflow language editor =
workflow ("Examples/Graphical Editors/" +++ language +++ " editor") ("Simple " +++ language +++ " editor")
(getConfig >>| (ginInteractionLayout @>> updateInformation ("Simple " +++ language +++ " editor") [] editor >>+ quitButton) <<@ fullWidthInteractionLayout)
//simpleEditorWorkflow :: !String !ORYXEditor -> Workflow
//simpleEditorWorkflow language editor =
//workflow ("Examples/Graphical Editors/" +++ language +++ " editor") ("Simple " +++ language +++ " editor")
//(getConfig >>| (ginInteractionLayout @>> updateInformation ("Simple " +++ language +++ " editor") [] editor >>| quitButton) <<@ fullWidthInteractionLayout)
petrinetShareExample :: Task Void
petrinetShareExample = parallel "Petrinet Share Example" petriNetORYXEditor (\_ _ -> Void)
[ (BodyTask, \s -> updateSharedInformation "Editor 1" [] (taskListState s) Void >>+ quitButton)
, (BodyTask, \s -> updateSharedInformation "Editor 2" [] (taskListState s) Void >>+ quitButton)
]
//petrinetShareExample :: Task Void
//petrinetShareExample = parallel "Petrinet Share Example" petriNetORYXEditor (\_ _ -> Void)
//[ (BodyTask, \s -> updateSharedInformation "Editor 1" [] (taskListState s) Void >>| quitButton)
//, (BodyTask, \s -> updateSharedInformation "Editor 2" [] (taskListState s) Void >>| quitButton)
//]
quitButton _ = UserActions [(ActionQuit,Just Stop)]
//quitButton _ = UserActions [(ActionQuit,Just Stop)]
ginInteractionLayout :: InteractionLayouter
ginInteractionLayout = \interaction =
case interaction.editorParts of
[{TUIDef | content = TUIEditControl (TUIORYXControl _) _}] =
({TUIDef | hd interaction.editorParts & width = Just (FillParent 1 (FixedMinSize 400))},interaction.TUIInteraction.actions)
_ = defaultInteractionLayout interaction
//ginInteractionLayout :: InteractionLayouter
//ginInteractionLayout = \interaction =
//case interaction.editorParts of
//[{UIDef | content = UIEditControl (UIORYXControl _) _}] =
//({UIDef | hd interaction.editorParts & width = Just (FillParent 1 (FixedMinSize 400))},interaction.UIInteraction.actions)
//_ = defaultInteractionLayout interaction
......@@ -49,6 +49,8 @@ Global
Path: {Application}/iTasks-SDK/Server/lib/Platform/OS-Independent/Text/Encodings
Path: {Application}/iTasks-SDK/Server/lib/Platform/OS-Mac/System
Path: {Application}/iTasks-SDK/Server/lib/Platform/OS-Posix/System
Path: {Application}/iTasks-SDK/Server/lib/CleanCompiler
Path: {Application}/iTasks-SDK/Server/lib/CleanCompiler/frontend
Path: {Application}/iTasks-SDK/Server/Gin
Path: {Application}/iTasks-SDK/Server/Framework
Path: {Application}/iTasks-SDK/Server/API
......
definition module GinDomain
import iTasks
import GinORYX
derive gEq ORYXEditor
......
......@@ -2,7 +2,7 @@ implementation module GinDomain
from StdEnv import id, undef
import iTasks, Text, HtmlUtil
import Text, HtmlUtil
import GinSyntax, GinFlowLibrary
import GinCompiler, GinParser
......
definition module GinAbstractSyntax
import StdOverloaded
import GinTypes
import GinParser
import GinPrinter
from iTaskClass import class iTask
from GinParser import :: GPath, :: GPathNode
from GinPrinter import :: LineMap, :: Map
import GenVisualize
import Void
from Void import :: Void
:: AModule = { name :: AIdentifier
, types :: [GTypeDefinition]
......
......@@ -5,16 +5,22 @@ from StdFunc import o
import StdOrdList
import StdList
import StdString
import StdClass, StdInt
import Void
import Map
import Text
import Maybe
from GinParser import ::GPath(..)
import GinTypes
from GinParser import :: GPath(..), :: GTypeDefinition(..), :: GTypeExpression(..), :: GFormalParameter(..), :: GIdentifier(..), :: GTypeVariable(..), :: GTypeRhs(..), :: GRecordField(..), :: GDataConstructor(..)
from GinTypes import generic gEq, generic JSONDecode, generic JSONEncode, generic gVerify, generic gUpdate, generic gDefault, generic gGridRows, generic gHeaders, generic gVisualizeText, generic gVisualizeEditor
from GinTypes import :: JSONNode, :: InteractionMask, :: VerifyMask, :: VerifyOptions, :: ConsPos, :: StaticVisualizationMode, :: VSt, :: VisualizationResult
from GinTypes import printGTypeDefinition, typeIsDefined, printGTypeExpression
import GinPrinter
from iTaskClass import class iTask, gVisualizeText, gVisualizeHtml, gVisualizeEditor, gUpdate, gDefaultMask, gVerify, JSONEncode, JSONDecode, gEq
from GenEq import ===
from iTaskClass import class iTask, gEq
derive class iTask AModule, ADefinition, AExpression, ACaseAlt, AListComprehension, AGeneratorList, AGenerator, AFix
......
definition module GinCompiler
import iTasks
from GinSyntax import ::GModule
from GinParser import ::GPath, ::GPathNode
from iTasks import class iTask
import GinSyntax
import GinParser
:: CompileResult a = CompileSuccess a | CompileGlobalError String | CompilePathError [(GPath,String)]
......
definition module GinCompilerLogParser
import Maybe
from Maybe import :: Maybe
from GinParser import ::GPath, ::GPathNode
from GinPrinter import ::LineMap, ::Map
from GinAbstractSyntax import ::FunctionMap, ::AIdentifier
import GinParser
import GinPrinter
import GinAbstractSyntax
:: CompilerErrorContext :== (CompilerError, ErrorContext)
......
definition module GinConfig
import Maybe, HTML, UIDefinition
from Maybe import :: Maybe
import iTasks
from iTasks import class iTask, generic gVisualizeText, generic gVisualizeEditor, generic gUpdate, generic gVerify, generic JSONEncode, generic JSONDecode, generic gEq
from SystemTypes import :: InteractionMask, :: VerifyMask, :: VerifyOptions, :: ConsPos, :: StaticVisualizationMode, :: VSt, :: VisualizationResult
//from GinTypes import :: GTypeExpression, :: GTypeDefinition
from GenVisualize import generic gVisualizeText, generic gVisualizeEditor
from JSON import generic JSONEncode, generic JSONDecode, :: JSONNode
from GenEq import generic gEq
from GenUpdate import generic gUpdate, generic gDefault, generic gHeaders, generic gGridRows
from GenVerify import generic gVerify
:: GinConfig =
{ cleanPath :: !String
......
......@@ -16,10 +16,10 @@ import iTasks
derive gEq GinConfig
derive gVisualizeText GinConfig
derive gVisualizeHtml GinConfig
//derive gVisualizeHtml GinConfig TODO
derive gVisualizeEditor GinConfig
derive gUpdate GinConfig
derive gDefaultMask GinConfig
//derive gDefaultMask GinConfig TODO
derive JSONEncode GinConfig
derive JSONDecode GinConfig
......
definition module GinDCLImport
from GinSyntax import ::GModule
from GinTypes import ::GTypeExpression
import GinSyntax
import GinTypes
from syntax import ::Type
import Error
//import Error
importDCL :: !String !String *World -> (MaybeErrorString GModule, *World)
......
implementation module GinFlowLibrary
import Maybe
import StdEnum
from StdFunc import o
import StdTuple
......
definition module GinORYX
import GenEq
import JSON, HTML, UIDefinition
from iTasks import :: JSONNode
from GinSyntax import :: GModule, :: GGraph, :: Bindings, :: Binding
from GinParser import :: GPath, :: GPathNode
import GenVerify
from Maybe import :: Maybe
from SystemTypes import :: InteractionMask, :: VerifyMask, :: VerifyOptions, :: ConsPos, :: StaticVisualizationMode, :: VSt, :: VisualizationResult
from JSON import generic JSONEncode, generic JSONDecode, :: JSONNode
from GenVisualize import generic gVisualizeText, generic gVisualizeEditor
from GenUpdate import generic gUpdate, generic gDefault, generic gHeaders, generic gGridRows
from GenVerify import generic gVerify
from GenEq import generic gEq
import GinTypes
import GinSyntax
import GinParser
:: ORYXEditor = { diagram :: ORYXDiagram
, stencilset :: ORYXStencilSetReference
......@@ -95,6 +99,7 @@ derive gVisualizeEditor ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYX
derive gUpdate ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError
//derive gDefaultMask ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError TODO
derive gVerify ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError
derive gDefault ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError
oryxDiagramToGraph :: !Bindings !ORYXDiagram -> GGraph
......
......@@ -6,27 +6,32 @@ from StdFunc import const,o,flip
import StdList
import StdMisc
import StdTuple
import StdOverloaded
from Map import qualified get, fromList
import JSON
import Maybe
import Text
import Graph
import iTasks
//import iTasks
//import GinAbstractSyntax
//import GinFlowLibrary
//import GinParser
//import GinSyntax
import GinAbstractSyntax
import GinFlowLibrary
import GinParser
import GinSyntax
derive gEq ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError
derive JSONEncode ORYXBound, ORYXBounds, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError
derive JSONDecode ORYXBound, ORYXBounds, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError
derive gVisualizeText ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError, JSONNode
//derive gVisualizeHtml ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError, JSONNode TODO
derive gVisualizeEditor ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError, JSONNode
derive gUpdate ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError, JSONNode
derive gDefaultMask ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError, JSONNode
derive gVerify ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError, JSONNode
derive gVisualizeText ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError //, JSONNode
derive gGridRows ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError //, JSONNode
derive gHeaders ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError //, JSONNode
//derive gVisualizeHtml ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError //, JSONNode TODO
derive gVisualizeEditor ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError //, JSONNode
derive gUpdate ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError //, JSONNode
//derive gDefaultMask ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError, JSONNode TODO
derive gVerify ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError //, JSONNode
derive gDefault ORYXBound, ORYXBounds, ORYXChildShape, ORYXDiagram, ORYXDocker, ORYXOutgoing, ORYXProperties, ORYXProperty, ORYXStencilReference, ORYXStencilSetReference, ORYXTarget, ORYXError
JSONEncode{|ORYXChildShape|} {resourceId, properties, stencil, childShapes, outgoing, bounds, dockers, target}
# target` = case target of
......
definition module GinORYXExtensions
import JSON
//import JSON
:: ORYXExtensionsFile =
{ extensions :: ![ORYXExtension]
......@@ -27,4 +27,4 @@ import JSON
derive JSONEncode ORYXExtensionsFile, ORYXExtension, ORYXPerspective
derive JSONDecode ORYXExtensionsFile, ORYXExtension, ORYXPerspective
makeORYXExtensionsFile :: ![String] -> ORYXExtensionsFile
\ No newline at end of file
makeORYXExtensionsFile :: ![String] -> ORYXExtensionsFile
definition module GinORYXStencil
import JSON
//import JSON
from GinSyntax import :: GModule
import GinSyntax
import GinORYX
::ORYXStencilSet =
......
definition module GinParser
import StdList
import GenPrint
import JSON
import Monad
//import StdList
//import GenPrint
//import JSON
//import Monad
import GinConfig
import GinSyntax
......
......@@ -8,9 +8,16 @@ from StdFunc import o,flip,seq
import StdList
import StdOrdList
import StdTuple
import StdClass, StdInt
import Error
import GenPrint
from iTasks import class iTask
from GinTypes import generic gEq, generic JSONDecode, generic JSONEncode, generic gVerify, generic gUpdate, generic gDefault, generic gGridRows, generic gHeaders, generic gVisualizeText, generic gVisualizeEditor
from GinTypes import :: JSONNode, :: InteractionMask, :: VerifyMask, :: VerifyOptions, :: ConsPos, :: StaticVisualizationMode, :: VSt, :: VisualizationResult, :: GTypeExpression, :: GTypeDefinition
from GinTypes import printGTypeDefinition, typeIsDefined, printGTypeExpression
from GinPrinter import class Printer
//Clean-platform:
import Graph
import Map
......@@ -19,7 +26,8 @@ import JSON
import Text
//Clean-compiler:
from general import ::Optional(..)
from general import :: Optional(..)
from syntax import
::ArrayKind,
::BasicValue,
......@@ -34,9 +42,11 @@ from syntax import
::FieldNameOrQualifiedFieldName,
::FieldSymbol,
::Global,
::ModuleIdent(..),
::Ident(..),
::LocalDefs,
::OptionalRecordName,
::Optional(..),
::OptionalRecordName(..),
::ParsedExpr(..),
::ParsedSelection,
::ParsedSelectorKind,
......
definition module GinPrinter
from Map import ::Map
from PPrint import ::Doc
from GinParser import :: GPath(..), ::GPathNode(..), :: GResourceId(..)
import GinParser
from PPrint import ::Doc
class Printer a
where
def :: a -> a
......
......@@ -2,6 +2,7 @@ implementation module GinPrinter
import StdList
import StdString
import StdOverloaded, StdInt
import Map
......
definition module GinSVG
import Maybe
import XML, HTML, UIDefinition
//import Maybe
//import XML, HTML, UIDefinition
from Maybe import :: Maybe
from XML import :: XMLNode
from iTasks import class iTask
import GenVisualize
from GenVisualize import generic gVisualizeText, generic gVisualizeEditor
from GenUpdate import generic gUpdate, generic gDefault, generic gHeaders, generic gGridRows
from GenVerify import generic gVerify
from JSON import generic JSONEncode, generic JSONDecode, :: JSONNode
from GenEq import generic gEq
from SystemTypes import :: InteractionMask, :: VerifyMask, :: VerifyOptions, :: ConsPos, :: StaticVisualizationMode, :: VSt, :: VisualizationResult
:: SVGPosX = XLeft
| XRight
......
......@@ -4,17 +4,21 @@ import StdInt
import StdGeneric
import StdList
import StdString
import StdBool
import Maybe
import XML, HTML, UIDefinition
from GinTypes import generic gEq, generic JSONDecode, generic JSONEncode, generic gVerify, generic gUpdate, generic gDefault, generic gGridRows, generic gHeaders, generic gVisualizeText, generic gVisualizeEditor
from GinTypes import :: JSONNode, :: InteractionMask, :: VerifyMask, :: VerifyOptions, :: ConsPos, :: StaticVisualizationMode, :: VSt, :: VisualizationResult, :: GTypeExpression, :: GTypeDefinition
from GinTypes import printGTypeDefinition, typeIsDefined, printGTypeExpression
from GinPrinter import class Printer
from iTasks import class iTask
derive class iTask SVGPosX, SVGPosY, SVGElement, SVGStyle, SVGShape
derive class iTask XMLDoc, XMLNode, XMLAttr, XMLQName
derive bimap Maybe, (,)
instance toString SVGShape
where
toString {width, height, defs, magnets, elements} = toString doc
......
definition module GinStorage
import Error
import OSError
import Maybe
import Void
from Error import :: MaybeErrorString, :: MaybeError
//import OSError
//import Maybe
//import Void
from Task import ::Task
from GinSyntax import ::GModule
from GinConfig import ::GinConfig
import GinSyntax
import GinConfig
searchPathModules :: !GinConfig !*World -> ([String], *World)
......
definition module GinSyntax
import Graph
import Maybe, HTML, UIDefinition
from Graph import :: Graph
from Monad import class Monad
from iTasks import class iTask
from GenVisualize import generic gVisualizeEditor, generic gVisualizeText, generic gHeaders, generic gGridRows, generic gDefault, generic gUpdate, generic gVerify
import GinAbstractSyntax
from GinORYX import ::ORYXDiagram
from GinSVG import ::SVGShape
import GinORYX
import GinSVG
import GinTypes
import GinParser
import GinTypes
// Graph definition
:: GModule = { name :: GIdentifier
......
implementation module GinSyntax
import iTasks
from iTasks import class iTask
import StdClass, StdBool, StdList
import JSON
import Monad // TODO
import GinAbstractSyntax
import GinORYX
......@@ -99,4 +101,4 @@ newModule = { GModule
, types = []
, moduleKind = GGraphicalModule [newWorkflow]
, imports = [ "CommonCombinators", "CoreTasks", "InteractionTasks" ]
}
\ No newline at end of file
}
definition module GinTypes
import GenEq
import Maybe, HTML, UIDefinition
//import GenEq
//import HTML, UIDefinition
from Maybe import :: Maybe
from iTasks import class iTask
from GinPrinter import class Printer
import GenVisualize
from StdGeneric import generic bimap, :: Bimap
from GenVisualize import generic gVisualizeText, generic gVisualizeEditor
from GenUpdate import generic gUpdate, generic gDefault, generic gHeaders, generic gGridRows
from GenVerify import generic gVerify
from JSON import generic JSONEncode, generic JSONDecode, :: JSONNode
from GenEq import generic gEq
from SystemTypes import :: InteractionMask, :: VerifyMask, :: VerifyOptions, :: ConsPos, :: StaticVisualizationMode, :: VSt, :: VisualizationResult
import GinPrinter
:: GTypeExpression = GConstructor GIdentifier
| GList GTypeExpression
......
......@@ -9,6 +9,11 @@ from iTasks import class iTask
import GinPrinter
from GinParser import :: GPath(..), :: GTypeDefinition(..), :: GTypeExpression(..), :: GFormalParameter(..), :: GIdentifier(..), :: GTypeVariable(..), :: GTypeRhs(..), :: GRecordField(..), :: GDataConstructor(..)
from GinTypes import generic gEq, generic JSONDecode, generic JSONEncode, generic gVerify, generic gUpdate, generic gDefault, generic gGridRows, generic gHeaders, generic gVisualizeText, generic gVisualizeEditor
from GinTypes import :: JSONNode, :: InteractionMask, :: VerifyMask, :: VerifyOptions, :: ConsPos, :: StaticVisualizationMode, :: VSt, :: VisualizationResult
from GinTypes import printGTypeDefinition, typeIsDefined, printGTypeExpression
derive bimap (,)
derive bimap Maybe
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment