DatatypeStructure { mapping = ElmMapping { typeName = "Form" , moduleName = Just "Codegen.Submission" , encoderLocation = Just SymbolLocation { symbolName = "encodeForm" , symbolModuleName = "Codegen.Submission" } , decoderLocation = Just SymbolLocation { symbolName = "decodeForm" , symbolModuleName = "Codegen.Submission" } , args = [] , isTypeAlias = False , urlPiece = Nothing , queryParam = Nothing } , nParams = 0 , constructors = [ Constructor { constructorName = "Form" , constructorFields = [ ( Just "userName" , TyRef { tyCon = TyMapping ElmMapping { typeName = "String" , moduleName = Nothing , encoderLocation = Just SymbolLocation { symbolName = "string" , symbolModuleName = "Json.Encode" } , decoderLocation = Just SymbolLocation { symbolName = "string" , symbolModuleName = "Json.Decode" } , args = [] , isTypeAlias = False , urlPiece = Nothing , queryParam = Nothing } , tyArgs = [] } ) , ( Just "upload" , TyRef { tyCon = TyMapping ElmMapping { typeName = "Maybe" , moduleName = Just "Maybe" , encoderLocation = Just SymbolLocation { symbolName = "maybe" , symbolModuleName = "Json.Encode.Extra" } , decoderLocation = Just SymbolLocation { symbolName = "nullable" , symbolModuleName = "Json.Decode" } , args = [] , isTypeAlias = False , urlPiece = Nothing , queryParam = Nothing } , tyArgs = [ TyRef { tyCon = TyMapping ElmMapping { typeName = "FileUpload" , moduleName = Just "Codegen.Submission" , encoderLocation = Just SymbolLocation { symbolName = "encodeFileUpload" , symbolModuleName = "Codegen.Submission" } , decoderLocation = Just SymbolLocation { symbolName = "decodeFileUpload" , symbolModuleName = "Codegen.Submission" } , args = [] , isTypeAlias = False , urlPiece = Nothing , queryParam = Nothing } , tyArgs = [] } ] } ) ] } ] }