module Generics.OneLiner.Info where
data CtorInfo = CtorInfo
{ ctorName :: String
, isRecord :: Bool
, fixity :: Fixity
}
deriving (Eq, Show, Ord, Read)
ctor :: String -> CtorInfo
ctor name = CtorInfo name False Prefix
data Fixity = Prefix | Infix Associativity Int
deriving (Eq, Show, Ord, Read)
data Associativity = LeftAssociative | RightAssociative | NotAssociative
deriving (Eq, Show, Ord, Read)
data FieldInfo p
= SelectorInfo
{ selectorName :: String
, project :: p
}
| FieldInfo
{ project :: p
}