
13 Nov
2014
13 Nov
'14
3:40 a.m.
On Mon, Nov 10, 2014 at 5:44 PM, Kannan Goundan
(I'm assuming some way of specifying that FsEntry will only ever have those two subtypes.)
How would you represent this in Haskell?
data FsEntry a = FsEntry { id :: String, info :: a } data FileInfo = FileInfo { modified :: Double, size :: Int } data FolderInfo = FolderInfo { owner :: String } data FsListEntry = File (FsEntry FileInfo) | Folder (FsEntry FolderInfo) type Path = String listFolder :: Path -> [FsListEntry] createFile :: Path -> FsEntry FileInfo createFolder :: Path -> FsEntry FolderInfo functionThatExpectsAnyFsEntry :: FsEntry a -> ()