import * as E from 'fp-ts/lib/Either' ; import { flow } from 'fp-ts/lib/function' ; import { Kind , URIS } from 'fp-ts/lib/HKT' ; import * as IO from 'fp-ts/lib/IO' ; import { Monad1 } from 'fp-ts/lib/Monad' ; import * as RTE from 'fp-ts/lib/ReaderTaskEither' ; import * as T from 'fp-ts/lib/Task' ; import * as TE from 'fp-ts/lib/TaskEither' ; import * as TH from 'fp-ts/lib/These' ; import * as alignRecord from '../../src/Align/Record' ; import { Do } from '../../src/Do' ; import * as TO from '../../src/TaskOption' ; import { time } from '../../src/time' ; time ( IO . io ) ; time ( T . task ) ; time ( TE . taskEither ) ; time ( RTE . readerTaskEither ) ; Do ( E . either ) . bind ( 'a' , E . right ( 'a' ) ) . bind ( 'a' , E . right ( 'a' ) ) ; Do ( E . either ) . bind ( 'a' , E . right ( 'a' ) ) . bindL ( 'b' , ( ) => E . right < boolean , number > ( 54 ) ) ; Do ( T . task ) . sequenceS ( { } ) ; Do ( T . task ) . sequenceSL ( ( ) => ( { } ) ) ; Do ( T . task ) . bind ( 'a' , T . of ( 'a' ) ) . sequenceS ( { a : T . of ( 'a' ) } ) ; Do ( T . task ) . bind ( 'a' , T . of ( 'a' ) ) . sequenceSL ( ( ) => ( { a : T . of ( 'a' ) } ) ) ; Do ( T . task ) . sequenceS ( { a : T . of ( 'a' ) , b : T . of ( 1 ) } ) . done ( ) ; Do ( T . task ) . sequenceSL ( ( ) => ( { a : T . of ( 'a' ) , b : T . of ( 1 ) } ) ) . done ( ) ; export function repro38 < F extends URIS > ( F ) { Do ( F ) . do ( F . f ) ; } declare const d1 ; declare const d2 ; declare const r1 ; declare const r2 ; alignRecord . align ( d1 , d2 ) ; alignRecord . align ( r1 , r2 ) ; alignRecord . alignWith ( d1 , d2 , ( x ) => 'Test' ) ; alignRecord . alignWith ( r1 , r2 , ( x ) => 'Test' ) ; declare const fromNullableTest1 ; TO . fromNullable ( fromNullableTest1 ) ; interface fromNullableTest2 { foo : number | undefined ; } declare const fromNullableTest3 ; flow ( fromNullableTest3 , TO . fromNullable ) ( 'foo' ) ;