Prelude> let double x = x * x
Prelude> double 10
100
Prelude> double double 10
:1:1:
No instance for (Num (a0 -> a0))
arising from a use of `double'
Possible fix: add an instance declaration for (Num (a0 -> a0))
In the expression: double double 10
In an equation for `it': it = double double 10
Prelude> double( double 10)
10000
Prelude> let factorial x = if ( x == 0 ) then 1 else x*factorial(x-1)
Prelude> factorial 100
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Prelude>
Prelude> double 10
100
Prelude> double double 10
No instance for (Num (a0 -> a0))
arising from a use of `double'
Possible fix: add an instance declaration for (Num (a0 -> a0))
In the expression: double double 10
In an equation for `it': it = double double 10
Prelude> double( double 10)
10000
Prelude> let factorial x = if ( x == 0 ) then 1 else x*factorial(x-1)
Prelude> factorial 100
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Prelude>