on master help sign in
Add nullPtr/validFile
commitc82f2f4983b424a20e8e0102450911460249746e authorEdwin Brady <eb@cs.st-andrews.ac.uk> dateMon 9 Jan 2012, 21:58 (15 years ago) parent969e573
1 file changed+8
lib/prelude.idr+8
lib/prelude.idr+8
@@ -240,6 +240,14 @@ feof : File -> IO Bool
240240feof (FHandle h) = do eof <- do_feof h
241241 return (not (eof == 0))
242242
243+nullPtr : Ptr -> IO Bool
244+nullPtr p = do ok <- mkForeign (FFun "isNull" [FPtr] FInt) p
245+ return (ok /= 0);
246+
247+validFile : File -> IO Bool
248+validFile (FHandle h) = do x <- nullPtr h
249+ return (not x)
250+
243251while : |(test : IO Bool) -> |(body : IO ()) -> IO ()
244252while t b = do v <- t
245253 if v then (do { b; while t b }) else return ()