elmental 0.1.0.0 → 0.1.0.1
raw patch · 17 files changed
+5919/−1 lines, 17 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- elmental.cabal +4/−1
- test-output/codegen/golden/SampleTypes.txt +1688/−0
- test-output/extraction/golden/CountryCode.txt +275/−0
- test-output/extraction/golden/EmptyAlias.txt +28/−0
- test-output/extraction/golden/Form_Report.txt +129/−0
- test-output/extraction/golden/Form_Submission.txt +105/−0
- test-output/extraction/golden/HKTWithSpecializedKindStarparams_Int_Text_Maybe.txt +105/−0
- test-output/extraction/golden/HKTWithUnspecializedParams_(Either_Int).txt +188/−0
- test-output/extraction/golden/LargeRecord.txt +2731/−0
- test-output/extraction/golden/MonomorphicRecursiveType.txt +83/−0
- test-output/extraction/golden/NatPhantomparameter_3.txt +54/−0
- test-output/extraction/golden/PolymorphicRecursiveType.txt +61/−0
- test-output/extraction/golden/RecordWithMultipleConstructors.txt +110/−0
- test-output/extraction/golden/SimpleHKT_Maybe.txt +82/−0
- test-output/extraction/golden/SimpleRecord.txt +111/−0
- test-output/extraction/golden/SimpleRecordAlias.txt +111/−0
- test-output/extraction/golden/SimpleType.txt +54/−0
elmental.cabal view
@@ -2,7 +2,7 @@ maintainer: Gaël Deest name: elmental-version: 0.1.0.0+version: 0.1.0.1 license: BSD-3-Clause synopsis: Generate Elm datatype definitions, encoders and decoders from Haskell datatypes.@@ -16,6 +16,9 @@ category: Codegen extra-doc-files: CHANGELOG.md+extra-source-files:+ test-output/codegen/golden/*.txt+ test-output/extraction/golden/*.txt source-repository head type: git location: https://github.com/gdeest/elmental.git
+ test-output/codegen/golden/SampleTypes.txt view
@@ -0,0 +1,1688 @@+################################################################################+Codegen.Either: +################################################################################+module Codegen.Either exposing (..)+++import Json.Encode+import Json.Encode exposing (Value)+import Json.Decode+import Json.Decode exposing (Decoder)+import Json.Decode.Extra exposing (andMap)+++type Either a0 a1+ = Left a0+ | Right a1++encodeEither : (e0 -> Value) -> (e1 -> Value) -> (Either e0 e1) -> Value+encodeEither e0 e1 v =+ case v of+ Left p0 -> Json.Encode.object+ [ ( "tag", Json.Encode.string "Left" )+ , ( "contents"+ , e0 p0+ )+ ]+ Right p0 -> Json.Encode.object+ [ ( "tag", Json.Encode.string "Right" )+ , ( "contents"+ , e1 p0+ )+ ]++decodeEither : Decoder a0 -> Decoder a1 -> Decoder (Either a0 a1)+decodeEither d0 d1 =+ let+ decide : String -> Decoder (Either a0 a1)+ decide tag =+ case tag of+ "Left" ->+ Json.Decode.field "contents" <| Json.Decode.map Left d0+ "Right" ->+ Json.Decode.field "contents" <| Json.Decode.map Right d1+ other ->+ Json.Decode.fail <| "(Either a0 a1) doesn't have constructor: " ++ other+ in+ Json.Decode.field "tag" Json.Decode.string+ |> Json.Decode.andThen decide+################################################################################++################################################################################+Codegen.Report: +################################################################################+module Codegen.Report exposing (..)++import Json.Decode+import Json.Encode+import Json.Encode.Extra+import Maybe+import Json.Encode+import Json.Encode exposing (Value)+import Json.Decode+import Json.Decode exposing (Decoder)+import Json.Decode.Extra exposing (andMap)+++type Form + = Form+ { userName : (Maybe.Maybe String)+ , upload : (Maybe.Maybe FileUpload)+ }++type FileUpload + = FileUpload+ { fileName : (Maybe.Maybe String)+ }++encodeForm : Form -> Value+encodeForm v =+ case v of+ Form r ->+ Json.Encode.object+ [ ("userName", (Json.Encode.Extra.maybe (Json.Encode.string)) r.userName)+ , ("upload", (Json.Encode.Extra.maybe (encodeFileUpload)) r.upload)+ ]++encodeFileUpload : FileUpload -> Value+encodeFileUpload v =+ case v of+ FileUpload r ->+ Json.Encode.object+ [ ("fileName", (Json.Encode.Extra.maybe (Json.Encode.string)) r.fileName)+ ]++decodeForm : Decoder Form+decodeForm =+ let mkFunction =+ \userName upload ->+ { userName = userName+ , upload = upload+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "userName" (Json.Decode.nullable Json.Decode.string))+ |> andMap (Json.Decode.field "upload" (Json.Decode.nullable decodeFileUpload))+ in Json.Decode.field "contents" (Json.Decode.map Form contentDecoder)++decodeFileUpload : Decoder FileUpload+decodeFileUpload =+ let mkFunction =+ \fileName ->+ { fileName = fileName+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "fileName" (Json.Decode.nullable Json.Decode.string))+ in Json.Decode.field "contents" (Json.Decode.map FileUpload contentDecoder)+################################################################################++################################################################################+Codegen.SampleTypes: +################################################################################+module Codegen.SampleTypes exposing (..)++import Codegen.Either+import Json.Decode+import Json.Encode+import Json.Encode.Extra+import Maybe+import Json.Encode+import Json.Encode exposing (Value)+import Json.Decode+import Json.Decode exposing (Decoder)+import Json.Decode.Extra exposing (andMap)+++type LargeRecord a0+ = LargeRecord+ { field0 : (LookMaNoPhantomParam a0)+ , field1 : (LookMaNoPhantomParam a0)+ , field2 : (LookMaNoPhantomParam a0)+ , field3 : (LookMaNoPhantomParam a0)+ , field4 : (LookMaNoPhantomParam a0)+ , field5 : (LookMaNoPhantomParam a0)+ , field6 : (LookMaNoPhantomParam a0)+ , field7 : (LookMaNoPhantomParam a0)+ , field8 : (LookMaNoPhantomParam a0)+ , field9 : (LookMaNoPhantomParam a0)+ , field10 : (LookMaNoPhantomParam a0)+ , field11 : (LookMaNoPhantomParam a0)+ , field12 : (LookMaNoPhantomParam a0)+ , field13 : (LookMaNoPhantomParam a0)+ , field14 : (LookMaNoPhantomParam a0)+ , field15 : (LookMaNoPhantomParam a0)+ , field16 : (LookMaNoPhantomParam a0)+ , field17 : (LookMaNoPhantomParam a0)+ , field18 : (LookMaNoPhantomParam a0)+ , field19 : (LookMaNoPhantomParam a0)+ , field20 : (LookMaNoPhantomParam a0)+ , field21 : (LookMaNoPhantomParam a0)+ , field22 : (LookMaNoPhantomParam a0)+ , field23 : (LookMaNoPhantomParam a0)+ , field24 : (LookMaNoPhantomParam a0)+ , field25 : (LookMaNoPhantomParam a0)+ , field26 : (LookMaNoPhantomParam a0)+ , field27 : (LookMaNoPhantomParam a0)+ , field28 : (LookMaNoPhantomParam a0)+ , field29 : (LookMaNoPhantomParam a0)+ , field30 : (LookMaNoPhantomParam a0)+ , field31 : (LookMaNoPhantomParam a0)+ , field32 : (LookMaNoPhantomParam a0)+ , field33 : (LookMaNoPhantomParam a0)+ , field34 : (LookMaNoPhantomParam a0)+ , field35 : (LookMaNoPhantomParam a0)+ , field36 : (LookMaNoPhantomParam a0)+ , field37 : (LookMaNoPhantomParam a0)+ , field38 : (LookMaNoPhantomParam a0)+ , field39 : (LookMaNoPhantomParam a0)+ , field40 : (LookMaNoPhantomParam a0)+ , field41 : (LookMaNoPhantomParam a0)+ , field42 : (LookMaNoPhantomParam a0)+ , field43 : (LookMaNoPhantomParam a0)+ , field44 : (LookMaNoPhantomParam a0)+ , field45 : (LookMaNoPhantomParam a0)+ , field46 : (LookMaNoPhantomParam a0)+ , field47 : (LookMaNoPhantomParam a0)+ , field48 : (LookMaNoPhantomParam a0)+ , field49 : (LookMaNoPhantomParam a0)+ , field50 : (LookMaNoPhantomParam a0)+ , field51 : (LookMaNoPhantomParam a0)+ , field52 : (LookMaNoPhantomParam a0)+ , field53 : (LookMaNoPhantomParam a0)+ , field54 : (LookMaNoPhantomParam a0)+ , field55 : (LookMaNoPhantomParam a0)+ , field56 : (LookMaNoPhantomParam a0)+ , field57 : (LookMaNoPhantomParam a0)+ , field58 : (LookMaNoPhantomParam a0)+ , field59 : (LookMaNoPhantomParam a0)+ , field60 : (LookMaNoPhantomParam a0)+ , field61 : (LookMaNoPhantomParam a0)+ , field62 : (LookMaNoPhantomParam a0)+ , field63 : (LookMaNoPhantomParam a0)+ , field64 : (LookMaNoPhantomParam a0)+ , field65 : (LookMaNoPhantomParam a0)+ , field66 : (LookMaNoPhantomParam a0)+ , field67 : (LookMaNoPhantomParam a0)+ , field68 : (LookMaNoPhantomParam a0)+ , field69 : (LookMaNoPhantomParam a0)+ , field70 : (LookMaNoPhantomParam a0)+ , field71 : (LookMaNoPhantomParam a0)+ , field72 : (LookMaNoPhantomParam a0)+ , field73 : (LookMaNoPhantomParam a0)+ , field74 : (LookMaNoPhantomParam a0)+ , field75 : (LookMaNoPhantomParam a0)+ , field76 : (LookMaNoPhantomParam a0)+ , field77 : (LookMaNoPhantomParam a0)+ , field78 : (LookMaNoPhantomParam a0)+ , field79 : (LookMaNoPhantomParam a0)+ , field80 : (LookMaNoPhantomParam a0)+ , field81 : (LookMaNoPhantomParam a0)+ , field82 : (LookMaNoPhantomParam a0)+ , field83 : (LookMaNoPhantomParam a0)+ , field84 : (LookMaNoPhantomParam a0)+ , field85 : (LookMaNoPhantomParam a0)+ , field86 : (LookMaNoPhantomParam a0)+ , field87 : (LookMaNoPhantomParam a0)+ , field88 : (LookMaNoPhantomParam a0)+ , field89 : (LookMaNoPhantomParam a0)+ , field90 : (LookMaNoPhantomParam a0)+ , field91 : (LookMaNoPhantomParam a0)+ , field92 : (LookMaNoPhantomParam a0)+ , field93 : (LookMaNoPhantomParam a0)+ , field94 : (LookMaNoPhantomParam a0)+ , field95 : (LookMaNoPhantomParam a0)+ , field96 : (LookMaNoPhantomParam a0)+ , field97 : (LookMaNoPhantomParam a0)+ , field98 : (LookMaNoPhantomParam a0)+ , field99 : (LookMaNoPhantomParam a0)+ }++type RecordWithMultipleConstructors + = FirstRecordConstructor+ { foo : Bool+ }+ | SecondRecordConstructor+ { bar : (Maybe.Maybe Int)+ }++type LookMaNoPhantomParam a0+ = NatPhantomParameter (List a0)++type HKTWithUnspecializedParams a0 a1+ = HKTWithUnspecializedParams (Codegen.Either.Either Int (Codegen.Either.Either Int (Codegen.Either.Either Int a0))) a1++type HKTWithSpecializedKindStarParams + = HKTWithSpecializedKindStarParams String (Maybe.Maybe Int)++type SimpleHKTMaybe + = SimpleHKT (Maybe.Maybe String)++type PolymorphicRecursiveType a0+ = SPRTNil+ | SPRTCons a0 (PolymorphicRecursiveType a0)++type MonomorphicRecursiveType + = SMRTNil+ | SMRTCons Int MonomorphicRecursiveType++type alias EmptyAlias =+ {}++type alias SimpleRecordAlias =+ { name : (PolymorphicRecursiveType SimpleType)+ , age : SimpleType+ }++type SimpleRecord + = SimpleRecord+ { name : (PolymorphicRecursiveType SimpleType)+ , age : SimpleType+ }++type SimpleType + = SimpleType Int++encodeLargeRecord : (e0 -> Value) -> (LargeRecord e0) -> Value+encodeLargeRecord e0 v =+ case v of+ LargeRecord r ->+ Json.Encode.object+ [ ("field0", (encodeNatPhantomParameter e0) r.field0)+ , ("field1", (encodeNatPhantomParameter e0) r.field1)+ , ("field2", (encodeNatPhantomParameter e0) r.field2)+ , ("field3", (encodeNatPhantomParameter e0) r.field3)+ , ("field4", (encodeNatPhantomParameter e0) r.field4)+ , ("field5", (encodeNatPhantomParameter e0) r.field5)+ , ("field6", (encodeNatPhantomParameter e0) r.field6)+ , ("field7", (encodeNatPhantomParameter e0) r.field7)+ , ("field8", (encodeNatPhantomParameter e0) r.field8)+ , ("field9", (encodeNatPhantomParameter e0) r.field9)+ , ("field10", (encodeNatPhantomParameter e0) r.field10)+ , ("field11", (encodeNatPhantomParameter e0) r.field11)+ , ("field12", (encodeNatPhantomParameter e0) r.field12)+ , ("field13", (encodeNatPhantomParameter e0) r.field13)+ , ("field14", (encodeNatPhantomParameter e0) r.field14)+ , ("field15", (encodeNatPhantomParameter e0) r.field15)+ , ("field16", (encodeNatPhantomParameter e0) r.field16)+ , ("field17", (encodeNatPhantomParameter e0) r.field17)+ , ("field18", (encodeNatPhantomParameter e0) r.field18)+ , ("field19", (encodeNatPhantomParameter e0) r.field19)+ , ("field20", (encodeNatPhantomParameter e0) r.field20)+ , ("field21", (encodeNatPhantomParameter e0) r.field21)+ , ("field22", (encodeNatPhantomParameter e0) r.field22)+ , ("field23", (encodeNatPhantomParameter e0) r.field23)+ , ("field24", (encodeNatPhantomParameter e0) r.field24)+ , ("field25", (encodeNatPhantomParameter e0) r.field25)+ , ("field26", (encodeNatPhantomParameter e0) r.field26)+ , ("field27", (encodeNatPhantomParameter e0) r.field27)+ , ("field28", (encodeNatPhantomParameter e0) r.field28)+ , ("field29", (encodeNatPhantomParameter e0) r.field29)+ , ("field30", (encodeNatPhantomParameter e0) r.field30)+ , ("field31", (encodeNatPhantomParameter e0) r.field31)+ , ("field32", (encodeNatPhantomParameter e0) r.field32)+ , ("field33", (encodeNatPhantomParameter e0) r.field33)+ , ("field34", (encodeNatPhantomParameter e0) r.field34)+ , ("field35", (encodeNatPhantomParameter e0) r.field35)+ , ("field36", (encodeNatPhantomParameter e0) r.field36)+ , ("field37", (encodeNatPhantomParameter e0) r.field37)+ , ("field38", (encodeNatPhantomParameter e0) r.field38)+ , ("field39", (encodeNatPhantomParameter e0) r.field39)+ , ("field40", (encodeNatPhantomParameter e0) r.field40)+ , ("field41", (encodeNatPhantomParameter e0) r.field41)+ , ("field42", (encodeNatPhantomParameter e0) r.field42)+ , ("field43", (encodeNatPhantomParameter e0) r.field43)+ , ("field44", (encodeNatPhantomParameter e0) r.field44)+ , ("field45", (encodeNatPhantomParameter e0) r.field45)+ , ("field46", (encodeNatPhantomParameter e0) r.field46)+ , ("field47", (encodeNatPhantomParameter e0) r.field47)+ , ("field48", (encodeNatPhantomParameter e0) r.field48)+ , ("field49", (encodeNatPhantomParameter e0) r.field49)+ , ("field50", (encodeNatPhantomParameter e0) r.field50)+ , ("field51", (encodeNatPhantomParameter e0) r.field51)+ , ("field52", (encodeNatPhantomParameter e0) r.field52)+ , ("field53", (encodeNatPhantomParameter e0) r.field53)+ , ("field54", (encodeNatPhantomParameter e0) r.field54)+ , ("field55", (encodeNatPhantomParameter e0) r.field55)+ , ("field56", (encodeNatPhantomParameter e0) r.field56)+ , ("field57", (encodeNatPhantomParameter e0) r.field57)+ , ("field58", (encodeNatPhantomParameter e0) r.field58)+ , ("field59", (encodeNatPhantomParameter e0) r.field59)+ , ("field60", (encodeNatPhantomParameter e0) r.field60)+ , ("field61", (encodeNatPhantomParameter e0) r.field61)+ , ("field62", (encodeNatPhantomParameter e0) r.field62)+ , ("field63", (encodeNatPhantomParameter e0) r.field63)+ , ("field64", (encodeNatPhantomParameter e0) r.field64)+ , ("field65", (encodeNatPhantomParameter e0) r.field65)+ , ("field66", (encodeNatPhantomParameter e0) r.field66)+ , ("field67", (encodeNatPhantomParameter e0) r.field67)+ , ("field68", (encodeNatPhantomParameter e0) r.field68)+ , ("field69", (encodeNatPhantomParameter e0) r.field69)+ , ("field70", (encodeNatPhantomParameter e0) r.field70)+ , ("field71", (encodeNatPhantomParameter e0) r.field71)+ , ("field72", (encodeNatPhantomParameter e0) r.field72)+ , ("field73", (encodeNatPhantomParameter e0) r.field73)+ , ("field74", (encodeNatPhantomParameter e0) r.field74)+ , ("field75", (encodeNatPhantomParameter e0) r.field75)+ , ("field76", (encodeNatPhantomParameter e0) r.field76)+ , ("field77", (encodeNatPhantomParameter e0) r.field77)+ , ("field78", (encodeNatPhantomParameter e0) r.field78)+ , ("field79", (encodeNatPhantomParameter e0) r.field79)+ , ("field80", (encodeNatPhantomParameter e0) r.field80)+ , ("field81", (encodeNatPhantomParameter e0) r.field81)+ , ("field82", (encodeNatPhantomParameter e0) r.field82)+ , ("field83", (encodeNatPhantomParameter e0) r.field83)+ , ("field84", (encodeNatPhantomParameter e0) r.field84)+ , ("field85", (encodeNatPhantomParameter e0) r.field85)+ , ("field86", (encodeNatPhantomParameter e0) r.field86)+ , ("field87", (encodeNatPhantomParameter e0) r.field87)+ , ("field88", (encodeNatPhantomParameter e0) r.field88)+ , ("field89", (encodeNatPhantomParameter e0) r.field89)+ , ("field90", (encodeNatPhantomParameter e0) r.field90)+ , ("field91", (encodeNatPhantomParameter e0) r.field91)+ , ("field92", (encodeNatPhantomParameter e0) r.field92)+ , ("field93", (encodeNatPhantomParameter e0) r.field93)+ , ("field94", (encodeNatPhantomParameter e0) r.field94)+ , ("field95", (encodeNatPhantomParameter e0) r.field95)+ , ("field96", (encodeNatPhantomParameter e0) r.field96)+ , ("field97", (encodeNatPhantomParameter e0) r.field97)+ , ("field98", (encodeNatPhantomParameter e0) r.field98)+ , ("field99", (encodeNatPhantomParameter e0) r.field99)+ ]++encodeRecordWithMultipleConstructors : RecordWithMultipleConstructors -> Value+encodeRecordWithMultipleConstructors v =+ case v of+ FirstRecordConstructor r -> Json.Encode.object+ [ ( "tag", Json.Encode.string "FirstRecordConstructor" )+ , ( "contents"+ , Json.Encode.object+ [ ("foo", (Json.Encode.bool) r.foo)+ ]+ )+ ]+ SecondRecordConstructor r -> Json.Encode.object+ [ ( "tag", Json.Encode.string "SecondRecordConstructor" )+ , ( "contents"+ , Json.Encode.object+ [ ("bar", (Json.Encode.Extra.maybe (Json.Encode.int)) r.bar)+ ]+ )+ ]++encodeNatPhantomParameter : (e0 -> Value) -> (LookMaNoPhantomParam e0) -> Value+encodeNatPhantomParameter e0 v =+ case v of+ NatPhantomParameter p0 ->+ (Json.Encode.list e0) p0++encodeHKTWithUnspecializedParams : (e0 -> Value) -> (e1 -> Value) -> (HKTWithUnspecializedParams e0 e1) -> Value+encodeHKTWithUnspecializedParams e0 e1 v =+ case v of+ HKTWithUnspecializedParams p0 p1 ->+ Json.Encode.list identity+ [ (Codegen.Either.encodeEither (Json.Encode.int) (Codegen.Either.encodeEither (Json.Encode.int) (Codegen.Either.encodeEither (Json.Encode.int) e0))) p0+ , e1 p1+ ]++encodeHKTWithSpecializedKindStarParams : HKTWithSpecializedKindStarParams -> Value+encodeHKTWithSpecializedKindStarParams v =+ case v of+ HKTWithSpecializedKindStarParams p0 p1 ->+ Json.Encode.list identity+ [ (Json.Encode.string) p0+ , (Json.Encode.Extra.maybe (Json.Encode.int)) p1+ ]++encodeSimpleHKT : SimpleHKTMaybe -> Value+encodeSimpleHKT v =+ case v of+ SimpleHKT p0 ->+ (Json.Encode.Extra.maybe (Json.Encode.string)) p0++encodePolymorphicRecursiveType : (e0 -> Value) -> (PolymorphicRecursiveType e0) -> Value+encodePolymorphicRecursiveType e0 v =+ case v of+ SPRTNil -> Json.Encode.object+ [ ( "tag", Json.Encode.string "SPRTNil" )]+ SPRTCons p0 p1 -> Json.Encode.object+ [ ( "tag", Json.Encode.string "SPRTCons" )+ , ( "contents"+ , Json.Encode.list identity+ [ e0 p0+ , (encodePolymorphicRecursiveType e0) p1+ ]+ )+ ]++encodeMonomorphicRecursiveType : MonomorphicRecursiveType -> Value+encodeMonomorphicRecursiveType v =+ case v of+ SMRTNil -> Json.Encode.object+ [ ( "tag", Json.Encode.string "SMRTNil" )]+ SMRTCons p0 p1 -> Json.Encode.object+ [ ( "tag", Json.Encode.string "SMRTCons" )+ , ( "contents"+ , Json.Encode.list identity+ [ (Json.Encode.int) p0+ , (encodeMonomorphicRecursiveType) p1+ ]+ )+ ]++encodeEmptyAlias : EmptyAlias -> Value+encodeEmptyAlias r =+ Json.Encode.list identity []++encodeSimpleRecordAlias : SimpleRecordAlias -> Value+encodeSimpleRecordAlias r =+ Json.Encode.object+ [ ("name", (encodePolymorphicRecursiveType (encodeSimpleType)) r.name)+ , ("age", (encodeSimpleType) r.age)+ ]++encodeSimpleRecord : SimpleRecord -> Value+encodeSimpleRecord v =+ case v of+ SimpleRecord r ->+ Json.Encode.object+ [ ("name", (encodePolymorphicRecursiveType (encodeSimpleType)) r.name)+ , ("age", (encodeSimpleType) r.age)+ ]++encodeSimpleType : SimpleType -> Value+encodeSimpleType v =+ case v of+ SimpleType p0 ->+ (Json.Encode.int) p0++decodeLargeRecord : Decoder a0 -> Decoder (LargeRecord a0)+decodeLargeRecord d0 =+ let mkFunction =+ \field0 field1 field2 field3 field4 field5 field6 field7 field8 field9 field10 field11 field12 field13 field14 field15 field16 field17 field18 field19 field20 field21 field22 field23 field24 field25 field26 field27 field28 field29 field30 field31 field32 field33 field34 field35 field36 field37 field38 field39 field40 field41 field42 field43 field44 field45 field46 field47 field48 field49 field50 field51 field52 field53 field54 field55 field56 field57 field58 field59 field60 field61 field62 field63 field64 field65 field66 field67 field68 field69 field70 field71 field72 field73 field74 field75 field76 field77 field78 field79 field80 field81 field82 field83 field84 field85 field86 field87 field88 field89 field90 field91 field92 field93 field94 field95 field96 field97 field98 field99 ->+ { field0 = field0+ , field1 = field1+ , field2 = field2+ , field3 = field3+ , field4 = field4+ , field5 = field5+ , field6 = field6+ , field7 = field7+ , field8 = field8+ , field9 = field9+ , field10 = field10+ , field11 = field11+ , field12 = field12+ , field13 = field13+ , field14 = field14+ , field15 = field15+ , field16 = field16+ , field17 = field17+ , field18 = field18+ , field19 = field19+ , field20 = field20+ , field21 = field21+ , field22 = field22+ , field23 = field23+ , field24 = field24+ , field25 = field25+ , field26 = field26+ , field27 = field27+ , field28 = field28+ , field29 = field29+ , field30 = field30+ , field31 = field31+ , field32 = field32+ , field33 = field33+ , field34 = field34+ , field35 = field35+ , field36 = field36+ , field37 = field37+ , field38 = field38+ , field39 = field39+ , field40 = field40+ , field41 = field41+ , field42 = field42+ , field43 = field43+ , field44 = field44+ , field45 = field45+ , field46 = field46+ , field47 = field47+ , field48 = field48+ , field49 = field49+ , field50 = field50+ , field51 = field51+ , field52 = field52+ , field53 = field53+ , field54 = field54+ , field55 = field55+ , field56 = field56+ , field57 = field57+ , field58 = field58+ , field59 = field59+ , field60 = field60+ , field61 = field61+ , field62 = field62+ , field63 = field63+ , field64 = field64+ , field65 = field65+ , field66 = field66+ , field67 = field67+ , field68 = field68+ , field69 = field69+ , field70 = field70+ , field71 = field71+ , field72 = field72+ , field73 = field73+ , field74 = field74+ , field75 = field75+ , field76 = field76+ , field77 = field77+ , field78 = field78+ , field79 = field79+ , field80 = field80+ , field81 = field81+ , field82 = field82+ , field83 = field83+ , field84 = field84+ , field85 = field85+ , field86 = field86+ , field87 = field87+ , field88 = field88+ , field89 = field89+ , field90 = field90+ , field91 = field91+ , field92 = field92+ , field93 = field93+ , field94 = field94+ , field95 = field95+ , field96 = field96+ , field97 = field97+ , field98 = field98+ , field99 = field99+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "field0" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field1" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field2" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field3" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field4" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field5" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field6" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field7" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field8" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field9" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field10" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field11" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field12" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field13" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field14" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field15" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field16" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field17" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field18" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field19" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field20" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field21" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field22" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field23" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field24" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field25" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field26" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field27" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field28" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field29" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field30" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field31" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field32" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field33" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field34" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field35" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field36" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field37" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field38" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field39" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field40" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field41" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field42" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field43" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field44" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field45" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field46" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field47" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field48" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field49" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field50" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field51" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field52" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field53" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field54" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field55" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field56" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field57" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field58" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field59" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field60" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field61" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field62" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field63" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field64" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field65" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field66" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field67" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field68" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field69" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field70" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field71" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field72" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field73" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field74" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field75" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field76" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field77" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field78" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field79" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field80" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field81" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field82" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field83" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field84" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field85" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field86" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field87" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field88" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field89" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field90" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field91" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field92" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field93" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field94" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field95" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field96" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field97" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field98" (decodeNatPhantomParameter d0))+ |> andMap (Json.Decode.field "field99" (decodeNatPhantomParameter d0))+ in Json.Decode.field "contents" (Json.Decode.map LargeRecord contentDecoder)++decodeRecordWithMultipleConstructors : Decoder RecordWithMultipleConstructors+decodeRecordWithMultipleConstructors =+ let+ decide : String -> Decoder RecordWithMultipleConstructors+ decide tag =+ case tag of+ "FirstRecordConstructor" ->+ let mkFunction =+ \foo ->+ { foo = foo+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "foo" Json.Decode.bool)+ in Json.Decode.field "contents" (Json.Decode.map FirstRecordConstructor contentDecoder)+ "SecondRecordConstructor" ->+ let mkFunction =+ \bar ->+ { bar = bar+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "bar" (Json.Decode.nullable Json.Decode.int))+ in Json.Decode.field "contents" (Json.Decode.map SecondRecordConstructor contentDecoder)+ other ->+ Json.Decode.fail <| "RecordWithMultipleConstructors doesn't have constructor: " ++ other+ in+ Json.Decode.field "tag" Json.Decode.string+ |> Json.Decode.andThen decide++decodeNatPhantomParameter : Decoder a0 -> Decoder (LookMaNoPhantomParam a0)+decodeNatPhantomParameter d0 =+ Json.Decode.field "contents" <| Json.Decode.map NatPhantomParameter (Json.Decode.list d0)++decodeHKTWithUnspecializedParams : Decoder a0 -> Decoder a1 -> Decoder (HKTWithUnspecializedParams a0 a1)+decodeHKTWithUnspecializedParams d0 d1 =+ let contentDecoder =+ Json.Decode.succeed HKTWithUnspecializedParams+ |> andMap (Json.Decode.index 0 (Codegen.Either.decodeEither Json.Decode.int (Codegen.Either.decodeEither Json.Decode.int (Codegen.Either.decodeEither Json.Decode.int d0))))+ |> andMap (Json.Decode.index 1 d1)+ in+ Json.Decode.field "contents" contentDecoder++decodeHKTWithSpecializedKindStarParams : Decoder HKTWithSpecializedKindStarParams+decodeHKTWithSpecializedKindStarParams =+ let contentDecoder =+ Json.Decode.succeed HKTWithSpecializedKindStarParams+ |> andMap (Json.Decode.index 0 Json.Decode.string)+ |> andMap (Json.Decode.index 1 (Json.Decode.nullable Json.Decode.int))+ in+ Json.Decode.field "contents" contentDecoder++decodeSimpleHKT : Decoder SimpleHKTMaybe+decodeSimpleHKT =+ Json.Decode.field "contents" <| Json.Decode.map SimpleHKT (Json.Decode.nullable Json.Decode.string)++decodePolymorphicRecursiveType : Decoder a0 -> Decoder (PolymorphicRecursiveType a0)+decodePolymorphicRecursiveType d0 =+ let+ decide : String -> Decoder (PolymorphicRecursiveType a0)+ decide tag =+ case tag of+ "SPRTNil" ->+ Json.Decode.succeed SPRTNil+ "SPRTCons" ->+ let contentDecoder =+ Json.Decode.succeed SPRTCons+ |> andMap (Json.Decode.index 0 d0)+ |> andMap (Json.Decode.index 1 (Json.Decode.lazy (\_ -> decodePolymorphicRecursiveType d0)))+ in+ Json.Decode.field "contents" contentDecoder+ other ->+ Json.Decode.fail <| "(PolymorphicRecursiveType a0) doesn't have constructor: " ++ other+ in+ Json.Decode.field "tag" Json.Decode.string+ |> Json.Decode.andThen decide++decodeMonomorphicRecursiveType : Decoder MonomorphicRecursiveType+decodeMonomorphicRecursiveType =+ let+ decide : String -> Decoder MonomorphicRecursiveType+ decide tag =+ case tag of+ "SMRTNil" ->+ Json.Decode.succeed SMRTNil+ "SMRTCons" ->+ let contentDecoder =+ Json.Decode.succeed SMRTCons+ |> andMap (Json.Decode.index 0 Json.Decode.int)+ |> andMap (Json.Decode.index 1 (Json.Decode.lazy (\_ -> decodeMonomorphicRecursiveType )))+ in+ Json.Decode.field "contents" contentDecoder+ other ->+ Json.Decode.fail <| "MonomorphicRecursiveType doesn't have constructor: " ++ other+ in+ Json.Decode.field "tag" Json.Decode.string+ |> Json.Decode.andThen decide++decodeEmptyAlias : Decoder EmptyAlias+decodeEmptyAlias =+ Json.Decode.succeed {}++decodeSimpleRecordAlias : Decoder SimpleRecordAlias+decodeSimpleRecordAlias =+ let mkFunction =+ \name age ->+ { name = name+ , age = age+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "name" (decodePolymorphicRecursiveType decodeSimpleType))+ |> andMap (Json.Decode.field "age" decodeSimpleType)+ in contentDecoder++decodeSimpleRecord : Decoder SimpleRecord+decodeSimpleRecord =+ let mkFunction =+ \name age ->+ { name = name+ , age = age+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "name" (decodePolymorphicRecursiveType decodeSimpleType))+ |> andMap (Json.Decode.field "age" decodeSimpleType)+ in Json.Decode.field "contents" (Json.Decode.map SimpleRecord contentDecoder)++decodeSimpleType : Decoder SimpleType+decodeSimpleType =+ Json.Decode.field "contents" <| Json.Decode.map SimpleType Json.Decode.int+################################################################################++################################################################################+Codegen.Submission: +################################################################################+module Codegen.Submission exposing (..)++import Json.Decode+import Json.Encode+import Json.Encode.Extra+import Maybe+import Json.Encode+import Json.Encode exposing (Value)+import Json.Decode+import Json.Decode exposing (Decoder)+import Json.Decode.Extra exposing (andMap)+++type Form + = Form+ { userName : String+ , upload : (Maybe.Maybe FileUpload)+ }++type FileUpload + = FileUpload+ { fileName : String+ }++encodeForm : Form -> Value+encodeForm v =+ case v of+ Form r ->+ Json.Encode.object+ [ ("userName", (Json.Encode.string) r.userName)+ , ("upload", (Json.Encode.Extra.maybe (encodeFileUpload)) r.upload)+ ]++encodeFileUpload : FileUpload -> Value+encodeFileUpload v =+ case v of+ FileUpload r ->+ Json.Encode.object+ [ ("fileName", (Json.Encode.string) r.fileName)+ ]++decodeForm : Decoder Form+decodeForm =+ let mkFunction =+ \userName upload ->+ { userName = userName+ , upload = upload+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "userName" Json.Decode.string)+ |> andMap (Json.Decode.field "upload" (Json.Decode.nullable decodeFileUpload))+ in Json.Decode.field "contents" (Json.Decode.map Form contentDecoder)++decodeFileUpload : Decoder FileUpload+decodeFileUpload =+ let mkFunction =+ \fileName ->+ { fileName = fileName+ }+ contentDecoder =+ Json.Decode.succeed mkFunction+ |> andMap (Json.Decode.field "fileName" Json.Decode.string)+ in Json.Decode.field "contents" (Json.Decode.map FileUpload contentDecoder)+################################################################################++################################################################################+Data.CountryCode: +################################################################################+module Data.CountryCode exposing (..)+++import Json.Encode+import Json.Encode exposing (Value)+import Json.Decode+import Json.Decode exposing (Decoder)+import Json.Decode.Extra exposing (andMap)+++type CountryCode + = AD+ | AE+ | AF+ | AG+ | AI+ | AL+ | AM+ | AO+ | AQ+ | AR+ | AS+ | AT+ | AU+ | AW+ | AX+ | AZ+ | BA+ | BB+ | BD+ | BE+ | BF+ | BG+ | BH+ | BI+ | BJ+ | BL+ | BM+ | BN+ | BO+ | BQ+ | BR+ | BS+ | BT+ | BV+ | BW+ | BY+ | BZ+ | CA+ | CC+ | CD+ | CF+ | CG+ | CH+ | CI+ | CK+ | CL+ | CM+ | CN+ | CO+ | CR+ | CU+ | CV+ | CW+ | CX+ | CY+ | CZ+ | DE+ | DJ+ | DK+ | DM+ | DO+ | DZ+ | EC+ | EE+ | EG+ | EH+ | ER+ | ES+ | ET+ | FI+ | FJ+ | FK+ | FM+ | FO+ | FR+ | GA+ | GB+ | GD+ | GE+ | GF+ | GG+ | GH+ | GI+ | GL+ | GM+ | GN+ | GP+ | GQ+ | GR+ | GS+ | GT+ | GU+ | GW+ | GY+ | HK+ | HM+ | HN+ | HR+ | HT+ | HU+ | ID+ | IE+ | IL+ | IM+ | IN+ | IO+ | IQ+ | IR+ | IS+ | IT+ | JE+ | JM+ | JO+ | JP+ | KE+ | KG+ | KH+ | KI+ | KM+ | KN+ | KP+ | KR+ | KW+ | KY+ | KZ+ | LA+ | LB+ | LC+ | LI+ | LK+ | LR+ | LS+ | LT+ | LU+ | LV+ | LY+ | MA+ | MC+ | MD+ | ME+ | MF+ | MG+ | MH+ | MK+ | ML+ | MM+ | MN+ | MO+ | MP+ | MQ+ | MR+ | MS+ | MT+ | MU+ | MV+ | MW+ | MX+ | MY+ | MZ+ | NA+ | NC+ | NE+ | NF+ | NG+ | NI+ | NL+ | NO+ | NP+ | NR+ | NU+ | NZ+ | OM+ | PA+ | PE+ | PF+ | PG+ | PH+ | PK+ | PL+ | PM+ | PN+ | PR+ | PS+ | PT+ | PW+ | PY+ | QA+ | RE+ | RO+ | RS+ | RU+ | RW+ | SA+ | SB+ | SC+ | SD+ | SE+ | SG+ | SH+ | SI+ | SJ+ | SK+ | SL+ | SM+ | SN+ | SO+ | SR+ | SS+ | ST+ | SV+ | SX+ | SY+ | SZ+ | TC+ | TD+ | TF+ | TG+ | TH+ | TJ+ | TK+ | TL+ | TM+ | TN+ | TO+ | TR+ | TT+ | TV+ | TW+ | TZ+ | UA+ | UG+ | UM+ | US+ | UY+ | UZ+ | VA+ | VC+ | VE+ | VG+ | VI+ | VN+ | VU+ | WF+ | WS+ | YE+ | YT+ | ZA+ | ZM+ | ZW++encodeCountryCode : CountryCode -> Value+encodeCountryCode v =+ case v of+ AD -> Json.Encode.string "AD"+ AE -> Json.Encode.string "AE"+ AF -> Json.Encode.string "AF"+ AG -> Json.Encode.string "AG"+ AI -> Json.Encode.string "AI"+ AL -> Json.Encode.string "AL"+ AM -> Json.Encode.string "AM"+ AO -> Json.Encode.string "AO"+ AQ -> Json.Encode.string "AQ"+ AR -> Json.Encode.string "AR"+ AS -> Json.Encode.string "AS"+ AT -> Json.Encode.string "AT"+ AU -> Json.Encode.string "AU"+ AW -> Json.Encode.string "AW"+ AX -> Json.Encode.string "AX"+ AZ -> Json.Encode.string "AZ"+ BA -> Json.Encode.string "BA"+ BB -> Json.Encode.string "BB"+ BD -> Json.Encode.string "BD"+ BE -> Json.Encode.string "BE"+ BF -> Json.Encode.string "BF"+ BG -> Json.Encode.string "BG"+ BH -> Json.Encode.string "BH"+ BI -> Json.Encode.string "BI"+ BJ -> Json.Encode.string "BJ"+ BL -> Json.Encode.string "BL"+ BM -> Json.Encode.string "BM"+ BN -> Json.Encode.string "BN"+ BO -> Json.Encode.string "BO"+ BQ -> Json.Encode.string "BQ"+ BR -> Json.Encode.string "BR"+ BS -> Json.Encode.string "BS"+ BT -> Json.Encode.string "BT"+ BV -> Json.Encode.string "BV"+ BW -> Json.Encode.string "BW"+ BY -> Json.Encode.string "BY"+ BZ -> Json.Encode.string "BZ"+ CA -> Json.Encode.string "CA"+ CC -> Json.Encode.string "CC"+ CD -> Json.Encode.string "CD"+ CF -> Json.Encode.string "CF"+ CG -> Json.Encode.string "CG"+ CH -> Json.Encode.string "CH"+ CI -> Json.Encode.string "CI"+ CK -> Json.Encode.string "CK"+ CL -> Json.Encode.string "CL"+ CM -> Json.Encode.string "CM"+ CN -> Json.Encode.string "CN"+ CO -> Json.Encode.string "CO"+ CR -> Json.Encode.string "CR"+ CU -> Json.Encode.string "CU"+ CV -> Json.Encode.string "CV"+ CW -> Json.Encode.string "CW"+ CX -> Json.Encode.string "CX"+ CY -> Json.Encode.string "CY"+ CZ -> Json.Encode.string "CZ"+ DE -> Json.Encode.string "DE"+ DJ -> Json.Encode.string "DJ"+ DK -> Json.Encode.string "DK"+ DM -> Json.Encode.string "DM"+ DO -> Json.Encode.string "DO"+ DZ -> Json.Encode.string "DZ"+ EC -> Json.Encode.string "EC"+ EE -> Json.Encode.string "EE"+ EG -> Json.Encode.string "EG"+ EH -> Json.Encode.string "EH"+ ER -> Json.Encode.string "ER"+ ES -> Json.Encode.string "ES"+ ET -> Json.Encode.string "ET"+ FI -> Json.Encode.string "FI"+ FJ -> Json.Encode.string "FJ"+ FK -> Json.Encode.string "FK"+ FM -> Json.Encode.string "FM"+ FO -> Json.Encode.string "FO"+ FR -> Json.Encode.string "FR"+ GA -> Json.Encode.string "GA"+ GB -> Json.Encode.string "GB"+ GD -> Json.Encode.string "GD"+ GE -> Json.Encode.string "GE"+ GF -> Json.Encode.string "GF"+ GG -> Json.Encode.string "GG"+ GH -> Json.Encode.string "GH"+ GI -> Json.Encode.string "GI"+ GL -> Json.Encode.string "GL"+ GM -> Json.Encode.string "GM"+ GN -> Json.Encode.string "GN"+ GP -> Json.Encode.string "GP"+ GQ -> Json.Encode.string "GQ"+ GR -> Json.Encode.string "GR"+ GS -> Json.Encode.string "GS"+ GT -> Json.Encode.string "GT"+ GU -> Json.Encode.string "GU"+ GW -> Json.Encode.string "GW"+ GY -> Json.Encode.string "GY"+ HK -> Json.Encode.string "HK"+ HM -> Json.Encode.string "HM"+ HN -> Json.Encode.string "HN"+ HR -> Json.Encode.string "HR"+ HT -> Json.Encode.string "HT"+ HU -> Json.Encode.string "HU"+ ID -> Json.Encode.string "ID"+ IE -> Json.Encode.string "IE"+ IL -> Json.Encode.string "IL"+ IM -> Json.Encode.string "IM"+ IN -> Json.Encode.string "IN"+ IO -> Json.Encode.string "IO"+ IQ -> Json.Encode.string "IQ"+ IR -> Json.Encode.string "IR"+ IS -> Json.Encode.string "IS"+ IT -> Json.Encode.string "IT"+ JE -> Json.Encode.string "JE"+ JM -> Json.Encode.string "JM"+ JO -> Json.Encode.string "JO"+ JP -> Json.Encode.string "JP"+ KE -> Json.Encode.string "KE"+ KG -> Json.Encode.string "KG"+ KH -> Json.Encode.string "KH"+ KI -> Json.Encode.string "KI"+ KM -> Json.Encode.string "KM"+ KN -> Json.Encode.string "KN"+ KP -> Json.Encode.string "KP"+ KR -> Json.Encode.string "KR"+ KW -> Json.Encode.string "KW"+ KY -> Json.Encode.string "KY"+ KZ -> Json.Encode.string "KZ"+ LA -> Json.Encode.string "LA"+ LB -> Json.Encode.string "LB"+ LC -> Json.Encode.string "LC"+ LI -> Json.Encode.string "LI"+ LK -> Json.Encode.string "LK"+ LR -> Json.Encode.string "LR"+ LS -> Json.Encode.string "LS"+ LT -> Json.Encode.string "LT"+ LU -> Json.Encode.string "LU"+ LV -> Json.Encode.string "LV"+ LY -> Json.Encode.string "LY"+ MA -> Json.Encode.string "MA"+ MC -> Json.Encode.string "MC"+ MD -> Json.Encode.string "MD"+ ME -> Json.Encode.string "ME"+ MF -> Json.Encode.string "MF"+ MG -> Json.Encode.string "MG"+ MH -> Json.Encode.string "MH"+ MK -> Json.Encode.string "MK"+ ML -> Json.Encode.string "ML"+ MM -> Json.Encode.string "MM"+ MN -> Json.Encode.string "MN"+ MO -> Json.Encode.string "MO"+ MP -> Json.Encode.string "MP"+ MQ -> Json.Encode.string "MQ"+ MR -> Json.Encode.string "MR"+ MS -> Json.Encode.string "MS"+ MT -> Json.Encode.string "MT"+ MU -> Json.Encode.string "MU"+ MV -> Json.Encode.string "MV"+ MW -> Json.Encode.string "MW"+ MX -> Json.Encode.string "MX"+ MY -> Json.Encode.string "MY"+ MZ -> Json.Encode.string "MZ"+ NA -> Json.Encode.string "NA"+ NC -> Json.Encode.string "NC"+ NE -> Json.Encode.string "NE"+ NF -> Json.Encode.string "NF"+ NG -> Json.Encode.string "NG"+ NI -> Json.Encode.string "NI"+ NL -> Json.Encode.string "NL"+ NO -> Json.Encode.string "NO"+ NP -> Json.Encode.string "NP"+ NR -> Json.Encode.string "NR"+ NU -> Json.Encode.string "NU"+ NZ -> Json.Encode.string "NZ"+ OM -> Json.Encode.string "OM"+ PA -> Json.Encode.string "PA"+ PE -> Json.Encode.string "PE"+ PF -> Json.Encode.string "PF"+ PG -> Json.Encode.string "PG"+ PH -> Json.Encode.string "PH"+ PK -> Json.Encode.string "PK"+ PL -> Json.Encode.string "PL"+ PM -> Json.Encode.string "PM"+ PN -> Json.Encode.string "PN"+ PR -> Json.Encode.string "PR"+ PS -> Json.Encode.string "PS"+ PT -> Json.Encode.string "PT"+ PW -> Json.Encode.string "PW"+ PY -> Json.Encode.string "PY"+ QA -> Json.Encode.string "QA"+ RE -> Json.Encode.string "RE"+ RO -> Json.Encode.string "RO"+ RS -> Json.Encode.string "RS"+ RU -> Json.Encode.string "RU"+ RW -> Json.Encode.string "RW"+ SA -> Json.Encode.string "SA"+ SB -> Json.Encode.string "SB"+ SC -> Json.Encode.string "SC"+ SD -> Json.Encode.string "SD"+ SE -> Json.Encode.string "SE"+ SG -> Json.Encode.string "SG"+ SH -> Json.Encode.string "SH"+ SI -> Json.Encode.string "SI"+ SJ -> Json.Encode.string "SJ"+ SK -> Json.Encode.string "SK"+ SL -> Json.Encode.string "SL"+ SM -> Json.Encode.string "SM"+ SN -> Json.Encode.string "SN"+ SO -> Json.Encode.string "SO"+ SR -> Json.Encode.string "SR"+ SS -> Json.Encode.string "SS"+ ST -> Json.Encode.string "ST"+ SV -> Json.Encode.string "SV"+ SX -> Json.Encode.string "SX"+ SY -> Json.Encode.string "SY"+ SZ -> Json.Encode.string "SZ"+ TC -> Json.Encode.string "TC"+ TD -> Json.Encode.string "TD"+ TF -> Json.Encode.string "TF"+ TG -> Json.Encode.string "TG"+ TH -> Json.Encode.string "TH"+ TJ -> Json.Encode.string "TJ"+ TK -> Json.Encode.string "TK"+ TL -> Json.Encode.string "TL"+ TM -> Json.Encode.string "TM"+ TN -> Json.Encode.string "TN"+ TO -> Json.Encode.string "TO"+ TR -> Json.Encode.string "TR"+ TT -> Json.Encode.string "TT"+ TV -> Json.Encode.string "TV"+ TW -> Json.Encode.string "TW"+ TZ -> Json.Encode.string "TZ"+ UA -> Json.Encode.string "UA"+ UG -> Json.Encode.string "UG"+ UM -> Json.Encode.string "UM"+ US -> Json.Encode.string "US"+ UY -> Json.Encode.string "UY"+ UZ -> Json.Encode.string "UZ"+ VA -> Json.Encode.string "VA"+ VC -> Json.Encode.string "VC"+ VE -> Json.Encode.string "VE"+ VG -> Json.Encode.string "VG"+ VI -> Json.Encode.string "VI"+ VN -> Json.Encode.string "VN"+ VU -> Json.Encode.string "VU"+ WF -> Json.Encode.string "WF"+ WS -> Json.Encode.string "WS"+ YE -> Json.Encode.string "YE"+ YT -> Json.Encode.string "YT"+ ZA -> Json.Encode.string "ZA"+ ZM -> Json.Encode.string "ZM"+ ZW -> Json.Encode.string "ZW"++decodeCountryCode : Decoder CountryCode+decodeCountryCode =+ let+ decide : String -> Decoder CountryCode+ decide tag =+ case tag of+ "AD" -> Json.Decode.succeed AD+ "AE" -> Json.Decode.succeed AE+ "AF" -> Json.Decode.succeed AF+ "AG" -> Json.Decode.succeed AG+ "AI" -> Json.Decode.succeed AI+ "AL" -> Json.Decode.succeed AL+ "AM" -> Json.Decode.succeed AM+ "AO" -> Json.Decode.succeed AO+ "AQ" -> Json.Decode.succeed AQ+ "AR" -> Json.Decode.succeed AR+ "AS" -> Json.Decode.succeed AS+ "AT" -> Json.Decode.succeed AT+ "AU" -> Json.Decode.succeed AU+ "AW" -> Json.Decode.succeed AW+ "AX" -> Json.Decode.succeed AX+ "AZ" -> Json.Decode.succeed AZ+ "BA" -> Json.Decode.succeed BA+ "BB" -> Json.Decode.succeed BB+ "BD" -> Json.Decode.succeed BD+ "BE" -> Json.Decode.succeed BE+ "BF" -> Json.Decode.succeed BF+ "BG" -> Json.Decode.succeed BG+ "BH" -> Json.Decode.succeed BH+ "BI" -> Json.Decode.succeed BI+ "BJ" -> Json.Decode.succeed BJ+ "BL" -> Json.Decode.succeed BL+ "BM" -> Json.Decode.succeed BM+ "BN" -> Json.Decode.succeed BN+ "BO" -> Json.Decode.succeed BO+ "BQ" -> Json.Decode.succeed BQ+ "BR" -> Json.Decode.succeed BR+ "BS" -> Json.Decode.succeed BS+ "BT" -> Json.Decode.succeed BT+ "BV" -> Json.Decode.succeed BV+ "BW" -> Json.Decode.succeed BW+ "BY" -> Json.Decode.succeed BY+ "BZ" -> Json.Decode.succeed BZ+ "CA" -> Json.Decode.succeed CA+ "CC" -> Json.Decode.succeed CC+ "CD" -> Json.Decode.succeed CD+ "CF" -> Json.Decode.succeed CF+ "CG" -> Json.Decode.succeed CG+ "CH" -> Json.Decode.succeed CH+ "CI" -> Json.Decode.succeed CI+ "CK" -> Json.Decode.succeed CK+ "CL" -> Json.Decode.succeed CL+ "CM" -> Json.Decode.succeed CM+ "CN" -> Json.Decode.succeed CN+ "CO" -> Json.Decode.succeed CO+ "CR" -> Json.Decode.succeed CR+ "CU" -> Json.Decode.succeed CU+ "CV" -> Json.Decode.succeed CV+ "CW" -> Json.Decode.succeed CW+ "CX" -> Json.Decode.succeed CX+ "CY" -> Json.Decode.succeed CY+ "CZ" -> Json.Decode.succeed CZ+ "DE" -> Json.Decode.succeed DE+ "DJ" -> Json.Decode.succeed DJ+ "DK" -> Json.Decode.succeed DK+ "DM" -> Json.Decode.succeed DM+ "DO" -> Json.Decode.succeed DO+ "DZ" -> Json.Decode.succeed DZ+ "EC" -> Json.Decode.succeed EC+ "EE" -> Json.Decode.succeed EE+ "EG" -> Json.Decode.succeed EG+ "EH" -> Json.Decode.succeed EH+ "ER" -> Json.Decode.succeed ER+ "ES" -> Json.Decode.succeed ES+ "ET" -> Json.Decode.succeed ET+ "FI" -> Json.Decode.succeed FI+ "FJ" -> Json.Decode.succeed FJ+ "FK" -> Json.Decode.succeed FK+ "FM" -> Json.Decode.succeed FM+ "FO" -> Json.Decode.succeed FO+ "FR" -> Json.Decode.succeed FR+ "GA" -> Json.Decode.succeed GA+ "GB" -> Json.Decode.succeed GB+ "GD" -> Json.Decode.succeed GD+ "GE" -> Json.Decode.succeed GE+ "GF" -> Json.Decode.succeed GF+ "GG" -> Json.Decode.succeed GG+ "GH" -> Json.Decode.succeed GH+ "GI" -> Json.Decode.succeed GI+ "GL" -> Json.Decode.succeed GL+ "GM" -> Json.Decode.succeed GM+ "GN" -> Json.Decode.succeed GN+ "GP" -> Json.Decode.succeed GP+ "GQ" -> Json.Decode.succeed GQ+ "GR" -> Json.Decode.succeed GR+ "GS" -> Json.Decode.succeed GS+ "GT" -> Json.Decode.succeed GT+ "GU" -> Json.Decode.succeed GU+ "GW" -> Json.Decode.succeed GW+ "GY" -> Json.Decode.succeed GY+ "HK" -> Json.Decode.succeed HK+ "HM" -> Json.Decode.succeed HM+ "HN" -> Json.Decode.succeed HN+ "HR" -> Json.Decode.succeed HR+ "HT" -> Json.Decode.succeed HT+ "HU" -> Json.Decode.succeed HU+ "ID" -> Json.Decode.succeed ID+ "IE" -> Json.Decode.succeed IE+ "IL" -> Json.Decode.succeed IL+ "IM" -> Json.Decode.succeed IM+ "IN" -> Json.Decode.succeed IN+ "IO" -> Json.Decode.succeed IO+ "IQ" -> Json.Decode.succeed IQ+ "IR" -> Json.Decode.succeed IR+ "IS" -> Json.Decode.succeed IS+ "IT" -> Json.Decode.succeed IT+ "JE" -> Json.Decode.succeed JE+ "JM" -> Json.Decode.succeed JM+ "JO" -> Json.Decode.succeed JO+ "JP" -> Json.Decode.succeed JP+ "KE" -> Json.Decode.succeed KE+ "KG" -> Json.Decode.succeed KG+ "KH" -> Json.Decode.succeed KH+ "KI" -> Json.Decode.succeed KI+ "KM" -> Json.Decode.succeed KM+ "KN" -> Json.Decode.succeed KN+ "KP" -> Json.Decode.succeed KP+ "KR" -> Json.Decode.succeed KR+ "KW" -> Json.Decode.succeed KW+ "KY" -> Json.Decode.succeed KY+ "KZ" -> Json.Decode.succeed KZ+ "LA" -> Json.Decode.succeed LA+ "LB" -> Json.Decode.succeed LB+ "LC" -> Json.Decode.succeed LC+ "LI" -> Json.Decode.succeed LI+ "LK" -> Json.Decode.succeed LK+ "LR" -> Json.Decode.succeed LR+ "LS" -> Json.Decode.succeed LS+ "LT" -> Json.Decode.succeed LT+ "LU" -> Json.Decode.succeed LU+ "LV" -> Json.Decode.succeed LV+ "LY" -> Json.Decode.succeed LY+ "MA" -> Json.Decode.succeed MA+ "MC" -> Json.Decode.succeed MC+ "MD" -> Json.Decode.succeed MD+ "ME" -> Json.Decode.succeed ME+ "MF" -> Json.Decode.succeed MF+ "MG" -> Json.Decode.succeed MG+ "MH" -> Json.Decode.succeed MH+ "MK" -> Json.Decode.succeed MK+ "ML" -> Json.Decode.succeed ML+ "MM" -> Json.Decode.succeed MM+ "MN" -> Json.Decode.succeed MN+ "MO" -> Json.Decode.succeed MO+ "MP" -> Json.Decode.succeed MP+ "MQ" -> Json.Decode.succeed MQ+ "MR" -> Json.Decode.succeed MR+ "MS" -> Json.Decode.succeed MS+ "MT" -> Json.Decode.succeed MT+ "MU" -> Json.Decode.succeed MU+ "MV" -> Json.Decode.succeed MV+ "MW" -> Json.Decode.succeed MW+ "MX" -> Json.Decode.succeed MX+ "MY" -> Json.Decode.succeed MY+ "MZ" -> Json.Decode.succeed MZ+ "NA" -> Json.Decode.succeed NA+ "NC" -> Json.Decode.succeed NC+ "NE" -> Json.Decode.succeed NE+ "NF" -> Json.Decode.succeed NF+ "NG" -> Json.Decode.succeed NG+ "NI" -> Json.Decode.succeed NI+ "NL" -> Json.Decode.succeed NL+ "NO" -> Json.Decode.succeed NO+ "NP" -> Json.Decode.succeed NP+ "NR" -> Json.Decode.succeed NR+ "NU" -> Json.Decode.succeed NU+ "NZ" -> Json.Decode.succeed NZ+ "OM" -> Json.Decode.succeed OM+ "PA" -> Json.Decode.succeed PA+ "PE" -> Json.Decode.succeed PE+ "PF" -> Json.Decode.succeed PF+ "PG" -> Json.Decode.succeed PG+ "PH" -> Json.Decode.succeed PH+ "PK" -> Json.Decode.succeed PK+ "PL" -> Json.Decode.succeed PL+ "PM" -> Json.Decode.succeed PM+ "PN" -> Json.Decode.succeed PN+ "PR" -> Json.Decode.succeed PR+ "PS" -> Json.Decode.succeed PS+ "PT" -> Json.Decode.succeed PT+ "PW" -> Json.Decode.succeed PW+ "PY" -> Json.Decode.succeed PY+ "QA" -> Json.Decode.succeed QA+ "RE" -> Json.Decode.succeed RE+ "RO" -> Json.Decode.succeed RO+ "RS" -> Json.Decode.succeed RS+ "RU" -> Json.Decode.succeed RU+ "RW" -> Json.Decode.succeed RW+ "SA" -> Json.Decode.succeed SA+ "SB" -> Json.Decode.succeed SB+ "SC" -> Json.Decode.succeed SC+ "SD" -> Json.Decode.succeed SD+ "SE" -> Json.Decode.succeed SE+ "SG" -> Json.Decode.succeed SG+ "SH" -> Json.Decode.succeed SH+ "SI" -> Json.Decode.succeed SI+ "SJ" -> Json.Decode.succeed SJ+ "SK" -> Json.Decode.succeed SK+ "SL" -> Json.Decode.succeed SL+ "SM" -> Json.Decode.succeed SM+ "SN" -> Json.Decode.succeed SN+ "SO" -> Json.Decode.succeed SO+ "SR" -> Json.Decode.succeed SR+ "SS" -> Json.Decode.succeed SS+ "ST" -> Json.Decode.succeed ST+ "SV" -> Json.Decode.succeed SV+ "SX" -> Json.Decode.succeed SX+ "SY" -> Json.Decode.succeed SY+ "SZ" -> Json.Decode.succeed SZ+ "TC" -> Json.Decode.succeed TC+ "TD" -> Json.Decode.succeed TD+ "TF" -> Json.Decode.succeed TF+ "TG" -> Json.Decode.succeed TG+ "TH" -> Json.Decode.succeed TH+ "TJ" -> Json.Decode.succeed TJ+ "TK" -> Json.Decode.succeed TK+ "TL" -> Json.Decode.succeed TL+ "TM" -> Json.Decode.succeed TM+ "TN" -> Json.Decode.succeed TN+ "TO" -> Json.Decode.succeed TO+ "TR" -> Json.Decode.succeed TR+ "TT" -> Json.Decode.succeed TT+ "TV" -> Json.Decode.succeed TV+ "TW" -> Json.Decode.succeed TW+ "TZ" -> Json.Decode.succeed TZ+ "UA" -> Json.Decode.succeed UA+ "UG" -> Json.Decode.succeed UG+ "UM" -> Json.Decode.succeed UM+ "US" -> Json.Decode.succeed US+ "UY" -> Json.Decode.succeed UY+ "UZ" -> Json.Decode.succeed UZ+ "VA" -> Json.Decode.succeed VA+ "VC" -> Json.Decode.succeed VC+ "VE" -> Json.Decode.succeed VE+ "VG" -> Json.Decode.succeed VG+ "VI" -> Json.Decode.succeed VI+ "VN" -> Json.Decode.succeed VN+ "VU" -> Json.Decode.succeed VU+ "WF" -> Json.Decode.succeed WF+ "WS" -> Json.Decode.succeed WS+ "YE" -> Json.Decode.succeed YE+ "YT" -> Json.Decode.succeed YT+ "ZA" -> Json.Decode.succeed ZA+ "ZM" -> Json.Decode.succeed ZM+ "ZW" -> Json.Decode.succeed ZW+ other ->+ Json.Decode.fail <| "CountryCode doesn't have constructor: " ++ other+ in+ Json.Decode.string+ |> Json.Decode.andThen decide+################################################################################+
+ test-output/extraction/golden/CountryCode.txt view
@@ -0,0 +1,275 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "CountryCode"+ , moduleName = Just "Data.CountryCode"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeCountryCode"+ , symbolModuleName = "Data.CountryCode"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeCountryCode"+ , symbolModuleName = "Data.CountryCode"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor { constructorName = "AD" , constructorFields = [] }+ , Constructor { constructorName = "AE" , constructorFields = [] }+ , Constructor { constructorName = "AF" , constructorFields = [] }+ , Constructor { constructorName = "AG" , constructorFields = [] }+ , Constructor { constructorName = "AI" , constructorFields = [] }+ , Constructor { constructorName = "AL" , constructorFields = [] }+ , Constructor { constructorName = "AM" , constructorFields = [] }+ , Constructor { constructorName = "AO" , constructorFields = [] }+ , Constructor { constructorName = "AQ" , constructorFields = [] }+ , Constructor { constructorName = "AR" , constructorFields = [] }+ , Constructor { constructorName = "AS" , constructorFields = [] }+ , Constructor { constructorName = "AT" , constructorFields = [] }+ , Constructor { constructorName = "AU" , constructorFields = [] }+ , Constructor { constructorName = "AW" , constructorFields = [] }+ , Constructor { constructorName = "AX" , constructorFields = [] }+ , Constructor { constructorName = "AZ" , constructorFields = [] }+ , Constructor { constructorName = "BA" , constructorFields = [] }+ , Constructor { constructorName = "BB" , constructorFields = [] }+ , Constructor { constructorName = "BD" , constructorFields = [] }+ , Constructor { constructorName = "BE" , constructorFields = [] }+ , Constructor { constructorName = "BF" , constructorFields = [] }+ , Constructor { constructorName = "BG" , constructorFields = [] }+ , Constructor { constructorName = "BH" , constructorFields = [] }+ , Constructor { constructorName = "BI" , constructorFields = [] }+ , Constructor { constructorName = "BJ" , constructorFields = [] }+ , Constructor { constructorName = "BL" , constructorFields = [] }+ , Constructor { constructorName = "BM" , constructorFields = [] }+ , Constructor { constructorName = "BN" , constructorFields = [] }+ , Constructor { constructorName = "BO" , constructorFields = [] }+ , Constructor { constructorName = "BQ" , constructorFields = [] }+ , Constructor { constructorName = "BR" , constructorFields = [] }+ , Constructor { constructorName = "BS" , constructorFields = [] }+ , Constructor { constructorName = "BT" , constructorFields = [] }+ , Constructor { constructorName = "BV" , constructorFields = [] }+ , Constructor { constructorName = "BW" , constructorFields = [] }+ , Constructor { constructorName = "BY" , constructorFields = [] }+ , Constructor { constructorName = "BZ" , constructorFields = [] }+ , Constructor { constructorName = "CA" , constructorFields = [] }+ , Constructor { constructorName = "CC" , constructorFields = [] }+ , Constructor { constructorName = "CD" , constructorFields = [] }+ , Constructor { constructorName = "CF" , constructorFields = [] }+ , Constructor { constructorName = "CG" , constructorFields = [] }+ , Constructor { constructorName = "CH" , constructorFields = [] }+ , Constructor { constructorName = "CI" , constructorFields = [] }+ , Constructor { constructorName = "CK" , constructorFields = [] }+ , Constructor { constructorName = "CL" , constructorFields = [] }+ , Constructor { constructorName = "CM" , constructorFields = [] }+ , Constructor { constructorName = "CN" , constructorFields = [] }+ , Constructor { constructorName = "CO" , constructorFields = [] }+ , Constructor { constructorName = "CR" , constructorFields = [] }+ , Constructor { constructorName = "CU" , constructorFields = [] }+ , Constructor { constructorName = "CV" , constructorFields = [] }+ , Constructor { constructorName = "CW" , constructorFields = [] }+ , Constructor { constructorName = "CX" , constructorFields = [] }+ , Constructor { constructorName = "CY" , constructorFields = [] }+ , Constructor { constructorName = "CZ" , constructorFields = [] }+ , Constructor { constructorName = "DE" , constructorFields = [] }+ , Constructor { constructorName = "DJ" , constructorFields = [] }+ , Constructor { constructorName = "DK" , constructorFields = [] }+ , Constructor { constructorName = "DM" , constructorFields = [] }+ , Constructor { constructorName = "DO" , constructorFields = [] }+ , Constructor { constructorName = "DZ" , constructorFields = [] }+ , Constructor { constructorName = "EC" , constructorFields = [] }+ , Constructor { constructorName = "EE" , constructorFields = [] }+ , Constructor { constructorName = "EG" , constructorFields = [] }+ , Constructor { constructorName = "EH" , constructorFields = [] }+ , Constructor { constructorName = "ER" , constructorFields = [] }+ , Constructor { constructorName = "ES" , constructorFields = [] }+ , Constructor { constructorName = "ET" , constructorFields = [] }+ , Constructor { constructorName = "FI" , constructorFields = [] }+ , Constructor { constructorName = "FJ" , constructorFields = [] }+ , Constructor { constructorName = "FK" , constructorFields = [] }+ , Constructor { constructorName = "FM" , constructorFields = [] }+ , Constructor { constructorName = "FO" , constructorFields = [] }+ , Constructor { constructorName = "FR" , constructorFields = [] }+ , Constructor { constructorName = "GA" , constructorFields = [] }+ , Constructor { constructorName = "GB" , constructorFields = [] }+ , Constructor { constructorName = "GD" , constructorFields = [] }+ , Constructor { constructorName = "GE" , constructorFields = [] }+ , Constructor { constructorName = "GF" , constructorFields = [] }+ , Constructor { constructorName = "GG" , constructorFields = [] }+ , Constructor { constructorName = "GH" , constructorFields = [] }+ , Constructor { constructorName = "GI" , constructorFields = [] }+ , Constructor { constructorName = "GL" , constructorFields = [] }+ , Constructor { constructorName = "GM" , constructorFields = [] }+ , Constructor { constructorName = "GN" , constructorFields = [] }+ , Constructor { constructorName = "GP" , constructorFields = [] }+ , Constructor { constructorName = "GQ" , constructorFields = [] }+ , Constructor { constructorName = "GR" , constructorFields = [] }+ , Constructor { constructorName = "GS" , constructorFields = [] }+ , Constructor { constructorName = "GT" , constructorFields = [] }+ , Constructor { constructorName = "GU" , constructorFields = [] }+ , Constructor { constructorName = "GW" , constructorFields = [] }+ , Constructor { constructorName = "GY" , constructorFields = [] }+ , Constructor { constructorName = "HK" , constructorFields = [] }+ , Constructor { constructorName = "HM" , constructorFields = [] }+ , Constructor { constructorName = "HN" , constructorFields = [] }+ , Constructor { constructorName = "HR" , constructorFields = [] }+ , Constructor { constructorName = "HT" , constructorFields = [] }+ , Constructor { constructorName = "HU" , constructorFields = [] }+ , Constructor { constructorName = "ID" , constructorFields = [] }+ , Constructor { constructorName = "IE" , constructorFields = [] }+ , Constructor { constructorName = "IL" , constructorFields = [] }+ , Constructor { constructorName = "IM" , constructorFields = [] }+ , Constructor { constructorName = "IN" , constructorFields = [] }+ , Constructor { constructorName = "IO" , constructorFields = [] }+ , Constructor { constructorName = "IQ" , constructorFields = [] }+ , Constructor { constructorName = "IR" , constructorFields = [] }+ , Constructor { constructorName = "IS" , constructorFields = [] }+ , Constructor { constructorName = "IT" , constructorFields = [] }+ , Constructor { constructorName = "JE" , constructorFields = [] }+ , Constructor { constructorName = "JM" , constructorFields = [] }+ , Constructor { constructorName = "JO" , constructorFields = [] }+ , Constructor { constructorName = "JP" , constructorFields = [] }+ , Constructor { constructorName = "KE" , constructorFields = [] }+ , Constructor { constructorName = "KG" , constructorFields = [] }+ , Constructor { constructorName = "KH" , constructorFields = [] }+ , Constructor { constructorName = "KI" , constructorFields = [] }+ , Constructor { constructorName = "KM" , constructorFields = [] }+ , Constructor { constructorName = "KN" , constructorFields = [] }+ , Constructor { constructorName = "KP" , constructorFields = [] }+ , Constructor { constructorName = "KR" , constructorFields = [] }+ , Constructor { constructorName = "KW" , constructorFields = [] }+ , Constructor { constructorName = "KY" , constructorFields = [] }+ , Constructor { constructorName = "KZ" , constructorFields = [] }+ , Constructor { constructorName = "LA" , constructorFields = [] }+ , Constructor { constructorName = "LB" , constructorFields = [] }+ , Constructor { constructorName = "LC" , constructorFields = [] }+ , Constructor { constructorName = "LI" , constructorFields = [] }+ , Constructor { constructorName = "LK" , constructorFields = [] }+ , Constructor { constructorName = "LR" , constructorFields = [] }+ , Constructor { constructorName = "LS" , constructorFields = [] }+ , Constructor { constructorName = "LT" , constructorFields = [] }+ , Constructor { constructorName = "LU" , constructorFields = [] }+ , Constructor { constructorName = "LV" , constructorFields = [] }+ , Constructor { constructorName = "LY" , constructorFields = [] }+ , Constructor { constructorName = "MA" , constructorFields = [] }+ , Constructor { constructorName = "MC" , constructorFields = [] }+ , Constructor { constructorName = "MD" , constructorFields = [] }+ , Constructor { constructorName = "ME" , constructorFields = [] }+ , Constructor { constructorName = "MF" , constructorFields = [] }+ , Constructor { constructorName = "MG" , constructorFields = [] }+ , Constructor { constructorName = "MH" , constructorFields = [] }+ , Constructor { constructorName = "MK" , constructorFields = [] }+ , Constructor { constructorName = "ML" , constructorFields = [] }+ , Constructor { constructorName = "MM" , constructorFields = [] }+ , Constructor { constructorName = "MN" , constructorFields = [] }+ , Constructor { constructorName = "MO" , constructorFields = [] }+ , Constructor { constructorName = "MP" , constructorFields = [] }+ , Constructor { constructorName = "MQ" , constructorFields = [] }+ , Constructor { constructorName = "MR" , constructorFields = [] }+ , Constructor { constructorName = "MS" , constructorFields = [] }+ , Constructor { constructorName = "MT" , constructorFields = [] }+ , Constructor { constructorName = "MU" , constructorFields = [] }+ , Constructor { constructorName = "MV" , constructorFields = [] }+ , Constructor { constructorName = "MW" , constructorFields = [] }+ , Constructor { constructorName = "MX" , constructorFields = [] }+ , Constructor { constructorName = "MY" , constructorFields = [] }+ , Constructor { constructorName = "MZ" , constructorFields = [] }+ , Constructor { constructorName = "NA" , constructorFields = [] }+ , Constructor { constructorName = "NC" , constructorFields = [] }+ , Constructor { constructorName = "NE" , constructorFields = [] }+ , Constructor { constructorName = "NF" , constructorFields = [] }+ , Constructor { constructorName = "NG" , constructorFields = [] }+ , Constructor { constructorName = "NI" , constructorFields = [] }+ , Constructor { constructorName = "NL" , constructorFields = [] }+ , Constructor { constructorName = "NO" , constructorFields = [] }+ , Constructor { constructorName = "NP" , constructorFields = [] }+ , Constructor { constructorName = "NR" , constructorFields = [] }+ , Constructor { constructorName = "NU" , constructorFields = [] }+ , Constructor { constructorName = "NZ" , constructorFields = [] }+ , Constructor { constructorName = "OM" , constructorFields = [] }+ , Constructor { constructorName = "PA" , constructorFields = [] }+ , Constructor { constructorName = "PE" , constructorFields = [] }+ , Constructor { constructorName = "PF" , constructorFields = [] }+ , Constructor { constructorName = "PG" , constructorFields = [] }+ , Constructor { constructorName = "PH" , constructorFields = [] }+ , Constructor { constructorName = "PK" , constructorFields = [] }+ , Constructor { constructorName = "PL" , constructorFields = [] }+ , Constructor { constructorName = "PM" , constructorFields = [] }+ , Constructor { constructorName = "PN" , constructorFields = [] }+ , Constructor { constructorName = "PR" , constructorFields = [] }+ , Constructor { constructorName = "PS" , constructorFields = [] }+ , Constructor { constructorName = "PT" , constructorFields = [] }+ , Constructor { constructorName = "PW" , constructorFields = [] }+ , Constructor { constructorName = "PY" , constructorFields = [] }+ , Constructor { constructorName = "QA" , constructorFields = [] }+ , Constructor { constructorName = "RE" , constructorFields = [] }+ , Constructor { constructorName = "RO" , constructorFields = [] }+ , Constructor { constructorName = "RS" , constructorFields = [] }+ , Constructor { constructorName = "RU" , constructorFields = [] }+ , Constructor { constructorName = "RW" , constructorFields = [] }+ , Constructor { constructorName = "SA" , constructorFields = [] }+ , Constructor { constructorName = "SB" , constructorFields = [] }+ , Constructor { constructorName = "SC" , constructorFields = [] }+ , Constructor { constructorName = "SD" , constructorFields = [] }+ , Constructor { constructorName = "SE" , constructorFields = [] }+ , Constructor { constructorName = "SG" , constructorFields = [] }+ , Constructor { constructorName = "SH" , constructorFields = [] }+ , Constructor { constructorName = "SI" , constructorFields = [] }+ , Constructor { constructorName = "SJ" , constructorFields = [] }+ , Constructor { constructorName = "SK" , constructorFields = [] }+ , Constructor { constructorName = "SL" , constructorFields = [] }+ , Constructor { constructorName = "SM" , constructorFields = [] }+ , Constructor { constructorName = "SN" , constructorFields = [] }+ , Constructor { constructorName = "SO" , constructorFields = [] }+ , Constructor { constructorName = "SR" , constructorFields = [] }+ , Constructor { constructorName = "SS" , constructorFields = [] }+ , Constructor { constructorName = "ST" , constructorFields = [] }+ , Constructor { constructorName = "SV" , constructorFields = [] }+ , Constructor { constructorName = "SX" , constructorFields = [] }+ , Constructor { constructorName = "SY" , constructorFields = [] }+ , Constructor { constructorName = "SZ" , constructorFields = [] }+ , Constructor { constructorName = "TC" , constructorFields = [] }+ , Constructor { constructorName = "TD" , constructorFields = [] }+ , Constructor { constructorName = "TF" , constructorFields = [] }+ , Constructor { constructorName = "TG" , constructorFields = [] }+ , Constructor { constructorName = "TH" , constructorFields = [] }+ , Constructor { constructorName = "TJ" , constructorFields = [] }+ , Constructor { constructorName = "TK" , constructorFields = [] }+ , Constructor { constructorName = "TL" , constructorFields = [] }+ , Constructor { constructorName = "TM" , constructorFields = [] }+ , Constructor { constructorName = "TN" , constructorFields = [] }+ , Constructor { constructorName = "TO" , constructorFields = [] }+ , Constructor { constructorName = "TR" , constructorFields = [] }+ , Constructor { constructorName = "TT" , constructorFields = [] }+ , Constructor { constructorName = "TV" , constructorFields = [] }+ , Constructor { constructorName = "TW" , constructorFields = [] }+ , Constructor { constructorName = "TZ" , constructorFields = [] }+ , Constructor { constructorName = "UA" , constructorFields = [] }+ , Constructor { constructorName = "UG" , constructorFields = [] }+ , Constructor { constructorName = "UM" , constructorFields = [] }+ , Constructor { constructorName = "US" , constructorFields = [] }+ , Constructor { constructorName = "UY" , constructorFields = [] }+ , Constructor { constructorName = "UZ" , constructorFields = [] }+ , Constructor { constructorName = "VA" , constructorFields = [] }+ , Constructor { constructorName = "VC" , constructorFields = [] }+ , Constructor { constructorName = "VE" , constructorFields = [] }+ , Constructor { constructorName = "VG" , constructorFields = [] }+ , Constructor { constructorName = "VI" , constructorFields = [] }+ , Constructor { constructorName = "VN" , constructorFields = [] }+ , Constructor { constructorName = "VU" , constructorFields = [] }+ , Constructor { constructorName = "WF" , constructorFields = [] }+ , Constructor { constructorName = "WS" , constructorFields = [] }+ , Constructor { constructorName = "YE" , constructorFields = [] }+ , Constructor { constructorName = "YT" , constructorFields = [] }+ , Constructor { constructorName = "ZA" , constructorFields = [] }+ , Constructor { constructorName = "ZM" , constructorFields = [] }+ , Constructor { constructorName = "ZW" , constructorFields = [] }+ ]+ }
+ test-output/extraction/golden/EmptyAlias.txt view
@@ -0,0 +1,28 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "EmptyAlias"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeEmptyAlias"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeEmptyAlias"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = True+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "EmptyAlias" , constructorFields = [] }+ ]+ }
+ test-output/extraction/golden/Form_Report.txt view
@@ -0,0 +1,129 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "Form"+ , moduleName = Just "Codegen.Report"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeForm" , symbolModuleName = "Codegen.Report" }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeForm" , symbolModuleName = "Codegen.Report" }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "Form"+ , constructorFields =+ [ ( Just "userName"+ , 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 = "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.Report"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeFileUpload"+ , symbolModuleName = "Codegen.Report"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeFileUpload"+ , symbolModuleName = "Codegen.Report"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ ]+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/Form_Submission.txt view
@@ -0,0 +1,105 @@+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 = []+ }+ ]+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/HKTWithSpecializedKindStarparams_Int_Text_Maybe.txt view
@@ -0,0 +1,105 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "HKTWithSpecializedKindStarParams"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeHKTWithSpecializedKindStarParams"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeHKTWithSpecializedKindStarParams"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "HKTWithSpecializedKindStarParams"+ , constructorFields =+ [ ( Nothing+ , 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 = []+ }+ )+ , ( Nothing+ , 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 = "Int"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Encode"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Decode"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ ]+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/HKTWithUnspecializedParams_(Either_Int).txt view
@@ -0,0 +1,188 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "HKTWithUnspecializedParams"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeHKTWithUnspecializedParams"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeHKTWithUnspecializedParams"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 2+ , constructors =+ [ Constructor+ { constructorName = "HKTWithUnspecializedParams"+ , constructorFields =+ [ ( Nothing+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Either"+ , moduleName = Just "Codegen.Either"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeEither"+ , symbolModuleName = "Codegen.Either"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeEither"+ , symbolModuleName = "Codegen.Either"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs =+ [ TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Int"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Encode"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Decode"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Either"+ , moduleName = Just "Codegen.Either"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeEither"+ , symbolModuleName = "Codegen.Either"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeEither"+ , symbolModuleName = "Codegen.Either"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs =+ [ TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Int"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Encode"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Decode"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Either"+ , moduleName = Just "Codegen.Either"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeEither"+ , symbolModuleName = "Codegen.Either"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeEither"+ , symbolModuleName = "Codegen.Either"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs =+ [ TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Int"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Encode"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Decode"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ , TyRef { tyCon = TyVar "a0" , tyArgs = [] }+ ]+ }+ ]+ }+ ]+ }+ )+ , ( Nothing , TyRef { tyCon = TyVar "a1" , tyArgs = [] } )+ ]+ }+ ]+ }
+ test-output/extraction/golden/LargeRecord.txt view
@@ -0,0 +1,2731 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "LargeRecord"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeLargeRecord"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeLargeRecord"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 1+ , constructors =+ [ Constructor+ { constructorName = "LargeRecord"+ , constructorFields =+ [ ( Just "field0"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field1"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field2"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field3"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field4"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field5"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field6"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field7"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field8"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field9"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field10"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field11"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field12"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field13"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field14"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field15"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field16"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field17"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field18"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field19"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field20"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field21"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field22"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field23"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field24"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field25"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field26"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field27"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field28"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field29"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field30"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field31"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field32"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field33"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field34"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field35"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field36"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field37"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field38"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field39"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field40"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field41"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field42"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field43"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field44"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field45"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field46"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field47"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field48"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field49"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field50"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field51"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field52"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field53"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field54"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field55"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field56"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field57"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field58"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field59"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field60"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field61"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field62"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field63"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field64"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field65"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field66"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field67"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field68"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field69"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field70"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field71"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field72"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field73"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field74"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field75"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field76"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field77"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field78"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field79"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field80"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field81"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field82"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field83"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field84"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field85"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field86"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field87"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field88"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field89"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field90"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field91"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field92"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field93"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field94"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field95"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field96"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field97"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field98"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ , ( Just "field99"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/MonomorphicRecursiveType.txt view
@@ -0,0 +1,83 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "MonomorphicRecursiveType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeMonomorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeMonomorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "SMRTNil" , constructorFields = [] }+ , Constructor+ { constructorName = "SMRTCons"+ , constructorFields =+ [ ( Nothing+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Int"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "int" , symbolModuleName = "Json.Encode" }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "int" , symbolModuleName = "Json.Decode" }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ )+ , ( Nothing+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "MonomorphicRecursiveType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeMonomorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeMonomorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/NatPhantomparameter_3.txt view
@@ -0,0 +1,54 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "LookMaNoPhantomParam"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeNatPhantomParameter"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 1+ , constructors =+ [ Constructor+ { constructorName = "NatPhantomParameter"+ , constructorFields =+ [ ( Nothing+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "List"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "list" , symbolModuleName = "Json.Encode" }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "list" , symbolModuleName = "Json.Decode" }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/PolymorphicRecursiveType.txt view
@@ -0,0 +1,61 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "PolymorphicRecursiveType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodePolymorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodePolymorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 1+ , constructors =+ [ Constructor+ { constructorName = "SPRTNil" , constructorFields = [] }+ , Constructor+ { constructorName = "SPRTCons"+ , constructorFields =+ [ ( Nothing , TyRef { tyCon = TyVar "a0" , tyArgs = [] } )+ , ( Nothing+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "PolymorphicRecursiveType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodePolymorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodePolymorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = [ TyRef { tyCon = TyVar "a0" , tyArgs = [] } ]+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/RecordWithMultipleConstructors.txt view
@@ -0,0 +1,110 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "RecordWithMultipleConstructors"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeRecordWithMultipleConstructors"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeRecordWithMultipleConstructors"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "FirstRecordConstructor"+ , constructorFields =+ [ ( Just "foo"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Bool"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "bool" , symbolModuleName = "Json.Encode" }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "bool" , symbolModuleName = "Json.Decode" }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ )+ ]+ }+ , Constructor+ { constructorName = "SecondRecordConstructor"+ , constructorFields =+ [ ( Just "bar"+ , 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 = "Int"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Encode"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "int"+ , symbolModuleName = "Json.Decode"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ ]+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/SimpleHKT_Maybe.txt view
@@ -0,0 +1,82 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "SimpleHKTMaybe"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeSimpleHKT"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeSimpleHKT"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "SimpleHKT"+ , constructorFields =+ [ ( Nothing+ , 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 = "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 = []+ }+ ]+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/SimpleRecord.txt view
@@ -0,0 +1,111 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "SimpleRecord"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeSimpleRecord"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeSimpleRecord"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "SimpleRecord"+ , constructorFields =+ [ ( Just "name"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "PolymorphicRecursiveType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodePolymorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodePolymorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs =+ [ TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "SimpleType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ ]+ }+ )+ , ( Just "age"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "SimpleType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/SimpleRecordAlias.txt view
@@ -0,0 +1,111 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "SimpleRecordAlias"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeSimpleRecordAlias"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeSimpleRecordAlias"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = True+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "SimpleRecordAlias"+ , constructorFields =+ [ ( Just "name"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "PolymorphicRecursiveType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodePolymorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodePolymorphicRecursiveType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs =+ [ TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "SimpleType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ ]+ }+ )+ , ( Just "age"+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "SimpleType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ )+ ]+ }+ ]+ }
+ test-output/extraction/golden/SimpleType.txt view
@@ -0,0 +1,54 @@+DatatypeStructure+ { mapping =+ ElmMapping+ { typeName = "SimpleType"+ , moduleName = Just "Codegen.SampleTypes"+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "encodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "decodeSimpleType"+ , symbolModuleName = "Codegen.SampleTypes"+ }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , nParams = 0+ , constructors =+ [ Constructor+ { constructorName = "SimpleType"+ , constructorFields =+ [ ( Nothing+ , TyRef+ { tyCon =+ TyMapping+ ElmMapping+ { typeName = "Int"+ , moduleName = Nothing+ , encoderLocation =+ Just+ SymbolLocation+ { symbolName = "int" , symbolModuleName = "Json.Encode" }+ , decoderLocation =+ Just+ SymbolLocation+ { symbolName = "int" , symbolModuleName = "Json.Decode" }+ , args = []+ , isTypeAlias = False+ , urlPiece = Nothing+ , queryParam = Nothing+ }+ , tyArgs = []+ }+ )+ ]+ }+ ]+ }