+++ /dev/null
-definition module GenFMap\r
-\r
-import StdGeneric, StdMaybe\r
-\r
-:: FMap v\r
-derive bimap FMap\r
-\r
-emptyFMap :: .FMap .v\r
-\r
-generic gLookupFMap key :: key (FMap value) -> FMap value\r
-derive gLookupFMap UNIT, PAIR, EITHER, CONS, FIELD, OBJECT, Char, Int, Bool, Real, String, [], {}, {!}\r
-derive gLookupFMap (,), (,,), (,,,), (,,,,), (,,,,,), (,,,,,,), (,,,,,,,)\r
-\r
-generic gInsertFMap key :: key (FMap value, FMap value) -> (FMap value, FMap value)\r
-derive gInsertFMap UNIT, PAIR, EITHER, CONS, FIELD, OBJECT, Char, Int, Bool, Real, String, [], {}, {!}\r
-derive gInsertFMap (,), (,,), (,,,), (,,,,), (,,,,,), (,,,,,,), (,,,,,,,)\r
-\r
-lookupFMap :: !k .(FMap v) -> .(Maybe v) | gLookupFMap{|*|} k & bimap{|*|} v\r
-(<<=) infixl 1 :: .(FMap v) !.(k,v) -> FMap v | gInsertFMap{|*|} k & bimap{|*|} v\r