moduleLanguage.Syntactic.Analysis.HashwhereimportData.HashimportLanguage.Syntactic.SyntaximportLanguage.Syntactic.Analysis.EqualityclassExprEqexpr=>ExprHashexprwhere-- | Computes a 'Hash' for an expression. Expressions that are equal-- according to 'exprEq' must result in the same hash.exprHash::expra->HashinstanceExprHashdom=>ExprHash(ASTdom)whereexprHash(Symbola)=hashInt0`combine`exprHashaexprHash(f:$:a)=hashInt1`combine`exprHashf`combine`exprHashainstance(ExprHashexpr1,ExprHashexpr2)=>ExprHash(expr1:+:expr2)whereexprHash(InjectLa)=hashInt0`combine`exprHashaexprHash(InjectRa)=hashInt1`combine`exprHasha