@@ -284,9 +284,15 @@ const getDataFptsEncoding = (d: M.Data): AST<Array<ts.Node>> => {
284284 const getPolymorphicFields = ( ) : Array < ts . PropertyDeclaration > => {
285285 const URI = getPropertyDeclaration ( '_URI' , ts . createTypeReferenceNode ( 'URI' , A . empty ) , undefined , true )
286286 const len = getDataParametersLength ( d )
287- const fptsParameters = URI2HKTParametersNames . slice ( 0 , len ) . map ( name =>
288- getPropertyDeclaration ( `_${ name } ` , ts . createTypeReferenceNode ( name , A . empty ) , undefined , true )
289- )
287+ const parameterDeclarations = d . parameterDeclarations . slice ( ) . reverse ( )
288+ const fptsParameters = URI2HKTParametersNames . slice ( 0 , len ) . map ( ( name , i ) => {
289+ return getPropertyDeclaration (
290+ `_${ name } ` ,
291+ ts . createTypeReferenceNode ( parameterDeclarations [ i ] . name , A . empty ) ,
292+ undefined ,
293+ true
294+ )
295+ } )
290296 return [ ...fptsParameters , URI ]
291297 }
292298
@@ -455,7 +461,7 @@ const getLiteralConstructor = (c: M.Constructor, d: M.Data): AST<ts.Node> => {
455461
456462const getConstructorsLiteralEncoding = ( d : M . Data ) : AST < Array < ts . Node > > => {
457463 const constructors = d . constructors . map ( c =>
458- A . foldL ( c . members , ( ) => getLiteralNullaryConstructor ( c , d ) , ( ) => getLiteralConstructor ( c , d ) )
464+ A . foldLeft ( ( ) => getLiteralNullaryConstructor ( c , d ) , ( ) => getLiteralConstructor ( c , d ) ) ( c . members )
459465 )
460466 return A . array . sequence ( reader ) ( constructors )
461467}
@@ -494,7 +500,7 @@ const getFptsConstructor = (c: M.Constructor, d: M.Data): AST<ts.Node> => {
494500
495501const getConstructorsFptsEncoding = ( d : M . Data ) : AST < Array < ts . Node > > => {
496502 const constructors = d . constructors . map ( c =>
497- A . foldL ( c . members , ( ) => getFptsNullaryConstructor ( c , d ) , ( ) => getFptsConstructor ( c , d ) )
503+ A . foldLeft ( ( ) => getFptsNullaryConstructor ( c , d ) , ( ) => getFptsConstructor ( c , d ) ) ( c . members )
498504 )
499505 return A . array . sequence ( reader ) ( constructors )
500506}
@@ -745,8 +751,7 @@ export const setoid = (d: M.Data): AST<Array<ts.Node>> => {
745751 } )
746752 } )
747753 const getReturnValue = ( c : M . Constructor ) : ts . Expression => {
748- return A . foldL (
749- c . members ,
754+ return A . foldLeft (
750755 ( ) => ts . createTrue ( ) ,
751756 ( ) => {
752757 const callExpressions = c . members . map ( ( m , position ) => {
@@ -759,7 +764,7 @@ export const setoid = (d: M.Data): AST<Array<ts.Node>> => {
759764 } )
760765 return S . fold ( semigroupBinaryExpression ) ( callExpressions [ 0 ] ) ( callExpressions . slice ( 1 ) )
761766 }
762- )
767+ ) ( c . members )
763768 }
764769 return ask < Options > ( ) . chain ( e => {
765770 const setoidImport = getImportDeclaration ( [ 'Setoid' , 'fromEquals' ] , 'fp-ts/lib/Setoid' )
0 commit comments