T5380.hs:7:27: Couldn't match expected type ‘Bool’ with actual type ‘not_bool’ ‘not_bool’ is a rigid type variable bound by the type signature for: testB :: not_bool -> (() -> ()) -> () -> not_unit at T5380.hs:6:10 Relevant bindings include b :: not_bool (bound at T5380.hs:7:7) testB :: not_bool -> (() -> ()) -> () -> not_unit (bound at T5380.hs:7:1) In the expression: b In the expression: proc () -> if b then f -< () else f -< () T5380.hs:7:34: Couldn't match type ‘not_unit’ with ‘()’ ‘not_unit’ is a rigid type variable bound by the type signature for: testB :: not_bool -> (() -> ()) -> () -> not_unit at T5380.hs:6:10 Expected type: () -> not_unit Actual type: () -> () Relevant bindings include testB :: not_bool -> (() -> ()) -> () -> not_unit (bound at T5380.hs:7:1) In the expression: f In the command: f -< ()