Strict evaluation is a synonym for eager evaluation.
In Haskell, the primary mechanism for inducing evaluation is the case expression (if/then/else and pattern matching are syntactic sugar for case).
Thunks (lazy expressions) in Haskell are created with let and then forced with case. It's very straightforward at the most basic level, there's just a lot of abstraction built on top of it that can obscure what's going on.
I wrote this a while back. You might find it of some use.
It was, thanks.
Re:Idris 1.0
by laszlokorte on Saturday April 01, 2017 @01:33PM
(#14013138)
strict is same as eager
and
non-strict is same as lazy
Feel free to point if I've got any of the above wrong.
Update: Thanks for the replies, people.