@@ -8,7 +8,7 @@ import qualified ProjectM36.Attribute as A
88
99import Data.Csv.Parser
1010import qualified Data.Vector as V
11−import Data.Char (ord)
11+import Data.Char (ord, isUpper, isSpace)
1212import qualified Data.ByteString.Lazy as BS
1313import Data.Text.Encoding (decodeUtf8)
1414import qualified Data.Set as S
@@ -21,7 +21,6 @@ import Control.Arrow
2121import Text.Read hiding (parens)
2222import Control.Applicative
2323import Data.Either
24−import Data.Char
2524
2625data CsvImportError = CsvParseError String |
2726 AttributeMappingError RelationalError |
@@ -104,7 +103,7 @@ parseCSVAtomP attrName tConsMap typ@(ConstructedAtomType _ tvmap) = do
104103 -- grab the data constructor
105104 case findDataConstructor dConsName tConsMap of
106105 Nothing -> pure (Left (NoSuchDataConstructorError dConsName))
107− Just (_, dConsDef) -> do
106+ Just (_, dConsDef) ->
108107 -- identify the data constructor's expected atom type args
109108 case resolvedAtomTypesForDataConstructorDefArgs tConsMap tvmap dConsDef of
110109 Left err -> pure (Left err)
@@ -112,7 +111,7 @@ parseCSVAtomP attrName tConsMap typ@(ConstructedAtomType _ tvmap) = do
112111 atomArgs <- mapM (\argTyp -> let parseNextAtom = parseCSVAtomP attrName tConsMap argTyp <* APT.skipSpace in
113112 case argTyp of
114113 ConstructedAtomType _ _ ->
115− (parens parseNextAtom) <|>
114+ parens parseNextAtom <|>
116115 parseNextAtom
117116 _ -> parseNextAtom
118117 ) argAtomTypes