8 | %language ElabReflection
14 | export
19 | Right
22 | ]
23 | where
37 | -- arg (BA a [x] _) = if unAppAny a.type == var ti.name then `(flip ~(var fun) ~(var x)) else `(flip hashWithSalt ~(var x))
41 | rhs = foldl (\l, r => `(assert_total $ hashWithSalt ~l ~r)) `(hashWithSalt salt ~(primVal $ BI $ cast idx))
48 | def impl $ pure $ patClause (var impl) (`(~(var $ MkName Hashable) ~(var fun) (~(var fun) defaultSalt)))
56 | -- %runElab derive "Namespace" [Hashable]