module Rock.HashTag where import Protolude -- | Hash the result of a @k@ query. -- -- A typical implementation looks like: -- -- @ -- data Query a where -- ReadFile :: 'FilePath' -> Query 'Text' -- -- instance 'HashTag' Query where -- 'hashTagged' query = -- case query of -- ReadFile {} -> 'hash' -- @ class HashTag k where hashTagged :: k a -> a -> Int