X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dyneditors%2FDynamicEditor.dcl;fp=dyneditors%2FDynamicEditor.dcl;h=0000000000000000000000000000000000000000;hb=4b62b5d397d86147e393c05b3083af74a3a0c4af;hp=36d91b02508968a2a082db1da8aae4b2a80a294e;hpb=e5305ee9d4290e1aa803a2e62a14f32e5cd29782;p=clean-tests.git diff --git a/dyneditors/DynamicEditor.dcl b/dyneditors/DynamicEditor.dcl deleted file mode 100644 index 36d91b0..0000000 --- a/dyneditors/DynamicEditor.dcl +++ /dev/null @@ -1,38 +0,0 @@ -definition module DynamicEditor - -// TODO: quantified variables with constraints? - -import iTasks - -:: DynamicEditor a =: DynamicEditor [DynamicCons] -// phantom type only needed for top level -:: DynamicEditorValue a = DynamicEditorValue !DynamicConsId !DEVal - -:: DEVal = DEApplication ![(!DynamicConsId, !DEVal)] - | DEJSONValue !JSONNode - -derive class iTask DynamicEditorValue - -:: DynamicCons -:: DynamicConsOption = HideIfOnlyChoice - -(<<@@@) infixl 2 :: !DynamicCons !DynamicConsOption -> DynamicCons -(@@@>>) infixr 2 :: !DynamicConsOption !DynamicCons -> DynamicCons - -:: DynamicConsId :== String -:: DynamicConsBuilder = FunctionCons !Dynamic - | E.a: CustomEditorCons !(Editor a) & JSONEncode{|*|}, JSONDecode{|*|}, gText{|*|}, TC a - | ListCons !Dynamic //* must contain a value of type [a] -> b - -functionCons :: !String !String !a -> DynamicCons | TC a -listCons :: !String !String !([a] -> b) -> DynamicCons | TC a & TC b -customEditorCons :: !String !String !(Editor a) -> DynamicCons | TC, JSONEncode{|*|}, JSONDecode{|*|}, gText{|*|} a -// dynamic variants are required because this is the only way to use a quantified type variable -functionConsDyn :: !String !String !Dynamic -> DynamicCons -listConsDyn :: !String !String !Dynamic -> DynamicCons - -dynamicEditor :: !(DynamicEditor a) -> Editor (DynamicEditorValue a) | TC a - -toValue :: !(DynamicEditor a) !(DynamicEditorValue a) -> a | TC a -dynEditorValToString :: !(DynamicEditor a) !(DynamicEditorValue a) -> String -