Ticket #3100: Foo.hs

File Foo.hs, 779 bytes (added by mightybyte, 6 years ago)
Line 
1{-# OPTIONS -fglasgow-exts #-}
2{-# LANGUAGE TemplateHaskell , FlexibleInstances,
3             FlexibleContexts,
4             UndecidableInstances, OverlappingInstances,
5             MultiParamTypeClasses, GeneralizedNewtypeDeriving #-}
6
7import Data.Generics hiding ((:+:))
8import Data.Word
9import HAppS.Data
10import HAppS.Data.IxSet
11
12type PrimaryKey = Word64
13
14data Pair a = Pair a a
15
16data KeyedEntry a = KeyedEntry {
17  entryId :: PrimaryKey,
18  keLogEntry :: a
19} deriving (Read,Show,Ord,Eq,Typeable,Data)
20
21data LogEntry a = LogEntry {
22  logItem     :: a,
23  logComments :: String,
24  logUser     :: String
25} deriving (Read,Show,Ord,Eq,Typeable,Data)
26
27type TestEntry g = (Show g) => KeyedEntry (LogEntry (Pair g))
28
29$(inferIxSet "TestDB" ''TestEntry 'noCalcs [''PrimaryKey, ''String])