Added Maybe-related functions; restricted imports from .dcl
authorCamil Staps <info@camilstaps.nl>
Wed, 27 Jan 2016 18:04:27 +0000 (19:04 +0100)
committerCamil Staps <info@camilstaps.nl>
Wed, 27 Jan 2016 18:04:27 +0000 (19:04 +0100)
ReadLine.dcl
ReadLine.icl

index 734ca20..7828e88 100644 (file)
@@ -1,6 +1,6 @@
 definition module ReadLine
 
-import StdEnv
+import StdClass
 
 :: Maybe a = Nothing | Just a
 :: HistoryItem = {line :: String, timestamp :: String}
@@ -9,6 +9,11 @@ import StdEnv
 instance toString HistoryItem
 instance toString HistoryState
 
+//Maybe functions
+isNothing :: !(Maybe .x) -> Bool
+isJust    :: !(Maybe .x) -> Bool
+fromJust  :: !(Maybe .x) -> .x
+
 //Non-library functions
 setReadLineName :: !String !*env -> *env
 
index 790db28..4faf3ba 100644 (file)
@@ -4,6 +4,18 @@ import StdEnv
 
 import code from "readLine.o"
 
+//Maybe
+isNothing :: !(Maybe .x) -> Bool
+isNothing Nothing = True
+isNothing _ = False
+
+isJust    :: !(Maybe .x) -> Bool
+isJust Nothing = False
+isJust _ = True
+
+fromJust  :: !(Maybe .x) -> .x
+fromJust (Just x) = x
+
 instance toString HistoryItem where
        toString {line,timestamp} = line +++ " (" +++ timestamp +++ ")"
 instance toString HistoryState where