B8;b      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~SafeUYou can use those if your type parameters are actually type constructors as well:  toSumType (Proxy :: Proxy (ReaderT R M1 A)) 4  !"#$%&'()*+,-./01234  !"#$%&'()*+,-./012343210/.-,+*)('&%$#"!  4  !"#$%&'()*+,-./0123Safe4Basic info about a data type:6Hackage package7Full Module path:9Translates a Haskell type info to a PureScript type info:=MPut the TypeInfo in a list together with all its typeParameters (recursively)>*Little helper for type bridge implementers 456789:;<=> 456789:;<=> :456789;<=>456789:;<=>Safe ?@ABCDEFG ?@ABCDEFG ?@ABCDEFG?@ABCDEFGSafeHIJKLMNHIJKLMNHIJKLMNHIJKLMNSafe345KLN[Generic representation of your Haskell types, the contained (leaf) types can be modified to match compatible PureScript types, by using : functions like  defaultBridge with  writePSTypes.]Create a representation of your sum (and product) types, for doing type translations and writing it out to your PureScript modules. In order to get the type information we use a dummy variable of type Proxy (YourType).OPQRSTUVWXYZ[\]^_`abcdeOPQRSTUVWXYZ[\]^_[\]WXYZSTUVQROPedcba`^_OPQRSTUVWXYZ[\]^_`abcdeSafefghijklmnopqrstuvwxyz{|}~fghijklmnopqrstuvwxyz{|}~lmnophijkgfqrstuvwxyz{|}~fghijklmnopqrstuvwxyz{|}~SafeYour entry point to this library and quite likely all you will need. Make sure all your types derive Generic and Typeable. Typeable is not needed from ghc-7.10 on.@Then list all your types you want to use in PureScript and call :  let myTypes = [ toSumType (Proxy :: Proxy MyType1) , toSumType (Proxy :: Proxy MyType2) ] writePSTypes defaultBridge "path/to/your/purescript/project" myTypes.You can define your own type bridges based on : 3 myBridge = 'defaultBridge' <|> mySpecialTypeBridgeand use it with : @ writePSTypes myBridge "path/to/your/purescript/project" myTypes9Find examples for implementing your own type bridges in: %Language.PureScript.Bridge.Primitives.Result: will write out PureScript modules to the given path, mirroring the hierarchy of the Haskell modules the types came from. In addition a list of needed PS packages is printed to the console.:The list of needed packages is retrieved from the bridged 4 data, so make sure you set 6J correctly in your own bridges, in order for this feature to be useful.Real world usage example:3A real world use case of this library can be found  Hhttps://github.com/gonimo/gonimo-back/blob/master/src/MkFrontendTypes.hshere.WARNING:EThis function overwrites files - make backups or use version control!=Translate leaf types in a sum type to match PureScript types.`Default bridge for mapping primitive/common types: You can append your own bridges like this: * defaultBridge <|> myBridge1 <|> myBridge2(Find examples for bridge definitions in %Language.PureScript.Bridge.Primitives and  Language.PureScript.Bridge.Tuple.!Translate types in a constructor."Translate types in a record entry.0Translate types that come from any module named Something.TypeParameters8 to lower case: Also drop the 1 at the end if presentH456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_fghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZZ[\]]^_``abcdefghijkllmnoopqrstuvwxyz{|}~pures_G9lK60zPpFt9eFaIENWyfj)Language.PureScript.Bridge.TypeParameters#Language.PureScript.Bridge.TypeInfo Language.PureScript.Bridge.Tuple%Language.PureScript.Bridge.Primitives"Language.PureScript.Bridge.SumType"Language.PureScript.Bridge.PrinterLanguage.PureScript.BridgeZ1Y1X1W1V1U1T1S1R1Q1P1O1N1M1L1K1J1I1H1G1F1E1D1C1B1A1ZYXWVUTSRQPONMLKJIHGFEDCBATypeInfo typePackage typeModuletypeNametypeParameters TypeBridge mkTypeInfo mkTypeInfo'flattenTypeInfo eqTypeNameTupleParserStateStart OpenFound ColonFoundTupleNoTuple tupleBridgestepisTuple unitBridge boolBridge intBridge stringBridge listBridge maybeBridge eitherBridge GRecordEntrygToRecordEntriesGDataConstructorgToConstructors RecordEntryrecLabelrecValueDataConstructorsigConstructor sigValuesSumType toSumType getUsedTypesconstructorToType$fGRecordEntryM1$fGRecordEntryU1$fGRecordEntry:*:$fGDataConstructorM1$fGDataConstructor:+:$fGDataConstructorM10 ImportLinesModules ImportLine importModule importTypesPSModule psModuleName psImportLinespsTypes printModulesumTypesToNeededPackagessumTypeToNeededPackages moduleToTextimportLineToText sumTypeToTextconstructorToTextrecordEntryToTexttypeInfoToTextsumTypesToModulessumTypeToModuletypesToImportLinestypeToImportLinesunlessM writePSTypes bridgeSumType defaultBridgebridgeConstructorbridgeRecordEntryfixTypeParametersdoBridge