/**
* Makes all module members in library accessible via itself (is also the main export of the library).
* Created by elydelacruz on 2/19/2017.
* @module fjlDataCore
*/
import Functor from './functor/Functor';
import Apply from './functor/Apply';
import Applicative from './functor/Applicative';
import Bifunctor from './functor/Bifunctor';
import Monad, {isMonad, valueOf, join, fmap,
ap, flatMap, getMonadUnWrapper} from './monad/Monad';
import IO from './io/IO';
export {
Functor, Apply, Applicative, Bifunctor, IO, Monad,
isMonad, valueOf, join, fmap, ap, flatMap, getMonadUnWrapper
};
export * from './maybe/Maybe';
export * from './either/Either';
/* ==================================== */
/* Virtual types */
/* ==================================== */
/**
* @typedef {Function} UnaryOperation
*/
/**
* @typedef {Just|Nothing} Maybe
*/
/**
* @typedef {Left|Right} Either
*/