op fmap : (a -> b) -> f a -> f b
op map : (a -> b) -> List a -> List b
op __bind__ : m a * (a -> m b) -> m b
. fmap g x = x bind (\ y : a .! return (g y));
%% Classes ---------------------------------------------------------------
%% Type Constructors -----------------------------------------------------
%% Type Variables --------------------------------------------------------
%% Assumptions -----------------------------------------------------------
: forall a : Type; b : Type; m : Monad . m a * (a -> m b) -> m b
empty : forall a : Type . List a %(op)%
emptySet : forall a : Type . Set a %(op)%
fail : forall a : Type; m : Monad . m a %(op)%
: forall a : Type; b : Type; f : Functor . (a -> b) -> f a -> f b
: forall a : Type; b : Type . (a -> b) -> List a -> List b %(op)%
return : forall a : Type; m : Monad . a -> m a %(op)%
%% Variables -------------------------------------------------------------
%% Sentences -------------------------------------------------------------
fmap g x = x bind (\ y : a .! return (g y))
%% Diagnostics -----------------------------------------------------------
### Hint 7.5, is type variable 'a'
### Hint 7.8, is type variable 'b'
### Hint 9.5, is type variable 'm'
### Hint 15.5, is type variable 'f'
### Hint 25.8, constrain 'Set : Monad' is unprovable
*** Error 25.8, in term '(op fail[_v12; Set] : forall a : Type; m : Monad . m a) =
(op emptySet[_v12] : forall a : Type . Set a)' of type 'Unit'
unresolved constraints '{Set : Monad}'
### Hint 33.7, not a class 'a'
### Hint 33.7, not a class 'b'
### Hint 33.23, not a kind 'm a'