implementation module DefaultElem import StdEnv class DefaultElem a where default_elem :: a instance DefaultElem Int where default_elem = 0 instance DefaultElem Char where default_elem = ' ' instance DefaultElem Bool where default_elem = False instance DefaultElem {#a} | Array {#} a & DefaultElem a where default_elem = {default_elem} instance DefaultElem (a,b) | DefaultElem a & DefaultElem b where default_elem = (default_elem,default_elem); instance DefaultElem (a e) | Array a e where default_elem = {} instance DefaultElem [e] where default_elem = [] class DefaultElemU a where default_elemU :: *a