しょうがないから作ってみた

 module Map where
	put :: (Eq k) => [(k,v)] -> k -> v -> [(k,v)]   
	put  nk nv = [(nk,nv)] 
	put ((k,v):rest) nk nv = 
	    if (k==nk) then 
	        (nk,nv):rest
	    else 
	        (k,v):(put rest nk nv)
	     
	get :: (Eq k) => [(k,v)] -> k -> Maybe v
	get  k = Nothing
	get ((k,v):rest) k2 = 
	    if (k==k2) then
	        Just v
	    else 
	        get rest k

線形サーチなのでHashを名乗ることはできず.

Map> put [] 2 "bar"
[(2,"bar")]
Map> put [(2,"bar")] 3 "foo"
[(2,"bar"),(3,"foo")]
Map> get [(2,"bar"),(3,"foo")] 2
Just "bar"
Map> get [(2,"bar"),(3,"foo")] 5
Nothing
Map> put [(2,"bar"),(3,"foo")] 2 "baz"
[(2,"baz"),(3,"foo")]
Map>